diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,367 @@
+Mozilla Public License Version 2.0
+==================================
+
+1. Definitions
+--------------
+
+1.1. "Contributor"
+    means each individual or legal entity that creates, contributes to
+    the creation of, or owns Covered Software.
+
+1.2. "Contributor Version"
+    means the combination of the Contributions of others (if any) used
+    by a Contributor and that particular Contributor's Contribution.
+
+1.3. "Contribution"
+    means Covered Software of a particular Contributor.
+
+1.4. "Covered Software"
+    means Source Code Form to which the initial Contributor has attached
+    the notice in Exhibit A, the Executable Form of such Source Code
+    Form, and Modifications of such Source Code Form, in each case
+    including portions thereof.
+
+1.5. "Incompatible With Secondary Licenses"
+    means
+
+    (a) that the initial Contributor has attached the notice described
+        in Exhibit B to the Covered Software; or
+
+    (b) that the Covered Software was made available under the terms of
+        version 1.1 or earlier of the License, but not also under the
+        terms of a Secondary License.
+
+1.6. "Executable Form"
+    means any form of the work other than Source Code Form.
+
+1.7. "Larger Work"
+    means a work that combines Covered Software with other material, in
+    a separate file or files, that is not Covered Software.
+
+1.8. "License"
+    means this document.
+
+1.9. "Licensable"
+    means having the right to grant, to the maximum extent possible,
+    whether at the time of the initial grant or subsequently, any and
+    all of the rights conveyed by this License.
+
+1.10. "Modifications"
+    means any of the following:
+
+    (a) any file in Source Code Form that results from an addition to,
+        deletion from, or modification of the contents of Covered
+        Software; or
+
+    (b) any new file in Source Code Form that contains any Covered
+        Software.
+
+1.11. "Patent Claims" of a Contributor
+    means any patent claim(s), including without limitation, method,
+    process, and apparatus claims, in any patent Licensable by such
+    Contributor that would be infringed, but for the grant of the
+    License, by the making, using, selling, offering for sale, having
+    made, import, or transfer of either its Contributions or its
+    Contributor Version.
+
+1.12. "Secondary License"
+    means either the GNU General Public License, Version 2.0, the GNU
+    Lesser General Public License, Version 2.1, the GNU Affero General
+    Public License, Version 3.0, or any later versions of those
+    licenses.
+
+1.13. "Source Code Form"
+    means the form of the work preferred for making modifications.
+
+1.14. "You" (or "Your")
+    means an individual or a legal entity exercising rights under this
+    License. For legal entities, "You" includes any entity that
+    controls, is controlled by, or is under common control with You. For
+    purposes of this definition, "control" means (a) the power, direct
+    or indirect, to cause the direction or management of such entity,
+    whether by contract or otherwise, or (b) ownership of more than
+    fifty percent (50%) of the outstanding shares or beneficial
+    ownership of such entity.
+
+2. License Grants and Conditions
+--------------------------------
+
+2.1. Grants
+
+Each Contributor hereby grants You a world-wide, royalty-free,
+non-exclusive license:
+
+(a) under intellectual property rights (other than patent or trademark)
+    Licensable by such Contributor to use, reproduce, make available,
+    modify, display, perform, distribute, and otherwise exploit its
+    Contributions, either on an unmodified basis, with Modifications, or
+    as part of a Larger Work; and
+
+(b) under Patent Claims of such Contributor to make, use, sell, offer
+    for sale, have made, import, and otherwise transfer either its
+    Contributions or its Contributor Version.
+
+2.2. Effective Date
+
+The licenses granted in Section 2.1 with respect to any Contribution
+become effective for each Contribution on the date the Contributor first
+distributes such Contribution.
+
+2.3. Limitations on Grant Scope
+
+The licenses granted in this Section 2 are the only rights granted under
+this License. No additional rights or licenses will be implied from the
+distribution or licensing of Covered Software under this License.
+Notwithstanding Section 2.1(b) above, no patent license is granted by a
+Contributor:
+
+(a) for any code that a Contributor has removed from Covered Software;
+    or
+
+(b) for infringements caused by: (i) Your and any other third party's
+    modifications of Covered Software, or (ii) the combination of its
+    Contributions with other software (except as part of its Contributor
+    Version); or
+
+(c) under Patent Claims infringed by Covered Software in the absence of
+    its Contributions.
+
+This License does not grant any rights in the trademarks, service marks,
+or logos of any Contributor (except as may be necessary to comply with
+the notice requirements in Section 3.4).
+
+2.4. Subsequent Licenses
+
+No Contributor makes additional grants as a result of Your choice to
+distribute the Covered Software under a subsequent version of this
+License (see Section 10.2) or under the terms of a Secondary License (if
+permitted under the terms of Section 3.3).
+
+2.5. Representation
+
+Each Contributor represents that the Contributor believes its
+Contributions are its original creation(s) or it has sufficient rights
+to grant the rights to its Contributions conveyed by this License.
+
+2.6. Fair Use
+
+This License is not intended to limit any rights You have under
+applicable copyright doctrines of fair use, fair dealing, or other
+equivalents.
+
+2.7. Conditions
+
+Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
+in Section 2.1.
+
+3. Responsibilities
+-------------------
+
+3.1. Distribution of Source Form
+
+All distribution of Covered Software in Source Code Form, including any
+Modifications that You create or to which You contribute, must be under
+the terms of this License. You must inform recipients that the Source
+Code Form of the Covered Software is governed by the terms of this
+License, and how they can obtain a copy of this License. You may not
+attempt to alter or restrict the recipients' rights in the Source Code
+Form.
+
+3.2. Distribution of Executable Form
+
+If You distribute Covered Software in Executable Form then:
+
+(a) such Covered Software must also be made available in Source Code
+    Form, as described in Section 3.1, and You must inform recipients of
+    the Executable Form how they can obtain a copy of such Source Code
+    Form by reasonable means in a timely manner, at a charge no more
+    than the cost of distribution to the recipient; and
+
+(b) You may distribute such Executable Form under the terms of this
+    License, or sublicense it under different terms, provided that the
+    license for the Executable Form does not attempt to limit or alter
+    the recipients' rights in the Source Code Form under this License.
+
+3.3. Distribution of a Larger Work
+
+You may create and distribute a Larger Work under terms of Your choice,
+provided that You also comply with the requirements of this License for
+the Covered Software. If the Larger Work is a combination of Covered
+Software with a work governed by one or more Secondary Licenses, and the
+Covered Software is not Incompatible With Secondary Licenses, this
+License permits You to additionally distribute such Covered Software
+under the terms of such Secondary License(s), so that the recipient of
+the Larger Work may, at their option, further distribute the Covered
+Software under the terms of either this License or such Secondary
+License(s).
+
+3.4. Notices
+
+You may not remove or alter the substance of any license notices
+(including copyright notices, patent notices, disclaimers of warranty,
+or limitations of liability) contained within the Source Code Form of
+the Covered Software, except that You may alter any license notices to
+the extent required to remedy known factual inaccuracies.
+
+3.5. Application of Additional Terms
+
+You may choose to offer, and to charge a fee for, warranty, support,
+indemnity or liability obligations to one or more recipients of Covered
+Software. However, You may do so only on Your own behalf, and not on
+behalf of any Contributor. You must make it absolutely clear that any
+such warranty, support, indemnity, or liability obligation is offered by
+You alone, and You hereby agree to indemnify every Contributor for any
+liability incurred by such Contributor as a result of warranty, support,
+indemnity or liability terms You offer. You may include additional
+disclaimers of warranty and limitations of liability specific to any
+jurisdiction.
+
+4. Inability to Comply Due to Statute or Regulation
+---------------------------------------------------
+
+If it is impossible for You to comply with any of the terms of this
+License with respect to some or all of the Covered Software due to
+statute, judicial order, or regulation then You must: (a) comply with
+the terms of this License to the maximum extent possible; and (b)
+describe the limitations and the code they affect. Such description must
+be placed in a text file included with all distributions of the Covered
+Software under this License. Except to the extent prohibited by statute
+or regulation, such description must be sufficiently detailed for a
+recipient of ordinary skill to be able to understand it.
+
+5. Termination
+--------------
+
+5.1. The rights granted under this License will terminate automatically
+if You fail to comply with any of its terms. However, if You become
+compliant, then the rights granted under this License from a particular
+Contributor are reinstated (a) provisionally, unless and until such
+Contributor explicitly and finally terminates Your grants, and (b) on an
+ongoing basis, if such Contributor fails to notify You of the
+non-compliance by some reasonable means prior to 60 days after You have
+come back into compliance. Moreover, Your grants from a particular
+Contributor are reinstated on an ongoing basis if such Contributor
+notifies You of the non-compliance by some reasonable means, this is the
+first time You have received notice of non-compliance with this License
+from such Contributor, and You become compliant prior to 30 days after
+Your receipt of the notice.
+
+5.2. If You initiate litigation against any entity by asserting a patent
+infringement claim (excluding declaratory judgment actions,
+counter-claims, and cross-claims) alleging that a Contributor Version
+directly or indirectly infringes any patent, then the rights granted to
+You by any and all Contributors for the Covered Software under Section
+2.1 of this License shall terminate.
+
+5.3. In the event of termination under Sections 5.1 or 5.2 above, all
+end user license agreements (excluding distributors and resellers) which
+have been validly granted by You or Your distributors under this License
+prior to termination shall survive termination.
+
+************************************************************************
+*                                                                      *
+*  6. Disclaimer of Warranty                                           *
+*  -------------------------                                           *
+*                                                                      *
+*  Covered Software is provided under this License on an "as is"       *
+*  basis, without warranty of any kind, either expressed, implied, or  *
+*  statutory, including, without limitation, warranties that the       *
+*  Covered Software is free of defects, merchantable, fit for a        *
+*  particular purpose or non-infringing. The entire risk as to the     *
+*  quality and performance of the Covered Software is with You.        *
+*  Should any Covered Software prove defective in any respect, You     *
+*  (not any Contributor) assume the cost of any necessary servicing,   *
+*  repair, or correction. This disclaimer of warranty constitutes an   *
+*  essential part of this License. No use of any Covered Software is   *
+*  authorized under this License except under this disclaimer.         *
+*                                                                      *
+************************************************************************
+
+************************************************************************
+*                                                                      *
+*  7. Limitation of Liability                                          *
+*  --------------------------                                          *
+*                                                                      *
+*  Under no circumstances and under no legal theory, whether tort      *
+*  (including negligence), contract, or otherwise, shall any           *
+*  Contributor, or anyone who distributes Covered Software as          *
+*  permitted above, be liable to You for any direct, indirect,         *
+*  special, incidental, or consequential damages of any character      *
+*  including, without limitation, damages for lost profits, loss of    *
+*  goodwill, work stoppage, computer failure or malfunction, or any    *
+*  and all other commercial damages or losses, even if such party      *
+*  shall have been informed of the possibility of such damages. This   *
+*  limitation of liability shall not apply to liability for death or   *
+*  personal injury resulting from such party's negligence to the       *
+*  extent applicable law prohibits such limitation. Some               *
+*  jurisdictions do not allow the exclusion or limitation of           *
+*  incidental or consequential damages, so this exclusion and          *
+*  limitation may not apply to You.                                    *
+*                                                                      *
+************************************************************************
+
+8. Litigation
+-------------
+
+Any litigation relating to this License may be brought only in the
+courts of a jurisdiction where the defendant maintains its principal
+place of business and such litigation shall be governed by laws of that
+jurisdiction, without reference to its conflict-of-law provisions.
+Nothing in this Section shall prevent a party's ability to bring
+cross-claims or counter-claims.
+
+9. Miscellaneous
+----------------
+
+This License represents the complete agreement concerning the subject
+matter hereof. If any provision of this License is held to be
+unenforceable, such provision shall be reformed only to the extent
+necessary to make it enforceable. Any law or regulation which provides
+that the language of a contract shall be construed against the drafter
+shall not be used to construe this License against a Contributor.
+
+10. Versions of the License
+---------------------------
+
+10.1. New Versions
+
+Mozilla Foundation is the license steward. Except as provided in Section
+10.3, no one other than the license steward has the right to modify or
+publish new versions of this License. Each version will be given a
+distinguishing version number.
+
+10.2. Effect of New Versions
+
+You may distribute the Covered Software under the terms of the version
+of the License under which You originally received the Covered Software,
+or under the terms of any subsequent version published by the license
+steward.
+
+10.3. Modified Versions
+
+If you create software not governed by this License, and you want to
+create a new license for such software, you may create and use a
+modified version of this License if you rename the license and remove
+any references to the name of the license steward (except to note that
+such modified license differs from this License).
+
+10.4. Distributing Source Code Form that is Incompatible With Secondary
+Licenses
+
+If You choose to distribute Source Code Form that is Incompatible With
+Secondary Licenses under the terms of this version of the License, the
+notice described in Exhibit B of this License must be attached.
+
+Exhibit A - Source Code Form License Notice
+-------------------------------------------
+
+  This Source Code Form is subject to the terms of the Mozilla Public
+  License, v. 2.0. If a copy of the MPL was not distributed with this
+  file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+If it is not possible or desirable to put the notice in a particular
+file, then You may include the notice in a location (such as a LICENSE
+file in a relevant directory) where a recipient would be likely to look
+for such a notice.
+
+You may add additional accurate notices of copyright ownership.
diff --git a/README.md b/README.md
new file mode 100644
--- /dev/null
+++ b/README.md
@@ -0,0 +1,44 @@
+# Amazon License Manager SDK
+
+* [Version](#version)
+* [Description](#description)
+* [Contribute](#contribute)
+* [Licence](#licence)
+
+
+## Version
+ 
+`2.0` - Derived from API version @2018-08-01@ of the AWS service descriptions, licensed under Apache 2.0.
+
+## Description
+
+Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-license-manager)
+and the [AWS API Reference](https://aws.amazon.com/documentation/).
+
+The types from this library are intended to be used with [amazonka](http://hackage.haskell.org/package/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
+[lens](http://hackage.haskell.org/package/lens) or [lens-family-core](http://hackage.haskell.org/package/lens-family-core).
+
+See [Amazonka.LicenseManager](http://hackage.haskell.org/package/amazonka-license-manager/docs/Amazonka-LicenseManager.html)
+or [the AWS documentation](https://aws.amazon.com/documentation/) to get started.
+
+
+## Contribute
+
+For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/amazonka/issues).
+
+> _Note:_ this library is an auto-generated Haskell package. Please see `amazonka-gen` for more information.
+
+
+## Licence
+
+`amazonka-license-manager` is released under the [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/).
+
+Parts of the code are derived from AWS service descriptions, licensed under Apache 2.0.
+Source files subject to this contain an additional licensing clause in their header.
diff --git a/amazonka-license-manager.cabal b/amazonka-license-manager.cabal
new file mode 100644
--- /dev/null
+++ b/amazonka-license-manager.cabal
@@ -0,0 +1,188 @@
+cabal-version:      2.2
+name:               amazonka-license-manager
+version:            2.0
+synopsis:           Amazon License Manager 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:
+  Derived from API version @2018-08-01@ 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.LicenseManager.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.LicenseManager" 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-license-manager
+
+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:
+    Amazonka.LicenseManager
+    Amazonka.LicenseManager.AcceptGrant
+    Amazonka.LicenseManager.CheckInLicense
+    Amazonka.LicenseManager.CheckoutBorrowLicense
+    Amazonka.LicenseManager.CheckoutLicense
+    Amazonka.LicenseManager.CreateGrant
+    Amazonka.LicenseManager.CreateGrantVersion
+    Amazonka.LicenseManager.CreateLicense
+    Amazonka.LicenseManager.CreateLicenseConfiguration
+    Amazonka.LicenseManager.CreateLicenseConversionTaskForResource
+    Amazonka.LicenseManager.CreateLicenseManagerReportGenerator
+    Amazonka.LicenseManager.CreateLicenseVersion
+    Amazonka.LicenseManager.CreateToken
+    Amazonka.LicenseManager.DeleteGrant
+    Amazonka.LicenseManager.DeleteLicense
+    Amazonka.LicenseManager.DeleteLicenseConfiguration
+    Amazonka.LicenseManager.DeleteLicenseManagerReportGenerator
+    Amazonka.LicenseManager.DeleteToken
+    Amazonka.LicenseManager.ExtendLicenseConsumption
+    Amazonka.LicenseManager.GetAccessToken
+    Amazonka.LicenseManager.GetGrant
+    Amazonka.LicenseManager.GetLicense
+    Amazonka.LicenseManager.GetLicenseConfiguration
+    Amazonka.LicenseManager.GetLicenseConversionTask
+    Amazonka.LicenseManager.GetLicenseManagerReportGenerator
+    Amazonka.LicenseManager.GetLicenseUsage
+    Amazonka.LicenseManager.GetServiceSettings
+    Amazonka.LicenseManager.Lens
+    Amazonka.LicenseManager.ListAssociationsForLicenseConfiguration
+    Amazonka.LicenseManager.ListDistributedGrants
+    Amazonka.LicenseManager.ListFailuresForLicenseConfigurationOperations
+    Amazonka.LicenseManager.ListLicenseConfigurations
+    Amazonka.LicenseManager.ListLicenseConversionTasks
+    Amazonka.LicenseManager.ListLicenseManagerReportGenerators
+    Amazonka.LicenseManager.ListLicenses
+    Amazonka.LicenseManager.ListLicenseSpecificationsForResource
+    Amazonka.LicenseManager.ListLicenseVersions
+    Amazonka.LicenseManager.ListReceivedGrants
+    Amazonka.LicenseManager.ListReceivedGrantsForOrganization
+    Amazonka.LicenseManager.ListReceivedLicenses
+    Amazonka.LicenseManager.ListReceivedLicensesForOrganization
+    Amazonka.LicenseManager.ListResourceInventory
+    Amazonka.LicenseManager.ListTagsForResource
+    Amazonka.LicenseManager.ListTokens
+    Amazonka.LicenseManager.ListUsageForLicenseConfiguration
+    Amazonka.LicenseManager.RejectGrant
+    Amazonka.LicenseManager.TagResource
+    Amazonka.LicenseManager.Types
+    Amazonka.LicenseManager.Types.AllowedOperation
+    Amazonka.LicenseManager.Types.AutomatedDiscoveryInformation
+    Amazonka.LicenseManager.Types.BorrowConfiguration
+    Amazonka.LicenseManager.Types.CheckoutType
+    Amazonka.LicenseManager.Types.ConsumedLicenseSummary
+    Amazonka.LicenseManager.Types.ConsumptionConfiguration
+    Amazonka.LicenseManager.Types.DatetimeRange
+    Amazonka.LicenseManager.Types.DigitalSignatureMethod
+    Amazonka.LicenseManager.Types.Entitlement
+    Amazonka.LicenseManager.Types.EntitlementData
+    Amazonka.LicenseManager.Types.EntitlementDataUnit
+    Amazonka.LicenseManager.Types.EntitlementUnit
+    Amazonka.LicenseManager.Types.EntitlementUsage
+    Amazonka.LicenseManager.Types.Filter
+    Amazonka.LicenseManager.Types.Grant
+    Amazonka.LicenseManager.Types.GrantedLicense
+    Amazonka.LicenseManager.Types.GrantStatus
+    Amazonka.LicenseManager.Types.InventoryFilter
+    Amazonka.LicenseManager.Types.InventoryFilterCondition
+    Amazonka.LicenseManager.Types.Issuer
+    Amazonka.LicenseManager.Types.IssuerDetails
+    Amazonka.LicenseManager.Types.License
+    Amazonka.LicenseManager.Types.LicenseConfiguration
+    Amazonka.LicenseManager.Types.LicenseConfigurationAssociation
+    Amazonka.LicenseManager.Types.LicenseConfigurationStatus
+    Amazonka.LicenseManager.Types.LicenseConfigurationUsage
+    Amazonka.LicenseManager.Types.LicenseConversionContext
+    Amazonka.LicenseManager.Types.LicenseConversionTask
+    Amazonka.LicenseManager.Types.LicenseConversionTaskStatus
+    Amazonka.LicenseManager.Types.LicenseCountingType
+    Amazonka.LicenseManager.Types.LicenseDeletionStatus
+    Amazonka.LicenseManager.Types.LicenseOperationFailure
+    Amazonka.LicenseManager.Types.LicenseSpecification
+    Amazonka.LicenseManager.Types.LicenseStatus
+    Amazonka.LicenseManager.Types.LicenseUsage
+    Amazonka.LicenseManager.Types.ManagedResourceSummary
+    Amazonka.LicenseManager.Types.Metadata
+    Amazonka.LicenseManager.Types.OrganizationConfiguration
+    Amazonka.LicenseManager.Types.ProductInformation
+    Amazonka.LicenseManager.Types.ProductInformationFilter
+    Amazonka.LicenseManager.Types.ProvisionalConfiguration
+    Amazonka.LicenseManager.Types.ReceivedMetadata
+    Amazonka.LicenseManager.Types.ReceivedStatus
+    Amazonka.LicenseManager.Types.RenewType
+    Amazonka.LicenseManager.Types.ReportContext
+    Amazonka.LicenseManager.Types.ReportFrequency
+    Amazonka.LicenseManager.Types.ReportFrequencyType
+    Amazonka.LicenseManager.Types.ReportGenerator
+    Amazonka.LicenseManager.Types.ReportType
+    Amazonka.LicenseManager.Types.ResourceInventory
+    Amazonka.LicenseManager.Types.ResourceType
+    Amazonka.LicenseManager.Types.S3Location
+    Amazonka.LicenseManager.Types.Tag
+    Amazonka.LicenseManager.Types.TokenData
+    Amazonka.LicenseManager.Types.TokenType
+    Amazonka.LicenseManager.UntagResource
+    Amazonka.LicenseManager.UpdateLicenseConfiguration
+    Amazonka.LicenseManager.UpdateLicenseManagerReportGenerator
+    Amazonka.LicenseManager.UpdateLicenseSpecificationsForResource
+    Amazonka.LicenseManager.UpdateServiceSettings
+    Amazonka.LicenseManager.Waiters
+
+  build-depends:
+    , amazonka-core  >=2.0  && <2.1
+    , base           >=4.12 && <5
+
+test-suite amazonka-license-manager-test
+  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.Amazonka.Gen.LicenseManager
+    Test.Amazonka.LicenseManager
+    Test.Amazonka.LicenseManager.Internal
+
+  build-depends:
+    , amazonka-core             >=2.0 && <2.1
+    , amazonka-license-manager
+    , amazonka-test             >=2.0 && <2.1
+    , base
+    , bytestring
+    , case-insensitive
+    , tasty
+    , tasty-hunit
+    , text
+    , time
+    , unordered-containers
diff --git a/fixture/AcceptGrant.yaml b/fixture/AcceptGrant.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/AcceptGrant.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/AcceptGrantResponse.proto b/fixture/AcceptGrantResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/AcceptGrantResponse.proto
diff --git a/fixture/CheckInLicense.yaml b/fixture/CheckInLicense.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CheckInLicense.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/CheckInLicenseResponse.proto b/fixture/CheckInLicenseResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CheckInLicenseResponse.proto
diff --git a/fixture/CheckoutBorrowLicense.yaml b/fixture/CheckoutBorrowLicense.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CheckoutBorrowLicense.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/CheckoutBorrowLicenseResponse.proto b/fixture/CheckoutBorrowLicenseResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CheckoutBorrowLicenseResponse.proto
diff --git a/fixture/CheckoutLicense.yaml b/fixture/CheckoutLicense.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CheckoutLicense.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/CheckoutLicenseResponse.proto b/fixture/CheckoutLicenseResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CheckoutLicenseResponse.proto
diff --git a/fixture/CreateGrant.yaml b/fixture/CreateGrant.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreateGrant.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/CreateGrantResponse.proto b/fixture/CreateGrantResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreateGrantResponse.proto
diff --git a/fixture/CreateGrantVersion.yaml b/fixture/CreateGrantVersion.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreateGrantVersion.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/CreateGrantVersionResponse.proto b/fixture/CreateGrantVersionResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreateGrantVersionResponse.proto
diff --git a/fixture/CreateLicense.yaml b/fixture/CreateLicense.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreateLicense.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/CreateLicenseConfiguration.yaml b/fixture/CreateLicenseConfiguration.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreateLicenseConfiguration.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/CreateLicenseConfigurationResponse.proto b/fixture/CreateLicenseConfigurationResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreateLicenseConfigurationResponse.proto
diff --git a/fixture/CreateLicenseConversionTaskForResource.yaml b/fixture/CreateLicenseConversionTaskForResource.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreateLicenseConversionTaskForResource.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/CreateLicenseConversionTaskForResourceResponse.proto b/fixture/CreateLicenseConversionTaskForResourceResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreateLicenseConversionTaskForResourceResponse.proto
diff --git a/fixture/CreateLicenseManagerReportGenerator.yaml b/fixture/CreateLicenseManagerReportGenerator.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreateLicenseManagerReportGenerator.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/CreateLicenseManagerReportGeneratorResponse.proto b/fixture/CreateLicenseManagerReportGeneratorResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreateLicenseManagerReportGeneratorResponse.proto
diff --git a/fixture/CreateLicenseResponse.proto b/fixture/CreateLicenseResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreateLicenseResponse.proto
diff --git a/fixture/CreateLicenseVersion.yaml b/fixture/CreateLicenseVersion.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreateLicenseVersion.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/CreateLicenseVersionResponse.proto b/fixture/CreateLicenseVersionResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreateLicenseVersionResponse.proto
diff --git a/fixture/CreateToken.yaml b/fixture/CreateToken.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreateToken.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/CreateTokenResponse.proto b/fixture/CreateTokenResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreateTokenResponse.proto
diff --git a/fixture/DeleteGrant.yaml b/fixture/DeleteGrant.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteGrant.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/DeleteGrantResponse.proto b/fixture/DeleteGrantResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteGrantResponse.proto
diff --git a/fixture/DeleteLicense.yaml b/fixture/DeleteLicense.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteLicense.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/DeleteLicenseConfiguration.yaml b/fixture/DeleteLicenseConfiguration.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteLicenseConfiguration.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/DeleteLicenseConfigurationResponse.proto b/fixture/DeleteLicenseConfigurationResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteLicenseConfigurationResponse.proto
diff --git a/fixture/DeleteLicenseManagerReportGenerator.yaml b/fixture/DeleteLicenseManagerReportGenerator.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteLicenseManagerReportGenerator.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/DeleteLicenseManagerReportGeneratorResponse.proto b/fixture/DeleteLicenseManagerReportGeneratorResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteLicenseManagerReportGeneratorResponse.proto
diff --git a/fixture/DeleteLicenseResponse.proto b/fixture/DeleteLicenseResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteLicenseResponse.proto
diff --git a/fixture/DeleteToken.yaml b/fixture/DeleteToken.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteToken.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/DeleteTokenResponse.proto b/fixture/DeleteTokenResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteTokenResponse.proto
diff --git a/fixture/ExtendLicenseConsumption.yaml b/fixture/ExtendLicenseConsumption.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ExtendLicenseConsumption.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/ExtendLicenseConsumptionResponse.proto b/fixture/ExtendLicenseConsumptionResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ExtendLicenseConsumptionResponse.proto
diff --git a/fixture/GetAccessToken.yaml b/fixture/GetAccessToken.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetAccessToken.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/GetAccessTokenResponse.proto b/fixture/GetAccessTokenResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetAccessTokenResponse.proto
diff --git a/fixture/GetGrant.yaml b/fixture/GetGrant.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetGrant.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/GetGrantResponse.proto b/fixture/GetGrantResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetGrantResponse.proto
diff --git a/fixture/GetLicense.yaml b/fixture/GetLicense.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetLicense.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/GetLicenseConfiguration.yaml b/fixture/GetLicenseConfiguration.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetLicenseConfiguration.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/GetLicenseConfigurationResponse.proto b/fixture/GetLicenseConfigurationResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetLicenseConfigurationResponse.proto
diff --git a/fixture/GetLicenseConversionTask.yaml b/fixture/GetLicenseConversionTask.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetLicenseConversionTask.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/GetLicenseConversionTaskResponse.proto b/fixture/GetLicenseConversionTaskResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetLicenseConversionTaskResponse.proto
diff --git a/fixture/GetLicenseManagerReportGenerator.yaml b/fixture/GetLicenseManagerReportGenerator.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetLicenseManagerReportGenerator.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/GetLicenseManagerReportGeneratorResponse.proto b/fixture/GetLicenseManagerReportGeneratorResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetLicenseManagerReportGeneratorResponse.proto
diff --git a/fixture/GetLicenseResponse.proto b/fixture/GetLicenseResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetLicenseResponse.proto
diff --git a/fixture/GetLicenseUsage.yaml b/fixture/GetLicenseUsage.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetLicenseUsage.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/GetLicenseUsageResponse.proto b/fixture/GetLicenseUsageResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetLicenseUsageResponse.proto
diff --git a/fixture/GetServiceSettings.yaml b/fixture/GetServiceSettings.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetServiceSettings.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/GetServiceSettingsResponse.proto b/fixture/GetServiceSettingsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetServiceSettingsResponse.proto
diff --git a/fixture/ListAssociationsForLicenseConfiguration.yaml b/fixture/ListAssociationsForLicenseConfiguration.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListAssociationsForLicenseConfiguration.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/ListAssociationsForLicenseConfigurationResponse.proto b/fixture/ListAssociationsForLicenseConfigurationResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListAssociationsForLicenseConfigurationResponse.proto
diff --git a/fixture/ListDistributedGrants.yaml b/fixture/ListDistributedGrants.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListDistributedGrants.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/ListDistributedGrantsResponse.proto b/fixture/ListDistributedGrantsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListDistributedGrantsResponse.proto
diff --git a/fixture/ListFailuresForLicenseConfigurationOperations.yaml b/fixture/ListFailuresForLicenseConfigurationOperations.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListFailuresForLicenseConfigurationOperations.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/ListFailuresForLicenseConfigurationOperationsResponse.proto b/fixture/ListFailuresForLicenseConfigurationOperationsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListFailuresForLicenseConfigurationOperationsResponse.proto
diff --git a/fixture/ListLicenseConfigurations.yaml b/fixture/ListLicenseConfigurations.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListLicenseConfigurations.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/ListLicenseConfigurationsResponse.proto b/fixture/ListLicenseConfigurationsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListLicenseConfigurationsResponse.proto
diff --git a/fixture/ListLicenseConversionTasks.yaml b/fixture/ListLicenseConversionTasks.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListLicenseConversionTasks.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/ListLicenseConversionTasksResponse.proto b/fixture/ListLicenseConversionTasksResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListLicenseConversionTasksResponse.proto
diff --git a/fixture/ListLicenseManagerReportGenerators.yaml b/fixture/ListLicenseManagerReportGenerators.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListLicenseManagerReportGenerators.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/ListLicenseManagerReportGeneratorsResponse.proto b/fixture/ListLicenseManagerReportGeneratorsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListLicenseManagerReportGeneratorsResponse.proto
diff --git a/fixture/ListLicenseSpecificationsForResource.yaml b/fixture/ListLicenseSpecificationsForResource.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListLicenseSpecificationsForResource.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/ListLicenseSpecificationsForResourceResponse.proto b/fixture/ListLicenseSpecificationsForResourceResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListLicenseSpecificationsForResourceResponse.proto
diff --git a/fixture/ListLicenseVersions.yaml b/fixture/ListLicenseVersions.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListLicenseVersions.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/ListLicenseVersionsResponse.proto b/fixture/ListLicenseVersionsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListLicenseVersionsResponse.proto
diff --git a/fixture/ListLicenses.yaml b/fixture/ListLicenses.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListLicenses.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/ListLicensesResponse.proto b/fixture/ListLicensesResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListLicensesResponse.proto
diff --git a/fixture/ListReceivedGrants.yaml b/fixture/ListReceivedGrants.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListReceivedGrants.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/ListReceivedGrantsForOrganization.yaml b/fixture/ListReceivedGrantsForOrganization.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListReceivedGrantsForOrganization.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/ListReceivedGrantsForOrganizationResponse.proto b/fixture/ListReceivedGrantsForOrganizationResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListReceivedGrantsForOrganizationResponse.proto
diff --git a/fixture/ListReceivedGrantsResponse.proto b/fixture/ListReceivedGrantsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListReceivedGrantsResponse.proto
diff --git a/fixture/ListReceivedLicenses.yaml b/fixture/ListReceivedLicenses.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListReceivedLicenses.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/ListReceivedLicensesForOrganization.yaml b/fixture/ListReceivedLicensesForOrganization.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListReceivedLicensesForOrganization.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/ListReceivedLicensesForOrganizationResponse.proto b/fixture/ListReceivedLicensesForOrganizationResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListReceivedLicensesForOrganizationResponse.proto
diff --git a/fixture/ListReceivedLicensesResponse.proto b/fixture/ListReceivedLicensesResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListReceivedLicensesResponse.proto
diff --git a/fixture/ListResourceInventory.yaml b/fixture/ListResourceInventory.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListResourceInventory.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/ListResourceInventoryResponse.proto b/fixture/ListResourceInventoryResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListResourceInventoryResponse.proto
diff --git a/fixture/ListTagsForResource.yaml b/fixture/ListTagsForResource.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListTagsForResource.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/ListTagsForResourceResponse.proto b/fixture/ListTagsForResourceResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListTagsForResourceResponse.proto
diff --git a/fixture/ListTokens.yaml b/fixture/ListTokens.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListTokens.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/ListTokensResponse.proto b/fixture/ListTokensResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListTokensResponse.proto
diff --git a/fixture/ListUsageForLicenseConfiguration.yaml b/fixture/ListUsageForLicenseConfiguration.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListUsageForLicenseConfiguration.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/ListUsageForLicenseConfigurationResponse.proto b/fixture/ListUsageForLicenseConfigurationResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListUsageForLicenseConfigurationResponse.proto
diff --git a/fixture/RejectGrant.yaml b/fixture/RejectGrant.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/RejectGrant.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/RejectGrantResponse.proto b/fixture/RejectGrantResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/RejectGrantResponse.proto
diff --git a/fixture/TagResource.yaml b/fixture/TagResource.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/TagResource.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/TagResourceResponse.proto b/fixture/TagResourceResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/TagResourceResponse.proto
diff --git a/fixture/UntagResource.yaml b/fixture/UntagResource.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/UntagResource.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/UntagResourceResponse.proto b/fixture/UntagResourceResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/UntagResourceResponse.proto
diff --git a/fixture/UpdateLicenseConfiguration.yaml b/fixture/UpdateLicenseConfiguration.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateLicenseConfiguration.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/UpdateLicenseConfigurationResponse.proto b/fixture/UpdateLicenseConfigurationResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateLicenseConfigurationResponse.proto
diff --git a/fixture/UpdateLicenseManagerReportGenerator.yaml b/fixture/UpdateLicenseManagerReportGenerator.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateLicenseManagerReportGenerator.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/UpdateLicenseManagerReportGeneratorResponse.proto b/fixture/UpdateLicenseManagerReportGeneratorResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateLicenseManagerReportGeneratorResponse.proto
diff --git a/fixture/UpdateLicenseSpecificationsForResource.yaml b/fixture/UpdateLicenseSpecificationsForResource.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateLicenseSpecificationsForResource.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/UpdateLicenseSpecificationsForResourceResponse.proto b/fixture/UpdateLicenseSpecificationsForResourceResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateLicenseSpecificationsForResourceResponse.proto
diff --git a/fixture/UpdateServiceSettings.yaml b/fixture/UpdateServiceSettings.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateServiceSettings.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  license-manager.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/UpdateServiceSettingsResponse.proto b/fixture/UpdateServiceSettingsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateServiceSettingsResponse.proto
diff --git a/gen/Amazonka/LicenseManager.hs b/gen/Amazonka/LicenseManager.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager.hs
@@ -0,0 +1,665 @@
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module      : Amazonka.LicenseManager
+-- 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 @2018-08-01@ of the AWS service descriptions, licensed under Apache 2.0.
+--
+-- License Manager makes it easier to manage licenses from software vendors
+-- across multiple Amazon Web Services accounts and on-premises servers.
+module Amazonka.LicenseManager
+  ( -- * Service Configuration
+    defaultService,
+
+    -- * Errors
+    -- $errors
+
+    -- ** AccessDeniedException
+    _AccessDeniedException,
+
+    -- ** AuthorizationException
+    _AuthorizationException,
+
+    -- ** ConflictException
+    _ConflictException,
+
+    -- ** EntitlementNotAllowedException
+    _EntitlementNotAllowedException,
+
+    -- ** FailedDependencyException
+    _FailedDependencyException,
+
+    -- ** FilterLimitExceededException
+    _FilterLimitExceededException,
+
+    -- ** InvalidParameterValueException
+    _InvalidParameterValueException,
+
+    -- ** InvalidResourceStateException
+    _InvalidResourceStateException,
+
+    -- ** LicenseUsageException
+    _LicenseUsageException,
+
+    -- ** NoEntitlementsAllowedException
+    _NoEntitlementsAllowedException,
+
+    -- ** RateLimitExceededException
+    _RateLimitExceededException,
+
+    -- ** RedirectException
+    _RedirectException,
+
+    -- ** ResourceLimitExceededException
+    _ResourceLimitExceededException,
+
+    -- ** ResourceNotFoundException
+    _ResourceNotFoundException,
+
+    -- ** ServerInternalException
+    _ServerInternalException,
+
+    -- ** UnsupportedDigitalSignatureMethodException
+    _UnsupportedDigitalSignatureMethodException,
+
+    -- ** ValidationException
+    _ValidationException,
+
+    -- * Waiters
+    -- $waiters
+
+    -- * Operations
+    -- $operations
+
+    -- ** AcceptGrant
+    AcceptGrant (AcceptGrant'),
+    newAcceptGrant,
+    AcceptGrantResponse (AcceptGrantResponse'),
+    newAcceptGrantResponse,
+
+    -- ** CheckInLicense
+    CheckInLicense (CheckInLicense'),
+    newCheckInLicense,
+    CheckInLicenseResponse (CheckInLicenseResponse'),
+    newCheckInLicenseResponse,
+
+    -- ** CheckoutBorrowLicense
+    CheckoutBorrowLicense (CheckoutBorrowLicense'),
+    newCheckoutBorrowLicense,
+    CheckoutBorrowLicenseResponse (CheckoutBorrowLicenseResponse'),
+    newCheckoutBorrowLicenseResponse,
+
+    -- ** CheckoutLicense
+    CheckoutLicense (CheckoutLicense'),
+    newCheckoutLicense,
+    CheckoutLicenseResponse (CheckoutLicenseResponse'),
+    newCheckoutLicenseResponse,
+
+    -- ** CreateGrant
+    CreateGrant (CreateGrant'),
+    newCreateGrant,
+    CreateGrantResponse (CreateGrantResponse'),
+    newCreateGrantResponse,
+
+    -- ** CreateGrantVersion
+    CreateGrantVersion (CreateGrantVersion'),
+    newCreateGrantVersion,
+    CreateGrantVersionResponse (CreateGrantVersionResponse'),
+    newCreateGrantVersionResponse,
+
+    -- ** CreateLicense
+    CreateLicense (CreateLicense'),
+    newCreateLicense,
+    CreateLicenseResponse (CreateLicenseResponse'),
+    newCreateLicenseResponse,
+
+    -- ** CreateLicenseConfiguration
+    CreateLicenseConfiguration (CreateLicenseConfiguration'),
+    newCreateLicenseConfiguration,
+    CreateLicenseConfigurationResponse (CreateLicenseConfigurationResponse'),
+    newCreateLicenseConfigurationResponse,
+
+    -- ** CreateLicenseConversionTaskForResource
+    CreateLicenseConversionTaskForResource (CreateLicenseConversionTaskForResource'),
+    newCreateLicenseConversionTaskForResource,
+    CreateLicenseConversionTaskForResourceResponse (CreateLicenseConversionTaskForResourceResponse'),
+    newCreateLicenseConversionTaskForResourceResponse,
+
+    -- ** CreateLicenseManagerReportGenerator
+    CreateLicenseManagerReportGenerator (CreateLicenseManagerReportGenerator'),
+    newCreateLicenseManagerReportGenerator,
+    CreateLicenseManagerReportGeneratorResponse (CreateLicenseManagerReportGeneratorResponse'),
+    newCreateLicenseManagerReportGeneratorResponse,
+
+    -- ** CreateLicenseVersion
+    CreateLicenseVersion (CreateLicenseVersion'),
+    newCreateLicenseVersion,
+    CreateLicenseVersionResponse (CreateLicenseVersionResponse'),
+    newCreateLicenseVersionResponse,
+
+    -- ** CreateToken
+    CreateToken (CreateToken'),
+    newCreateToken,
+    CreateTokenResponse (CreateTokenResponse'),
+    newCreateTokenResponse,
+
+    -- ** DeleteGrant
+    DeleteGrant (DeleteGrant'),
+    newDeleteGrant,
+    DeleteGrantResponse (DeleteGrantResponse'),
+    newDeleteGrantResponse,
+
+    -- ** DeleteLicense
+    DeleteLicense (DeleteLicense'),
+    newDeleteLicense,
+    DeleteLicenseResponse (DeleteLicenseResponse'),
+    newDeleteLicenseResponse,
+
+    -- ** DeleteLicenseConfiguration
+    DeleteLicenseConfiguration (DeleteLicenseConfiguration'),
+    newDeleteLicenseConfiguration,
+    DeleteLicenseConfigurationResponse (DeleteLicenseConfigurationResponse'),
+    newDeleteLicenseConfigurationResponse,
+
+    -- ** DeleteLicenseManagerReportGenerator
+    DeleteLicenseManagerReportGenerator (DeleteLicenseManagerReportGenerator'),
+    newDeleteLicenseManagerReportGenerator,
+    DeleteLicenseManagerReportGeneratorResponse (DeleteLicenseManagerReportGeneratorResponse'),
+    newDeleteLicenseManagerReportGeneratorResponse,
+
+    -- ** DeleteToken
+    DeleteToken (DeleteToken'),
+    newDeleteToken,
+    DeleteTokenResponse (DeleteTokenResponse'),
+    newDeleteTokenResponse,
+
+    -- ** ExtendLicenseConsumption
+    ExtendLicenseConsumption (ExtendLicenseConsumption'),
+    newExtendLicenseConsumption,
+    ExtendLicenseConsumptionResponse (ExtendLicenseConsumptionResponse'),
+    newExtendLicenseConsumptionResponse,
+
+    -- ** GetAccessToken
+    GetAccessToken (GetAccessToken'),
+    newGetAccessToken,
+    GetAccessTokenResponse (GetAccessTokenResponse'),
+    newGetAccessTokenResponse,
+
+    -- ** GetGrant
+    GetGrant (GetGrant'),
+    newGetGrant,
+    GetGrantResponse (GetGrantResponse'),
+    newGetGrantResponse,
+
+    -- ** GetLicense
+    GetLicense (GetLicense'),
+    newGetLicense,
+    GetLicenseResponse (GetLicenseResponse'),
+    newGetLicenseResponse,
+
+    -- ** GetLicenseConfiguration
+    GetLicenseConfiguration (GetLicenseConfiguration'),
+    newGetLicenseConfiguration,
+    GetLicenseConfigurationResponse (GetLicenseConfigurationResponse'),
+    newGetLicenseConfigurationResponse,
+
+    -- ** GetLicenseConversionTask
+    GetLicenseConversionTask (GetLicenseConversionTask'),
+    newGetLicenseConversionTask,
+    GetLicenseConversionTaskResponse (GetLicenseConversionTaskResponse'),
+    newGetLicenseConversionTaskResponse,
+
+    -- ** GetLicenseManagerReportGenerator
+    GetLicenseManagerReportGenerator (GetLicenseManagerReportGenerator'),
+    newGetLicenseManagerReportGenerator,
+    GetLicenseManagerReportGeneratorResponse (GetLicenseManagerReportGeneratorResponse'),
+    newGetLicenseManagerReportGeneratorResponse,
+
+    -- ** GetLicenseUsage
+    GetLicenseUsage (GetLicenseUsage'),
+    newGetLicenseUsage,
+    GetLicenseUsageResponse (GetLicenseUsageResponse'),
+    newGetLicenseUsageResponse,
+
+    -- ** GetServiceSettings
+    GetServiceSettings (GetServiceSettings'),
+    newGetServiceSettings,
+    GetServiceSettingsResponse (GetServiceSettingsResponse'),
+    newGetServiceSettingsResponse,
+
+    -- ** ListAssociationsForLicenseConfiguration (Paginated)
+    ListAssociationsForLicenseConfiguration (ListAssociationsForLicenseConfiguration'),
+    newListAssociationsForLicenseConfiguration,
+    ListAssociationsForLicenseConfigurationResponse (ListAssociationsForLicenseConfigurationResponse'),
+    newListAssociationsForLicenseConfigurationResponse,
+
+    -- ** ListDistributedGrants
+    ListDistributedGrants (ListDistributedGrants'),
+    newListDistributedGrants,
+    ListDistributedGrantsResponse (ListDistributedGrantsResponse'),
+    newListDistributedGrantsResponse,
+
+    -- ** ListFailuresForLicenseConfigurationOperations
+    ListFailuresForLicenseConfigurationOperations (ListFailuresForLicenseConfigurationOperations'),
+    newListFailuresForLicenseConfigurationOperations,
+    ListFailuresForLicenseConfigurationOperationsResponse (ListFailuresForLicenseConfigurationOperationsResponse'),
+    newListFailuresForLicenseConfigurationOperationsResponse,
+
+    -- ** ListLicenseConfigurations (Paginated)
+    ListLicenseConfigurations (ListLicenseConfigurations'),
+    newListLicenseConfigurations,
+    ListLicenseConfigurationsResponse (ListLicenseConfigurationsResponse'),
+    newListLicenseConfigurationsResponse,
+
+    -- ** ListLicenseConversionTasks
+    ListLicenseConversionTasks (ListLicenseConversionTasks'),
+    newListLicenseConversionTasks,
+    ListLicenseConversionTasksResponse (ListLicenseConversionTasksResponse'),
+    newListLicenseConversionTasksResponse,
+
+    -- ** ListLicenseManagerReportGenerators
+    ListLicenseManagerReportGenerators (ListLicenseManagerReportGenerators'),
+    newListLicenseManagerReportGenerators,
+    ListLicenseManagerReportGeneratorsResponse (ListLicenseManagerReportGeneratorsResponse'),
+    newListLicenseManagerReportGeneratorsResponse,
+
+    -- ** ListLicenseSpecificationsForResource (Paginated)
+    ListLicenseSpecificationsForResource (ListLicenseSpecificationsForResource'),
+    newListLicenseSpecificationsForResource,
+    ListLicenseSpecificationsForResourceResponse (ListLicenseSpecificationsForResourceResponse'),
+    newListLicenseSpecificationsForResourceResponse,
+
+    -- ** ListLicenseVersions
+    ListLicenseVersions (ListLicenseVersions'),
+    newListLicenseVersions,
+    ListLicenseVersionsResponse (ListLicenseVersionsResponse'),
+    newListLicenseVersionsResponse,
+
+    -- ** ListLicenses
+    ListLicenses (ListLicenses'),
+    newListLicenses,
+    ListLicensesResponse (ListLicensesResponse'),
+    newListLicensesResponse,
+
+    -- ** ListReceivedGrants
+    ListReceivedGrants (ListReceivedGrants'),
+    newListReceivedGrants,
+    ListReceivedGrantsResponse (ListReceivedGrantsResponse'),
+    newListReceivedGrantsResponse,
+
+    -- ** ListReceivedGrantsForOrganization
+    ListReceivedGrantsForOrganization (ListReceivedGrantsForOrganization'),
+    newListReceivedGrantsForOrganization,
+    ListReceivedGrantsForOrganizationResponse (ListReceivedGrantsForOrganizationResponse'),
+    newListReceivedGrantsForOrganizationResponse,
+
+    -- ** ListReceivedLicenses
+    ListReceivedLicenses (ListReceivedLicenses'),
+    newListReceivedLicenses,
+    ListReceivedLicensesResponse (ListReceivedLicensesResponse'),
+    newListReceivedLicensesResponse,
+
+    -- ** ListReceivedLicensesForOrganization
+    ListReceivedLicensesForOrganization (ListReceivedLicensesForOrganization'),
+    newListReceivedLicensesForOrganization,
+    ListReceivedLicensesForOrganizationResponse (ListReceivedLicensesForOrganizationResponse'),
+    newListReceivedLicensesForOrganizationResponse,
+
+    -- ** ListResourceInventory (Paginated)
+    ListResourceInventory (ListResourceInventory'),
+    newListResourceInventory,
+    ListResourceInventoryResponse (ListResourceInventoryResponse'),
+    newListResourceInventoryResponse,
+
+    -- ** ListTagsForResource
+    ListTagsForResource (ListTagsForResource'),
+    newListTagsForResource,
+    ListTagsForResourceResponse (ListTagsForResourceResponse'),
+    newListTagsForResourceResponse,
+
+    -- ** ListTokens
+    ListTokens (ListTokens'),
+    newListTokens,
+    ListTokensResponse (ListTokensResponse'),
+    newListTokensResponse,
+
+    -- ** ListUsageForLicenseConfiguration (Paginated)
+    ListUsageForLicenseConfiguration (ListUsageForLicenseConfiguration'),
+    newListUsageForLicenseConfiguration,
+    ListUsageForLicenseConfigurationResponse (ListUsageForLicenseConfigurationResponse'),
+    newListUsageForLicenseConfigurationResponse,
+
+    -- ** RejectGrant
+    RejectGrant (RejectGrant'),
+    newRejectGrant,
+    RejectGrantResponse (RejectGrantResponse'),
+    newRejectGrantResponse,
+
+    -- ** TagResource
+    TagResource (TagResource'),
+    newTagResource,
+    TagResourceResponse (TagResourceResponse'),
+    newTagResourceResponse,
+
+    -- ** UntagResource
+    UntagResource (UntagResource'),
+    newUntagResource,
+    UntagResourceResponse (UntagResourceResponse'),
+    newUntagResourceResponse,
+
+    -- ** UpdateLicenseConfiguration
+    UpdateLicenseConfiguration (UpdateLicenseConfiguration'),
+    newUpdateLicenseConfiguration,
+    UpdateLicenseConfigurationResponse (UpdateLicenseConfigurationResponse'),
+    newUpdateLicenseConfigurationResponse,
+
+    -- ** UpdateLicenseManagerReportGenerator
+    UpdateLicenseManagerReportGenerator (UpdateLicenseManagerReportGenerator'),
+    newUpdateLicenseManagerReportGenerator,
+    UpdateLicenseManagerReportGeneratorResponse (UpdateLicenseManagerReportGeneratorResponse'),
+    newUpdateLicenseManagerReportGeneratorResponse,
+
+    -- ** UpdateLicenseSpecificationsForResource
+    UpdateLicenseSpecificationsForResource (UpdateLicenseSpecificationsForResource'),
+    newUpdateLicenseSpecificationsForResource,
+    UpdateLicenseSpecificationsForResourceResponse (UpdateLicenseSpecificationsForResourceResponse'),
+    newUpdateLicenseSpecificationsForResourceResponse,
+
+    -- ** UpdateServiceSettings
+    UpdateServiceSettings (UpdateServiceSettings'),
+    newUpdateServiceSettings,
+    UpdateServiceSettingsResponse (UpdateServiceSettingsResponse'),
+    newUpdateServiceSettingsResponse,
+
+    -- * Types
+
+    -- ** AllowedOperation
+    AllowedOperation (..),
+
+    -- ** CheckoutType
+    CheckoutType (..),
+
+    -- ** DigitalSignatureMethod
+    DigitalSignatureMethod (..),
+
+    -- ** EntitlementDataUnit
+    EntitlementDataUnit (..),
+
+    -- ** EntitlementUnit
+    EntitlementUnit (..),
+
+    -- ** GrantStatus
+    GrantStatus (..),
+
+    -- ** InventoryFilterCondition
+    InventoryFilterCondition (..),
+
+    -- ** LicenseConfigurationStatus
+    LicenseConfigurationStatus (..),
+
+    -- ** LicenseConversionTaskStatus
+    LicenseConversionTaskStatus (..),
+
+    -- ** LicenseCountingType
+    LicenseCountingType (..),
+
+    -- ** LicenseDeletionStatus
+    LicenseDeletionStatus (..),
+
+    -- ** LicenseStatus
+    LicenseStatus (..),
+
+    -- ** ReceivedStatus
+    ReceivedStatus (..),
+
+    -- ** RenewType
+    RenewType (..),
+
+    -- ** ReportFrequencyType
+    ReportFrequencyType (..),
+
+    -- ** ReportType
+    ReportType (..),
+
+    -- ** ResourceType
+    ResourceType (..),
+
+    -- ** TokenType
+    TokenType (..),
+
+    -- ** AutomatedDiscoveryInformation
+    AutomatedDiscoveryInformation (AutomatedDiscoveryInformation'),
+    newAutomatedDiscoveryInformation,
+
+    -- ** BorrowConfiguration
+    BorrowConfiguration (BorrowConfiguration'),
+    newBorrowConfiguration,
+
+    -- ** ConsumedLicenseSummary
+    ConsumedLicenseSummary (ConsumedLicenseSummary'),
+    newConsumedLicenseSummary,
+
+    -- ** ConsumptionConfiguration
+    ConsumptionConfiguration (ConsumptionConfiguration'),
+    newConsumptionConfiguration,
+
+    -- ** DatetimeRange
+    DatetimeRange (DatetimeRange'),
+    newDatetimeRange,
+
+    -- ** Entitlement
+    Entitlement (Entitlement'),
+    newEntitlement,
+
+    -- ** EntitlementData
+    EntitlementData (EntitlementData'),
+    newEntitlementData,
+
+    -- ** EntitlementUsage
+    EntitlementUsage (EntitlementUsage'),
+    newEntitlementUsage,
+
+    -- ** Filter
+    Filter (Filter'),
+    newFilter,
+
+    -- ** Grant
+    Grant (Grant'),
+    newGrant,
+
+    -- ** GrantedLicense
+    GrantedLicense (GrantedLicense'),
+    newGrantedLicense,
+
+    -- ** InventoryFilter
+    InventoryFilter (InventoryFilter'),
+    newInventoryFilter,
+
+    -- ** Issuer
+    Issuer (Issuer'),
+    newIssuer,
+
+    -- ** IssuerDetails
+    IssuerDetails (IssuerDetails'),
+    newIssuerDetails,
+
+    -- ** License
+    License (License'),
+    newLicense,
+
+    -- ** LicenseConfiguration
+    LicenseConfiguration (LicenseConfiguration'),
+    newLicenseConfiguration,
+
+    -- ** LicenseConfigurationAssociation
+    LicenseConfigurationAssociation (LicenseConfigurationAssociation'),
+    newLicenseConfigurationAssociation,
+
+    -- ** LicenseConfigurationUsage
+    LicenseConfigurationUsage (LicenseConfigurationUsage'),
+    newLicenseConfigurationUsage,
+
+    -- ** LicenseConversionContext
+    LicenseConversionContext (LicenseConversionContext'),
+    newLicenseConversionContext,
+
+    -- ** LicenseConversionTask
+    LicenseConversionTask (LicenseConversionTask'),
+    newLicenseConversionTask,
+
+    -- ** LicenseOperationFailure
+    LicenseOperationFailure (LicenseOperationFailure'),
+    newLicenseOperationFailure,
+
+    -- ** LicenseSpecification
+    LicenseSpecification (LicenseSpecification'),
+    newLicenseSpecification,
+
+    -- ** LicenseUsage
+    LicenseUsage (LicenseUsage'),
+    newLicenseUsage,
+
+    -- ** ManagedResourceSummary
+    ManagedResourceSummary (ManagedResourceSummary'),
+    newManagedResourceSummary,
+
+    -- ** Metadata
+    Metadata (Metadata'),
+    newMetadata,
+
+    -- ** OrganizationConfiguration
+    OrganizationConfiguration (OrganizationConfiguration'),
+    newOrganizationConfiguration,
+
+    -- ** ProductInformation
+    ProductInformation (ProductInformation'),
+    newProductInformation,
+
+    -- ** ProductInformationFilter
+    ProductInformationFilter (ProductInformationFilter'),
+    newProductInformationFilter,
+
+    -- ** ProvisionalConfiguration
+    ProvisionalConfiguration (ProvisionalConfiguration'),
+    newProvisionalConfiguration,
+
+    -- ** ReceivedMetadata
+    ReceivedMetadata (ReceivedMetadata'),
+    newReceivedMetadata,
+
+    -- ** ReportContext
+    ReportContext (ReportContext'),
+    newReportContext,
+
+    -- ** ReportFrequency
+    ReportFrequency (ReportFrequency'),
+    newReportFrequency,
+
+    -- ** ReportGenerator
+    ReportGenerator (ReportGenerator'),
+    newReportGenerator,
+
+    -- ** ResourceInventory
+    ResourceInventory (ResourceInventory'),
+    newResourceInventory,
+
+    -- ** S3Location
+    S3Location (S3Location'),
+    newS3Location,
+
+    -- ** Tag
+    Tag (Tag'),
+    newTag,
+
+    -- ** TokenData
+    TokenData (TokenData'),
+    newTokenData,
+  )
+where
+
+import Amazonka.LicenseManager.AcceptGrant
+import Amazonka.LicenseManager.CheckInLicense
+import Amazonka.LicenseManager.CheckoutBorrowLicense
+import Amazonka.LicenseManager.CheckoutLicense
+import Amazonka.LicenseManager.CreateGrant
+import Amazonka.LicenseManager.CreateGrantVersion
+import Amazonka.LicenseManager.CreateLicense
+import Amazonka.LicenseManager.CreateLicenseConfiguration
+import Amazonka.LicenseManager.CreateLicenseConversionTaskForResource
+import Amazonka.LicenseManager.CreateLicenseManagerReportGenerator
+import Amazonka.LicenseManager.CreateLicenseVersion
+import Amazonka.LicenseManager.CreateToken
+import Amazonka.LicenseManager.DeleteGrant
+import Amazonka.LicenseManager.DeleteLicense
+import Amazonka.LicenseManager.DeleteLicenseConfiguration
+import Amazonka.LicenseManager.DeleteLicenseManagerReportGenerator
+import Amazonka.LicenseManager.DeleteToken
+import Amazonka.LicenseManager.ExtendLicenseConsumption
+import Amazonka.LicenseManager.GetAccessToken
+import Amazonka.LicenseManager.GetGrant
+import Amazonka.LicenseManager.GetLicense
+import Amazonka.LicenseManager.GetLicenseConfiguration
+import Amazonka.LicenseManager.GetLicenseConversionTask
+import Amazonka.LicenseManager.GetLicenseManagerReportGenerator
+import Amazonka.LicenseManager.GetLicenseUsage
+import Amazonka.LicenseManager.GetServiceSettings
+import Amazonka.LicenseManager.Lens
+import Amazonka.LicenseManager.ListAssociationsForLicenseConfiguration
+import Amazonka.LicenseManager.ListDistributedGrants
+import Amazonka.LicenseManager.ListFailuresForLicenseConfigurationOperations
+import Amazonka.LicenseManager.ListLicenseConfigurations
+import Amazonka.LicenseManager.ListLicenseConversionTasks
+import Amazonka.LicenseManager.ListLicenseManagerReportGenerators
+import Amazonka.LicenseManager.ListLicenseSpecificationsForResource
+import Amazonka.LicenseManager.ListLicenseVersions
+import Amazonka.LicenseManager.ListLicenses
+import Amazonka.LicenseManager.ListReceivedGrants
+import Amazonka.LicenseManager.ListReceivedGrantsForOrganization
+import Amazonka.LicenseManager.ListReceivedLicenses
+import Amazonka.LicenseManager.ListReceivedLicensesForOrganization
+import Amazonka.LicenseManager.ListResourceInventory
+import Amazonka.LicenseManager.ListTagsForResource
+import Amazonka.LicenseManager.ListTokens
+import Amazonka.LicenseManager.ListUsageForLicenseConfiguration
+import Amazonka.LicenseManager.RejectGrant
+import Amazonka.LicenseManager.TagResource
+import Amazonka.LicenseManager.Types
+import Amazonka.LicenseManager.UntagResource
+import Amazonka.LicenseManager.UpdateLicenseConfiguration
+import Amazonka.LicenseManager.UpdateLicenseManagerReportGenerator
+import Amazonka.LicenseManager.UpdateLicenseSpecificationsForResource
+import Amazonka.LicenseManager.UpdateServiceSettings
+import Amazonka.LicenseManager.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 'LicenseManager'.
+
+-- $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/LicenseManager/AcceptGrant.hs b/gen/Amazonka/LicenseManager/AcceptGrant.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/AcceptGrant.hs
@@ -0,0 +1,189 @@
+{-# 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.LicenseManager.AcceptGrant
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Accepts the specified grant.
+module Amazonka.LicenseManager.AcceptGrant
+  ( -- * Creating a Request
+    AcceptGrant (..),
+    newAcceptGrant,
+
+    -- * Request Lenses
+    acceptGrant_grantArn,
+
+    -- * Destructuring the Response
+    AcceptGrantResponse (..),
+    newAcceptGrantResponse,
+
+    -- * Response Lenses
+    acceptGrantResponse_grantArn,
+    acceptGrantResponse_status,
+    acceptGrantResponse_version,
+    acceptGrantResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newAcceptGrant' smart constructor.
+data AcceptGrant = AcceptGrant'
+  { -- | Amazon Resource Name (ARN) of the grant.
+    grantArn :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'AcceptGrant' 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:
+--
+-- 'grantArn', 'acceptGrant_grantArn' - Amazon Resource Name (ARN) of the grant.
+newAcceptGrant ::
+  -- | 'grantArn'
+  Prelude.Text ->
+  AcceptGrant
+newAcceptGrant pGrantArn_ =
+  AcceptGrant' {grantArn = pGrantArn_}
+
+-- | Amazon Resource Name (ARN) of the grant.
+acceptGrant_grantArn :: Lens.Lens' AcceptGrant Prelude.Text
+acceptGrant_grantArn = Lens.lens (\AcceptGrant' {grantArn} -> grantArn) (\s@AcceptGrant' {} a -> s {grantArn = a} :: AcceptGrant)
+
+instance Core.AWSRequest AcceptGrant where
+  type AWSResponse AcceptGrant = AcceptGrantResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          AcceptGrantResponse'
+            Prelude.<$> (x Data..?> "GrantArn")
+            Prelude.<*> (x Data..?> "Status")
+            Prelude.<*> (x Data..?> "Version")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable AcceptGrant where
+  hashWithSalt _salt AcceptGrant' {..} =
+    _salt `Prelude.hashWithSalt` grantArn
+
+instance Prelude.NFData AcceptGrant where
+  rnf AcceptGrant' {..} = Prelude.rnf grantArn
+
+instance Data.ToHeaders AcceptGrant where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.AcceptGrant" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON AcceptGrant where
+  toJSON AcceptGrant' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [Prelude.Just ("GrantArn" Data..= grantArn)]
+      )
+
+instance Data.ToPath AcceptGrant where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery AcceptGrant where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newAcceptGrantResponse' smart constructor.
+data AcceptGrantResponse = AcceptGrantResponse'
+  { -- | Grant ARN.
+    grantArn :: Prelude.Maybe Prelude.Text,
+    -- | Grant status.
+    status :: Prelude.Maybe GrantStatus,
+    -- | Grant version.
+    version :: 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 'AcceptGrantResponse' 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:
+--
+-- 'grantArn', 'acceptGrantResponse_grantArn' - Grant ARN.
+--
+-- 'status', 'acceptGrantResponse_status' - Grant status.
+--
+-- 'version', 'acceptGrantResponse_version' - Grant version.
+--
+-- 'httpStatus', 'acceptGrantResponse_httpStatus' - The response's http status code.
+newAcceptGrantResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  AcceptGrantResponse
+newAcceptGrantResponse pHttpStatus_ =
+  AcceptGrantResponse'
+    { grantArn = Prelude.Nothing,
+      status = Prelude.Nothing,
+      version = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Grant ARN.
+acceptGrantResponse_grantArn :: Lens.Lens' AcceptGrantResponse (Prelude.Maybe Prelude.Text)
+acceptGrantResponse_grantArn = Lens.lens (\AcceptGrantResponse' {grantArn} -> grantArn) (\s@AcceptGrantResponse' {} a -> s {grantArn = a} :: AcceptGrantResponse)
+
+-- | Grant status.
+acceptGrantResponse_status :: Lens.Lens' AcceptGrantResponse (Prelude.Maybe GrantStatus)
+acceptGrantResponse_status = Lens.lens (\AcceptGrantResponse' {status} -> status) (\s@AcceptGrantResponse' {} a -> s {status = a} :: AcceptGrantResponse)
+
+-- | Grant version.
+acceptGrantResponse_version :: Lens.Lens' AcceptGrantResponse (Prelude.Maybe Prelude.Text)
+acceptGrantResponse_version = Lens.lens (\AcceptGrantResponse' {version} -> version) (\s@AcceptGrantResponse' {} a -> s {version = a} :: AcceptGrantResponse)
+
+-- | The response's http status code.
+acceptGrantResponse_httpStatus :: Lens.Lens' AcceptGrantResponse Prelude.Int
+acceptGrantResponse_httpStatus = Lens.lens (\AcceptGrantResponse' {httpStatus} -> httpStatus) (\s@AcceptGrantResponse' {} a -> s {httpStatus = a} :: AcceptGrantResponse)
+
+instance Prelude.NFData AcceptGrantResponse where
+  rnf AcceptGrantResponse' {..} =
+    Prelude.rnf grantArn
+      `Prelude.seq` Prelude.rnf status
+      `Prelude.seq` Prelude.rnf version
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/CheckInLicense.hs b/gen/Amazonka/LicenseManager/CheckInLicense.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/CheckInLicense.hs
@@ -0,0 +1,175 @@
+{-# 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.LicenseManager.CheckInLicense
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Checks in the specified license. Check in a license when it is no longer
+-- in use.
+module Amazonka.LicenseManager.CheckInLicense
+  ( -- * Creating a Request
+    CheckInLicense (..),
+    newCheckInLicense,
+
+    -- * Request Lenses
+    checkInLicense_beneficiary,
+    checkInLicense_licenseConsumptionToken,
+
+    -- * Destructuring the Response
+    CheckInLicenseResponse (..),
+    newCheckInLicenseResponse,
+
+    -- * Response Lenses
+    checkInLicenseResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newCheckInLicense' smart constructor.
+data CheckInLicense = CheckInLicense'
+  { -- | License beneficiary.
+    beneficiary :: Prelude.Maybe Prelude.Text,
+    -- | License consumption token.
+    licenseConsumptionToken :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CheckInLicense' 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:
+--
+-- 'beneficiary', 'checkInLicense_beneficiary' - License beneficiary.
+--
+-- 'licenseConsumptionToken', 'checkInLicense_licenseConsumptionToken' - License consumption token.
+newCheckInLicense ::
+  -- | 'licenseConsumptionToken'
+  Prelude.Text ->
+  CheckInLicense
+newCheckInLicense pLicenseConsumptionToken_ =
+  CheckInLicense'
+    { beneficiary = Prelude.Nothing,
+      licenseConsumptionToken = pLicenseConsumptionToken_
+    }
+
+-- | License beneficiary.
+checkInLicense_beneficiary :: Lens.Lens' CheckInLicense (Prelude.Maybe Prelude.Text)
+checkInLicense_beneficiary = Lens.lens (\CheckInLicense' {beneficiary} -> beneficiary) (\s@CheckInLicense' {} a -> s {beneficiary = a} :: CheckInLicense)
+
+-- | License consumption token.
+checkInLicense_licenseConsumptionToken :: Lens.Lens' CheckInLicense Prelude.Text
+checkInLicense_licenseConsumptionToken = Lens.lens (\CheckInLicense' {licenseConsumptionToken} -> licenseConsumptionToken) (\s@CheckInLicense' {} a -> s {licenseConsumptionToken = a} :: CheckInLicense)
+
+instance Core.AWSRequest CheckInLicense where
+  type
+    AWSResponse CheckInLicense =
+      CheckInLicenseResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveEmpty
+      ( \s h x ->
+          CheckInLicenseResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable CheckInLicense where
+  hashWithSalt _salt CheckInLicense' {..} =
+    _salt
+      `Prelude.hashWithSalt` beneficiary
+      `Prelude.hashWithSalt` licenseConsumptionToken
+
+instance Prelude.NFData CheckInLicense where
+  rnf CheckInLicense' {..} =
+    Prelude.rnf beneficiary
+      `Prelude.seq` Prelude.rnf licenseConsumptionToken
+
+instance Data.ToHeaders CheckInLicense where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.CheckInLicense" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON CheckInLicense where
+  toJSON CheckInLicense' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("Beneficiary" Data..=) Prelude.<$> beneficiary,
+            Prelude.Just
+              ( "LicenseConsumptionToken"
+                  Data..= licenseConsumptionToken
+              )
+          ]
+      )
+
+instance Data.ToPath CheckInLicense where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery CheckInLicense where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newCheckInLicenseResponse' smart constructor.
+data CheckInLicenseResponse = CheckInLicenseResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CheckInLicenseResponse' 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', 'checkInLicenseResponse_httpStatus' - The response's http status code.
+newCheckInLicenseResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  CheckInLicenseResponse
+newCheckInLicenseResponse pHttpStatus_ =
+  CheckInLicenseResponse' {httpStatus = pHttpStatus_}
+
+-- | The response's http status code.
+checkInLicenseResponse_httpStatus :: Lens.Lens' CheckInLicenseResponse Prelude.Int
+checkInLicenseResponse_httpStatus = Lens.lens (\CheckInLicenseResponse' {httpStatus} -> httpStatus) (\s@CheckInLicenseResponse' {} a -> s {httpStatus = a} :: CheckInLicenseResponse)
+
+instance Prelude.NFData CheckInLicenseResponse where
+  rnf CheckInLicenseResponse' {..} =
+    Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/CheckoutBorrowLicense.hs b/gen/Amazonka/LicenseManager/CheckoutBorrowLicense.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/CheckoutBorrowLicense.hs
@@ -0,0 +1,352 @@
+{-# 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.LicenseManager.CheckoutBorrowLicense
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Checks out the specified license for offline use.
+module Amazonka.LicenseManager.CheckoutBorrowLicense
+  ( -- * Creating a Request
+    CheckoutBorrowLicense (..),
+    newCheckoutBorrowLicense,
+
+    -- * Request Lenses
+    checkoutBorrowLicense_checkoutMetadata,
+    checkoutBorrowLicense_nodeId,
+    checkoutBorrowLicense_licenseArn,
+    checkoutBorrowLicense_entitlements,
+    checkoutBorrowLicense_digitalSignatureMethod,
+    checkoutBorrowLicense_clientToken,
+
+    -- * Destructuring the Response
+    CheckoutBorrowLicenseResponse (..),
+    newCheckoutBorrowLicenseResponse,
+
+    -- * Response Lenses
+    checkoutBorrowLicenseResponse_checkoutMetadata,
+    checkoutBorrowLicenseResponse_entitlementsAllowed,
+    checkoutBorrowLicenseResponse_expiration,
+    checkoutBorrowLicenseResponse_issuedAt,
+    checkoutBorrowLicenseResponse_licenseArn,
+    checkoutBorrowLicenseResponse_licenseConsumptionToken,
+    checkoutBorrowLicenseResponse_nodeId,
+    checkoutBorrowLicenseResponse_signedToken,
+    checkoutBorrowLicenseResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newCheckoutBorrowLicense' smart constructor.
+data CheckoutBorrowLicense = CheckoutBorrowLicense'
+  { -- | Information about constraints.
+    checkoutMetadata :: Prelude.Maybe [Metadata],
+    -- | Node ID.
+    nodeId :: Prelude.Maybe Prelude.Text,
+    -- | Amazon Resource Name (ARN) of the license. The license must use the
+    -- borrow consumption configuration.
+    licenseArn :: Prelude.Text,
+    -- | License entitlements. Partial checkouts are not supported.
+    entitlements :: [EntitlementData],
+    -- | Digital signature method. The possible value is JSON Web Signature (JWS)
+    -- algorithm PS384. For more information, see
+    -- <https://tools.ietf.org/html/rfc7518#section-3.5 RFC 7518 Digital Signature with RSASSA-PSS>.
+    digitalSignatureMethod :: DigitalSignatureMethod,
+    -- | Unique, case-sensitive identifier that you provide to ensure the
+    -- idempotency of the request.
+    clientToken :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CheckoutBorrowLicense' 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:
+--
+-- 'checkoutMetadata', 'checkoutBorrowLicense_checkoutMetadata' - Information about constraints.
+--
+-- 'nodeId', 'checkoutBorrowLicense_nodeId' - Node ID.
+--
+-- 'licenseArn', 'checkoutBorrowLicense_licenseArn' - Amazon Resource Name (ARN) of the license. The license must use the
+-- borrow consumption configuration.
+--
+-- 'entitlements', 'checkoutBorrowLicense_entitlements' - License entitlements. Partial checkouts are not supported.
+--
+-- 'digitalSignatureMethod', 'checkoutBorrowLicense_digitalSignatureMethod' - Digital signature method. The possible value is JSON Web Signature (JWS)
+-- algorithm PS384. For more information, see
+-- <https://tools.ietf.org/html/rfc7518#section-3.5 RFC 7518 Digital Signature with RSASSA-PSS>.
+--
+-- 'clientToken', 'checkoutBorrowLicense_clientToken' - Unique, case-sensitive identifier that you provide to ensure the
+-- idempotency of the request.
+newCheckoutBorrowLicense ::
+  -- | 'licenseArn'
+  Prelude.Text ->
+  -- | 'digitalSignatureMethod'
+  DigitalSignatureMethod ->
+  -- | 'clientToken'
+  Prelude.Text ->
+  CheckoutBorrowLicense
+newCheckoutBorrowLicense
+  pLicenseArn_
+  pDigitalSignatureMethod_
+  pClientToken_ =
+    CheckoutBorrowLicense'
+      { checkoutMetadata =
+          Prelude.Nothing,
+        nodeId = Prelude.Nothing,
+        licenseArn = pLicenseArn_,
+        entitlements = Prelude.mempty,
+        digitalSignatureMethod = pDigitalSignatureMethod_,
+        clientToken = pClientToken_
+      }
+
+-- | Information about constraints.
+checkoutBorrowLicense_checkoutMetadata :: Lens.Lens' CheckoutBorrowLicense (Prelude.Maybe [Metadata])
+checkoutBorrowLicense_checkoutMetadata = Lens.lens (\CheckoutBorrowLicense' {checkoutMetadata} -> checkoutMetadata) (\s@CheckoutBorrowLicense' {} a -> s {checkoutMetadata = a} :: CheckoutBorrowLicense) Prelude.. Lens.mapping Lens.coerced
+
+-- | Node ID.
+checkoutBorrowLicense_nodeId :: Lens.Lens' CheckoutBorrowLicense (Prelude.Maybe Prelude.Text)
+checkoutBorrowLicense_nodeId = Lens.lens (\CheckoutBorrowLicense' {nodeId} -> nodeId) (\s@CheckoutBorrowLicense' {} a -> s {nodeId = a} :: CheckoutBorrowLicense)
+
+-- | Amazon Resource Name (ARN) of the license. The license must use the
+-- borrow consumption configuration.
+checkoutBorrowLicense_licenseArn :: Lens.Lens' CheckoutBorrowLicense Prelude.Text
+checkoutBorrowLicense_licenseArn = Lens.lens (\CheckoutBorrowLicense' {licenseArn} -> licenseArn) (\s@CheckoutBorrowLicense' {} a -> s {licenseArn = a} :: CheckoutBorrowLicense)
+
+-- | License entitlements. Partial checkouts are not supported.
+checkoutBorrowLicense_entitlements :: Lens.Lens' CheckoutBorrowLicense [EntitlementData]
+checkoutBorrowLicense_entitlements = Lens.lens (\CheckoutBorrowLicense' {entitlements} -> entitlements) (\s@CheckoutBorrowLicense' {} a -> s {entitlements = a} :: CheckoutBorrowLicense) Prelude.. Lens.coerced
+
+-- | Digital signature method. The possible value is JSON Web Signature (JWS)
+-- algorithm PS384. For more information, see
+-- <https://tools.ietf.org/html/rfc7518#section-3.5 RFC 7518 Digital Signature with RSASSA-PSS>.
+checkoutBorrowLicense_digitalSignatureMethod :: Lens.Lens' CheckoutBorrowLicense DigitalSignatureMethod
+checkoutBorrowLicense_digitalSignatureMethod = Lens.lens (\CheckoutBorrowLicense' {digitalSignatureMethod} -> digitalSignatureMethod) (\s@CheckoutBorrowLicense' {} a -> s {digitalSignatureMethod = a} :: CheckoutBorrowLicense)
+
+-- | Unique, case-sensitive identifier that you provide to ensure the
+-- idempotency of the request.
+checkoutBorrowLicense_clientToken :: Lens.Lens' CheckoutBorrowLicense Prelude.Text
+checkoutBorrowLicense_clientToken = Lens.lens (\CheckoutBorrowLicense' {clientToken} -> clientToken) (\s@CheckoutBorrowLicense' {} a -> s {clientToken = a} :: CheckoutBorrowLicense)
+
+instance Core.AWSRequest CheckoutBorrowLicense where
+  type
+    AWSResponse CheckoutBorrowLicense =
+      CheckoutBorrowLicenseResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          CheckoutBorrowLicenseResponse'
+            Prelude.<$> ( x
+                            Data..?> "CheckoutMetadata"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> ( x
+                            Data..?> "EntitlementsAllowed"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "Expiration")
+            Prelude.<*> (x Data..?> "IssuedAt")
+            Prelude.<*> (x Data..?> "LicenseArn")
+            Prelude.<*> (x Data..?> "LicenseConsumptionToken")
+            Prelude.<*> (x Data..?> "NodeId")
+            Prelude.<*> (x Data..?> "SignedToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable CheckoutBorrowLicense where
+  hashWithSalt _salt CheckoutBorrowLicense' {..} =
+    _salt
+      `Prelude.hashWithSalt` checkoutMetadata
+      `Prelude.hashWithSalt` nodeId
+      `Prelude.hashWithSalt` licenseArn
+      `Prelude.hashWithSalt` entitlements
+      `Prelude.hashWithSalt` digitalSignatureMethod
+      `Prelude.hashWithSalt` clientToken
+
+instance Prelude.NFData CheckoutBorrowLicense where
+  rnf CheckoutBorrowLicense' {..} =
+    Prelude.rnf checkoutMetadata
+      `Prelude.seq` Prelude.rnf nodeId
+      `Prelude.seq` Prelude.rnf licenseArn
+      `Prelude.seq` Prelude.rnf entitlements
+      `Prelude.seq` Prelude.rnf digitalSignatureMethod
+      `Prelude.seq` Prelude.rnf clientToken
+
+instance Data.ToHeaders CheckoutBorrowLicense where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.CheckoutBorrowLicense" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON CheckoutBorrowLicense where
+  toJSON CheckoutBorrowLicense' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("CheckoutMetadata" Data..=)
+              Prelude.<$> checkoutMetadata,
+            ("NodeId" Data..=) Prelude.<$> nodeId,
+            Prelude.Just ("LicenseArn" Data..= licenseArn),
+            Prelude.Just ("Entitlements" Data..= entitlements),
+            Prelude.Just
+              ( "DigitalSignatureMethod"
+                  Data..= digitalSignatureMethod
+              ),
+            Prelude.Just ("ClientToken" Data..= clientToken)
+          ]
+      )
+
+instance Data.ToPath CheckoutBorrowLicense where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery CheckoutBorrowLicense where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newCheckoutBorrowLicenseResponse' smart constructor.
+data CheckoutBorrowLicenseResponse = CheckoutBorrowLicenseResponse'
+  { -- | Information about constraints.
+    checkoutMetadata :: Prelude.Maybe [Metadata],
+    -- | Allowed license entitlements.
+    entitlementsAllowed :: Prelude.Maybe [EntitlementData],
+    -- | Date and time at which the license checkout expires.
+    expiration :: Prelude.Maybe Prelude.Text,
+    -- | Date and time at which the license checkout is issued.
+    issuedAt :: Prelude.Maybe Prelude.Text,
+    -- | Amazon Resource Name (ARN) of the license.
+    licenseArn :: Prelude.Maybe Prelude.Text,
+    -- | License consumption token.
+    licenseConsumptionToken :: Prelude.Maybe Prelude.Text,
+    -- | Node ID.
+    nodeId :: Prelude.Maybe Prelude.Text,
+    -- | Signed token.
+    signedToken :: 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 'CheckoutBorrowLicenseResponse' 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:
+--
+-- 'checkoutMetadata', 'checkoutBorrowLicenseResponse_checkoutMetadata' - Information about constraints.
+--
+-- 'entitlementsAllowed', 'checkoutBorrowLicenseResponse_entitlementsAllowed' - Allowed license entitlements.
+--
+-- 'expiration', 'checkoutBorrowLicenseResponse_expiration' - Date and time at which the license checkout expires.
+--
+-- 'issuedAt', 'checkoutBorrowLicenseResponse_issuedAt' - Date and time at which the license checkout is issued.
+--
+-- 'licenseArn', 'checkoutBorrowLicenseResponse_licenseArn' - Amazon Resource Name (ARN) of the license.
+--
+-- 'licenseConsumptionToken', 'checkoutBorrowLicenseResponse_licenseConsumptionToken' - License consumption token.
+--
+-- 'nodeId', 'checkoutBorrowLicenseResponse_nodeId' - Node ID.
+--
+-- 'signedToken', 'checkoutBorrowLicenseResponse_signedToken' - Signed token.
+--
+-- 'httpStatus', 'checkoutBorrowLicenseResponse_httpStatus' - The response's http status code.
+newCheckoutBorrowLicenseResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  CheckoutBorrowLicenseResponse
+newCheckoutBorrowLicenseResponse pHttpStatus_ =
+  CheckoutBorrowLicenseResponse'
+    { checkoutMetadata =
+        Prelude.Nothing,
+      entitlementsAllowed = Prelude.Nothing,
+      expiration = Prelude.Nothing,
+      issuedAt = Prelude.Nothing,
+      licenseArn = Prelude.Nothing,
+      licenseConsumptionToken = Prelude.Nothing,
+      nodeId = Prelude.Nothing,
+      signedToken = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Information about constraints.
+checkoutBorrowLicenseResponse_checkoutMetadata :: Lens.Lens' CheckoutBorrowLicenseResponse (Prelude.Maybe [Metadata])
+checkoutBorrowLicenseResponse_checkoutMetadata = Lens.lens (\CheckoutBorrowLicenseResponse' {checkoutMetadata} -> checkoutMetadata) (\s@CheckoutBorrowLicenseResponse' {} a -> s {checkoutMetadata = a} :: CheckoutBorrowLicenseResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | Allowed license entitlements.
+checkoutBorrowLicenseResponse_entitlementsAllowed :: Lens.Lens' CheckoutBorrowLicenseResponse (Prelude.Maybe [EntitlementData])
+checkoutBorrowLicenseResponse_entitlementsAllowed = Lens.lens (\CheckoutBorrowLicenseResponse' {entitlementsAllowed} -> entitlementsAllowed) (\s@CheckoutBorrowLicenseResponse' {} a -> s {entitlementsAllowed = a} :: CheckoutBorrowLicenseResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | Date and time at which the license checkout expires.
+checkoutBorrowLicenseResponse_expiration :: Lens.Lens' CheckoutBorrowLicenseResponse (Prelude.Maybe Prelude.Text)
+checkoutBorrowLicenseResponse_expiration = Lens.lens (\CheckoutBorrowLicenseResponse' {expiration} -> expiration) (\s@CheckoutBorrowLicenseResponse' {} a -> s {expiration = a} :: CheckoutBorrowLicenseResponse)
+
+-- | Date and time at which the license checkout is issued.
+checkoutBorrowLicenseResponse_issuedAt :: Lens.Lens' CheckoutBorrowLicenseResponse (Prelude.Maybe Prelude.Text)
+checkoutBorrowLicenseResponse_issuedAt = Lens.lens (\CheckoutBorrowLicenseResponse' {issuedAt} -> issuedAt) (\s@CheckoutBorrowLicenseResponse' {} a -> s {issuedAt = a} :: CheckoutBorrowLicenseResponse)
+
+-- | Amazon Resource Name (ARN) of the license.
+checkoutBorrowLicenseResponse_licenseArn :: Lens.Lens' CheckoutBorrowLicenseResponse (Prelude.Maybe Prelude.Text)
+checkoutBorrowLicenseResponse_licenseArn = Lens.lens (\CheckoutBorrowLicenseResponse' {licenseArn} -> licenseArn) (\s@CheckoutBorrowLicenseResponse' {} a -> s {licenseArn = a} :: CheckoutBorrowLicenseResponse)
+
+-- | License consumption token.
+checkoutBorrowLicenseResponse_licenseConsumptionToken :: Lens.Lens' CheckoutBorrowLicenseResponse (Prelude.Maybe Prelude.Text)
+checkoutBorrowLicenseResponse_licenseConsumptionToken = Lens.lens (\CheckoutBorrowLicenseResponse' {licenseConsumptionToken} -> licenseConsumptionToken) (\s@CheckoutBorrowLicenseResponse' {} a -> s {licenseConsumptionToken = a} :: CheckoutBorrowLicenseResponse)
+
+-- | Node ID.
+checkoutBorrowLicenseResponse_nodeId :: Lens.Lens' CheckoutBorrowLicenseResponse (Prelude.Maybe Prelude.Text)
+checkoutBorrowLicenseResponse_nodeId = Lens.lens (\CheckoutBorrowLicenseResponse' {nodeId} -> nodeId) (\s@CheckoutBorrowLicenseResponse' {} a -> s {nodeId = a} :: CheckoutBorrowLicenseResponse)
+
+-- | Signed token.
+checkoutBorrowLicenseResponse_signedToken :: Lens.Lens' CheckoutBorrowLicenseResponse (Prelude.Maybe Prelude.Text)
+checkoutBorrowLicenseResponse_signedToken = Lens.lens (\CheckoutBorrowLicenseResponse' {signedToken} -> signedToken) (\s@CheckoutBorrowLicenseResponse' {} a -> s {signedToken = a} :: CheckoutBorrowLicenseResponse)
+
+-- | The response's http status code.
+checkoutBorrowLicenseResponse_httpStatus :: Lens.Lens' CheckoutBorrowLicenseResponse Prelude.Int
+checkoutBorrowLicenseResponse_httpStatus = Lens.lens (\CheckoutBorrowLicenseResponse' {httpStatus} -> httpStatus) (\s@CheckoutBorrowLicenseResponse' {} a -> s {httpStatus = a} :: CheckoutBorrowLicenseResponse)
+
+instance Prelude.NFData CheckoutBorrowLicenseResponse where
+  rnf CheckoutBorrowLicenseResponse' {..} =
+    Prelude.rnf checkoutMetadata
+      `Prelude.seq` Prelude.rnf entitlementsAllowed
+      `Prelude.seq` Prelude.rnf expiration
+      `Prelude.seq` Prelude.rnf issuedAt
+      `Prelude.seq` Prelude.rnf licenseArn
+      `Prelude.seq` Prelude.rnf licenseConsumptionToken
+      `Prelude.seq` Prelude.rnf nodeId
+      `Prelude.seq` Prelude.rnf signedToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/CheckoutLicense.hs b/gen/Amazonka/LicenseManager/CheckoutLicense.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/CheckoutLicense.hs
@@ -0,0 +1,355 @@
+{-# 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.LicenseManager.CheckoutLicense
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Checks out the specified license.
+--
+-- If the account that created the license is the same that is performing
+-- the check out, you must specify the account as the beneficiary.
+module Amazonka.LicenseManager.CheckoutLicense
+  ( -- * Creating a Request
+    CheckoutLicense (..),
+    newCheckoutLicense,
+
+    -- * Request Lenses
+    checkoutLicense_beneficiary,
+    checkoutLicense_nodeId,
+    checkoutLicense_productSKU,
+    checkoutLicense_checkoutType,
+    checkoutLicense_keyFingerprint,
+    checkoutLicense_entitlements,
+    checkoutLicense_clientToken,
+
+    -- * Destructuring the Response
+    CheckoutLicenseResponse (..),
+    newCheckoutLicenseResponse,
+
+    -- * Response Lenses
+    checkoutLicenseResponse_checkoutType,
+    checkoutLicenseResponse_entitlementsAllowed,
+    checkoutLicenseResponse_expiration,
+    checkoutLicenseResponse_issuedAt,
+    checkoutLicenseResponse_licenseArn,
+    checkoutLicenseResponse_licenseConsumptionToken,
+    checkoutLicenseResponse_nodeId,
+    checkoutLicenseResponse_signedToken,
+    checkoutLicenseResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newCheckoutLicense' smart constructor.
+data CheckoutLicense = CheckoutLicense'
+  { -- | License beneficiary.
+    beneficiary :: Prelude.Maybe Prelude.Text,
+    -- | Node ID.
+    nodeId :: Prelude.Maybe Prelude.Text,
+    -- | Product SKU.
+    productSKU :: Prelude.Text,
+    -- | Checkout type.
+    checkoutType :: CheckoutType,
+    -- | Key fingerprint identifying the license.
+    keyFingerprint :: Prelude.Text,
+    -- | License entitlements.
+    entitlements :: [EntitlementData],
+    -- | Unique, case-sensitive identifier that you provide to ensure the
+    -- idempotency of the request.
+    clientToken :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CheckoutLicense' 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:
+--
+-- 'beneficiary', 'checkoutLicense_beneficiary' - License beneficiary.
+--
+-- 'nodeId', 'checkoutLicense_nodeId' - Node ID.
+--
+-- 'productSKU', 'checkoutLicense_productSKU' - Product SKU.
+--
+-- 'checkoutType', 'checkoutLicense_checkoutType' - Checkout type.
+--
+-- 'keyFingerprint', 'checkoutLicense_keyFingerprint' - Key fingerprint identifying the license.
+--
+-- 'entitlements', 'checkoutLicense_entitlements' - License entitlements.
+--
+-- 'clientToken', 'checkoutLicense_clientToken' - Unique, case-sensitive identifier that you provide to ensure the
+-- idempotency of the request.
+newCheckoutLicense ::
+  -- | 'productSKU'
+  Prelude.Text ->
+  -- | 'checkoutType'
+  CheckoutType ->
+  -- | 'keyFingerprint'
+  Prelude.Text ->
+  -- | 'clientToken'
+  Prelude.Text ->
+  CheckoutLicense
+newCheckoutLicense
+  pProductSKU_
+  pCheckoutType_
+  pKeyFingerprint_
+  pClientToken_ =
+    CheckoutLicense'
+      { beneficiary = Prelude.Nothing,
+        nodeId = Prelude.Nothing,
+        productSKU = pProductSKU_,
+        checkoutType = pCheckoutType_,
+        keyFingerprint = pKeyFingerprint_,
+        entitlements = Prelude.mempty,
+        clientToken = pClientToken_
+      }
+
+-- | License beneficiary.
+checkoutLicense_beneficiary :: Lens.Lens' CheckoutLicense (Prelude.Maybe Prelude.Text)
+checkoutLicense_beneficiary = Lens.lens (\CheckoutLicense' {beneficiary} -> beneficiary) (\s@CheckoutLicense' {} a -> s {beneficiary = a} :: CheckoutLicense)
+
+-- | Node ID.
+checkoutLicense_nodeId :: Lens.Lens' CheckoutLicense (Prelude.Maybe Prelude.Text)
+checkoutLicense_nodeId = Lens.lens (\CheckoutLicense' {nodeId} -> nodeId) (\s@CheckoutLicense' {} a -> s {nodeId = a} :: CheckoutLicense)
+
+-- | Product SKU.
+checkoutLicense_productSKU :: Lens.Lens' CheckoutLicense Prelude.Text
+checkoutLicense_productSKU = Lens.lens (\CheckoutLicense' {productSKU} -> productSKU) (\s@CheckoutLicense' {} a -> s {productSKU = a} :: CheckoutLicense)
+
+-- | Checkout type.
+checkoutLicense_checkoutType :: Lens.Lens' CheckoutLicense CheckoutType
+checkoutLicense_checkoutType = Lens.lens (\CheckoutLicense' {checkoutType} -> checkoutType) (\s@CheckoutLicense' {} a -> s {checkoutType = a} :: CheckoutLicense)
+
+-- | Key fingerprint identifying the license.
+checkoutLicense_keyFingerprint :: Lens.Lens' CheckoutLicense Prelude.Text
+checkoutLicense_keyFingerprint = Lens.lens (\CheckoutLicense' {keyFingerprint} -> keyFingerprint) (\s@CheckoutLicense' {} a -> s {keyFingerprint = a} :: CheckoutLicense)
+
+-- | License entitlements.
+checkoutLicense_entitlements :: Lens.Lens' CheckoutLicense [EntitlementData]
+checkoutLicense_entitlements = Lens.lens (\CheckoutLicense' {entitlements} -> entitlements) (\s@CheckoutLicense' {} a -> s {entitlements = a} :: CheckoutLicense) Prelude.. Lens.coerced
+
+-- | Unique, case-sensitive identifier that you provide to ensure the
+-- idempotency of the request.
+checkoutLicense_clientToken :: Lens.Lens' CheckoutLicense Prelude.Text
+checkoutLicense_clientToken = Lens.lens (\CheckoutLicense' {clientToken} -> clientToken) (\s@CheckoutLicense' {} a -> s {clientToken = a} :: CheckoutLicense)
+
+instance Core.AWSRequest CheckoutLicense where
+  type
+    AWSResponse CheckoutLicense =
+      CheckoutLicenseResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          CheckoutLicenseResponse'
+            Prelude.<$> (x Data..?> "CheckoutType")
+            Prelude.<*> ( x
+                            Data..?> "EntitlementsAllowed"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "Expiration")
+            Prelude.<*> (x Data..?> "IssuedAt")
+            Prelude.<*> (x Data..?> "LicenseArn")
+            Prelude.<*> (x Data..?> "LicenseConsumptionToken")
+            Prelude.<*> (x Data..?> "NodeId")
+            Prelude.<*> (x Data..?> "SignedToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable CheckoutLicense where
+  hashWithSalt _salt CheckoutLicense' {..} =
+    _salt
+      `Prelude.hashWithSalt` beneficiary
+      `Prelude.hashWithSalt` nodeId
+      `Prelude.hashWithSalt` productSKU
+      `Prelude.hashWithSalt` checkoutType
+      `Prelude.hashWithSalt` keyFingerprint
+      `Prelude.hashWithSalt` entitlements
+      `Prelude.hashWithSalt` clientToken
+
+instance Prelude.NFData CheckoutLicense where
+  rnf CheckoutLicense' {..} =
+    Prelude.rnf beneficiary
+      `Prelude.seq` Prelude.rnf nodeId
+      `Prelude.seq` Prelude.rnf productSKU
+      `Prelude.seq` Prelude.rnf checkoutType
+      `Prelude.seq` Prelude.rnf keyFingerprint
+      `Prelude.seq` Prelude.rnf entitlements
+      `Prelude.seq` Prelude.rnf clientToken
+
+instance Data.ToHeaders CheckoutLicense where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.CheckoutLicense" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON CheckoutLicense where
+  toJSON CheckoutLicense' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("Beneficiary" Data..=) Prelude.<$> beneficiary,
+            ("NodeId" Data..=) Prelude.<$> nodeId,
+            Prelude.Just ("ProductSKU" Data..= productSKU),
+            Prelude.Just ("CheckoutType" Data..= checkoutType),
+            Prelude.Just
+              ("KeyFingerprint" Data..= keyFingerprint),
+            Prelude.Just ("Entitlements" Data..= entitlements),
+            Prelude.Just ("ClientToken" Data..= clientToken)
+          ]
+      )
+
+instance Data.ToPath CheckoutLicense where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery CheckoutLicense where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newCheckoutLicenseResponse' smart constructor.
+data CheckoutLicenseResponse = CheckoutLicenseResponse'
+  { -- | Checkout type.
+    checkoutType :: Prelude.Maybe CheckoutType,
+    -- | Allowed license entitlements.
+    entitlementsAllowed :: Prelude.Maybe [EntitlementData],
+    -- | Date and time at which the license checkout expires.
+    expiration :: Prelude.Maybe Prelude.Text,
+    -- | Date and time at which the license checkout is issued.
+    issuedAt :: Prelude.Maybe Prelude.Text,
+    -- | Amazon Resource Name (ARN) of the checkout license.
+    licenseArn :: Prelude.Maybe Prelude.Text,
+    -- | License consumption token.
+    licenseConsumptionToken :: Prelude.Maybe Prelude.Text,
+    -- | Node ID.
+    nodeId :: Prelude.Maybe Prelude.Text,
+    -- | Signed token.
+    signedToken :: 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 'CheckoutLicenseResponse' 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:
+--
+-- 'checkoutType', 'checkoutLicenseResponse_checkoutType' - Checkout type.
+--
+-- 'entitlementsAllowed', 'checkoutLicenseResponse_entitlementsAllowed' - Allowed license entitlements.
+--
+-- 'expiration', 'checkoutLicenseResponse_expiration' - Date and time at which the license checkout expires.
+--
+-- 'issuedAt', 'checkoutLicenseResponse_issuedAt' - Date and time at which the license checkout is issued.
+--
+-- 'licenseArn', 'checkoutLicenseResponse_licenseArn' - Amazon Resource Name (ARN) of the checkout license.
+--
+-- 'licenseConsumptionToken', 'checkoutLicenseResponse_licenseConsumptionToken' - License consumption token.
+--
+-- 'nodeId', 'checkoutLicenseResponse_nodeId' - Node ID.
+--
+-- 'signedToken', 'checkoutLicenseResponse_signedToken' - Signed token.
+--
+-- 'httpStatus', 'checkoutLicenseResponse_httpStatus' - The response's http status code.
+newCheckoutLicenseResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  CheckoutLicenseResponse
+newCheckoutLicenseResponse pHttpStatus_ =
+  CheckoutLicenseResponse'
+    { checkoutType =
+        Prelude.Nothing,
+      entitlementsAllowed = Prelude.Nothing,
+      expiration = Prelude.Nothing,
+      issuedAt = Prelude.Nothing,
+      licenseArn = Prelude.Nothing,
+      licenseConsumptionToken = Prelude.Nothing,
+      nodeId = Prelude.Nothing,
+      signedToken = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Checkout type.
+checkoutLicenseResponse_checkoutType :: Lens.Lens' CheckoutLicenseResponse (Prelude.Maybe CheckoutType)
+checkoutLicenseResponse_checkoutType = Lens.lens (\CheckoutLicenseResponse' {checkoutType} -> checkoutType) (\s@CheckoutLicenseResponse' {} a -> s {checkoutType = a} :: CheckoutLicenseResponse)
+
+-- | Allowed license entitlements.
+checkoutLicenseResponse_entitlementsAllowed :: Lens.Lens' CheckoutLicenseResponse (Prelude.Maybe [EntitlementData])
+checkoutLicenseResponse_entitlementsAllowed = Lens.lens (\CheckoutLicenseResponse' {entitlementsAllowed} -> entitlementsAllowed) (\s@CheckoutLicenseResponse' {} a -> s {entitlementsAllowed = a} :: CheckoutLicenseResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | Date and time at which the license checkout expires.
+checkoutLicenseResponse_expiration :: Lens.Lens' CheckoutLicenseResponse (Prelude.Maybe Prelude.Text)
+checkoutLicenseResponse_expiration = Lens.lens (\CheckoutLicenseResponse' {expiration} -> expiration) (\s@CheckoutLicenseResponse' {} a -> s {expiration = a} :: CheckoutLicenseResponse)
+
+-- | Date and time at which the license checkout is issued.
+checkoutLicenseResponse_issuedAt :: Lens.Lens' CheckoutLicenseResponse (Prelude.Maybe Prelude.Text)
+checkoutLicenseResponse_issuedAt = Lens.lens (\CheckoutLicenseResponse' {issuedAt} -> issuedAt) (\s@CheckoutLicenseResponse' {} a -> s {issuedAt = a} :: CheckoutLicenseResponse)
+
+-- | Amazon Resource Name (ARN) of the checkout license.
+checkoutLicenseResponse_licenseArn :: Lens.Lens' CheckoutLicenseResponse (Prelude.Maybe Prelude.Text)
+checkoutLicenseResponse_licenseArn = Lens.lens (\CheckoutLicenseResponse' {licenseArn} -> licenseArn) (\s@CheckoutLicenseResponse' {} a -> s {licenseArn = a} :: CheckoutLicenseResponse)
+
+-- | License consumption token.
+checkoutLicenseResponse_licenseConsumptionToken :: Lens.Lens' CheckoutLicenseResponse (Prelude.Maybe Prelude.Text)
+checkoutLicenseResponse_licenseConsumptionToken = Lens.lens (\CheckoutLicenseResponse' {licenseConsumptionToken} -> licenseConsumptionToken) (\s@CheckoutLicenseResponse' {} a -> s {licenseConsumptionToken = a} :: CheckoutLicenseResponse)
+
+-- | Node ID.
+checkoutLicenseResponse_nodeId :: Lens.Lens' CheckoutLicenseResponse (Prelude.Maybe Prelude.Text)
+checkoutLicenseResponse_nodeId = Lens.lens (\CheckoutLicenseResponse' {nodeId} -> nodeId) (\s@CheckoutLicenseResponse' {} a -> s {nodeId = a} :: CheckoutLicenseResponse)
+
+-- | Signed token.
+checkoutLicenseResponse_signedToken :: Lens.Lens' CheckoutLicenseResponse (Prelude.Maybe Prelude.Text)
+checkoutLicenseResponse_signedToken = Lens.lens (\CheckoutLicenseResponse' {signedToken} -> signedToken) (\s@CheckoutLicenseResponse' {} a -> s {signedToken = a} :: CheckoutLicenseResponse)
+
+-- | The response's http status code.
+checkoutLicenseResponse_httpStatus :: Lens.Lens' CheckoutLicenseResponse Prelude.Int
+checkoutLicenseResponse_httpStatus = Lens.lens (\CheckoutLicenseResponse' {httpStatus} -> httpStatus) (\s@CheckoutLicenseResponse' {} a -> s {httpStatus = a} :: CheckoutLicenseResponse)
+
+instance Prelude.NFData CheckoutLicenseResponse where
+  rnf CheckoutLicenseResponse' {..} =
+    Prelude.rnf checkoutType
+      `Prelude.seq` Prelude.rnf entitlementsAllowed
+      `Prelude.seq` Prelude.rnf expiration
+      `Prelude.seq` Prelude.rnf issuedAt
+      `Prelude.seq` Prelude.rnf licenseArn
+      `Prelude.seq` Prelude.rnf licenseConsumptionToken
+      `Prelude.seq` Prelude.rnf nodeId
+      `Prelude.seq` Prelude.rnf signedToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/CreateGrant.hs b/gen/Amazonka/LicenseManager/CreateGrant.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/CreateGrant.hs
@@ -0,0 +1,284 @@
+{-# 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.LicenseManager.CreateGrant
+-- 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 grant for the specified license. A grant shares the use of
+-- license entitlements with specific Amazon Web Services accounts.
+module Amazonka.LicenseManager.CreateGrant
+  ( -- * Creating a Request
+    CreateGrant (..),
+    newCreateGrant,
+
+    -- * Request Lenses
+    createGrant_clientToken,
+    createGrant_grantName,
+    createGrant_licenseArn,
+    createGrant_principals,
+    createGrant_homeRegion,
+    createGrant_allowedOperations,
+
+    -- * Destructuring the Response
+    CreateGrantResponse (..),
+    newCreateGrantResponse,
+
+    -- * Response Lenses
+    createGrantResponse_grantArn,
+    createGrantResponse_status,
+    createGrantResponse_version,
+    createGrantResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newCreateGrant' smart constructor.
+data CreateGrant = CreateGrant'
+  { -- | Unique, case-sensitive identifier that you provide to ensure the
+    -- idempotency of the request.
+    clientToken :: Prelude.Text,
+    -- | Grant name.
+    grantName :: Prelude.Text,
+    -- | Amazon Resource Name (ARN) of the license.
+    licenseArn :: Prelude.Text,
+    -- | The grant principals. This value should be specified as an Amazon
+    -- Resource Name (ARN).
+    principals :: Prelude.NonEmpty Prelude.Text,
+    -- | Home Region of the grant.
+    homeRegion :: Prelude.Text,
+    -- | Allowed operations for the grant.
+    allowedOperations :: Prelude.NonEmpty AllowedOperation
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateGrant' 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:
+--
+-- 'clientToken', 'createGrant_clientToken' - Unique, case-sensitive identifier that you provide to ensure the
+-- idempotency of the request.
+--
+-- 'grantName', 'createGrant_grantName' - Grant name.
+--
+-- 'licenseArn', 'createGrant_licenseArn' - Amazon Resource Name (ARN) of the license.
+--
+-- 'principals', 'createGrant_principals' - The grant principals. This value should be specified as an Amazon
+-- Resource Name (ARN).
+--
+-- 'homeRegion', 'createGrant_homeRegion' - Home Region of the grant.
+--
+-- 'allowedOperations', 'createGrant_allowedOperations' - Allowed operations for the grant.
+newCreateGrant ::
+  -- | 'clientToken'
+  Prelude.Text ->
+  -- | 'grantName'
+  Prelude.Text ->
+  -- | 'licenseArn'
+  Prelude.Text ->
+  -- | 'principals'
+  Prelude.NonEmpty Prelude.Text ->
+  -- | 'homeRegion'
+  Prelude.Text ->
+  -- | 'allowedOperations'
+  Prelude.NonEmpty AllowedOperation ->
+  CreateGrant
+newCreateGrant
+  pClientToken_
+  pGrantName_
+  pLicenseArn_
+  pPrincipals_
+  pHomeRegion_
+  pAllowedOperations_ =
+    CreateGrant'
+      { clientToken = pClientToken_,
+        grantName = pGrantName_,
+        licenseArn = pLicenseArn_,
+        principals = Lens.coerced Lens.# pPrincipals_,
+        homeRegion = pHomeRegion_,
+        allowedOperations =
+          Lens.coerced Lens.# pAllowedOperations_
+      }
+
+-- | Unique, case-sensitive identifier that you provide to ensure the
+-- idempotency of the request.
+createGrant_clientToken :: Lens.Lens' CreateGrant Prelude.Text
+createGrant_clientToken = Lens.lens (\CreateGrant' {clientToken} -> clientToken) (\s@CreateGrant' {} a -> s {clientToken = a} :: CreateGrant)
+
+-- | Grant name.
+createGrant_grantName :: Lens.Lens' CreateGrant Prelude.Text
+createGrant_grantName = Lens.lens (\CreateGrant' {grantName} -> grantName) (\s@CreateGrant' {} a -> s {grantName = a} :: CreateGrant)
+
+-- | Amazon Resource Name (ARN) of the license.
+createGrant_licenseArn :: Lens.Lens' CreateGrant Prelude.Text
+createGrant_licenseArn = Lens.lens (\CreateGrant' {licenseArn} -> licenseArn) (\s@CreateGrant' {} a -> s {licenseArn = a} :: CreateGrant)
+
+-- | The grant principals. This value should be specified as an Amazon
+-- Resource Name (ARN).
+createGrant_principals :: Lens.Lens' CreateGrant (Prelude.NonEmpty Prelude.Text)
+createGrant_principals = Lens.lens (\CreateGrant' {principals} -> principals) (\s@CreateGrant' {} a -> s {principals = a} :: CreateGrant) Prelude.. Lens.coerced
+
+-- | Home Region of the grant.
+createGrant_homeRegion :: Lens.Lens' CreateGrant Prelude.Text
+createGrant_homeRegion = Lens.lens (\CreateGrant' {homeRegion} -> homeRegion) (\s@CreateGrant' {} a -> s {homeRegion = a} :: CreateGrant)
+
+-- | Allowed operations for the grant.
+createGrant_allowedOperations :: Lens.Lens' CreateGrant (Prelude.NonEmpty AllowedOperation)
+createGrant_allowedOperations = Lens.lens (\CreateGrant' {allowedOperations} -> allowedOperations) (\s@CreateGrant' {} a -> s {allowedOperations = a} :: CreateGrant) Prelude.. Lens.coerced
+
+instance Core.AWSRequest CreateGrant where
+  type AWSResponse CreateGrant = CreateGrantResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          CreateGrantResponse'
+            Prelude.<$> (x Data..?> "GrantArn")
+            Prelude.<*> (x Data..?> "Status")
+            Prelude.<*> (x Data..?> "Version")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable CreateGrant where
+  hashWithSalt _salt CreateGrant' {..} =
+    _salt
+      `Prelude.hashWithSalt` clientToken
+      `Prelude.hashWithSalt` grantName
+      `Prelude.hashWithSalt` licenseArn
+      `Prelude.hashWithSalt` principals
+      `Prelude.hashWithSalt` homeRegion
+      `Prelude.hashWithSalt` allowedOperations
+
+instance Prelude.NFData CreateGrant where
+  rnf CreateGrant' {..} =
+    Prelude.rnf clientToken
+      `Prelude.seq` Prelude.rnf grantName
+      `Prelude.seq` Prelude.rnf licenseArn
+      `Prelude.seq` Prelude.rnf principals
+      `Prelude.seq` Prelude.rnf homeRegion
+      `Prelude.seq` Prelude.rnf allowedOperations
+
+instance Data.ToHeaders CreateGrant where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.CreateGrant" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON CreateGrant where
+  toJSON CreateGrant' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just ("ClientToken" Data..= clientToken),
+            Prelude.Just ("GrantName" Data..= grantName),
+            Prelude.Just ("LicenseArn" Data..= licenseArn),
+            Prelude.Just ("Principals" Data..= principals),
+            Prelude.Just ("HomeRegion" Data..= homeRegion),
+            Prelude.Just
+              ("AllowedOperations" Data..= allowedOperations)
+          ]
+      )
+
+instance Data.ToPath CreateGrant where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery CreateGrant where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newCreateGrantResponse' smart constructor.
+data CreateGrantResponse = CreateGrantResponse'
+  { -- | Grant ARN.
+    grantArn :: Prelude.Maybe Prelude.Text,
+    -- | Grant status.
+    status :: Prelude.Maybe GrantStatus,
+    -- | Grant version.
+    version :: 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 'CreateGrantResponse' 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:
+--
+-- 'grantArn', 'createGrantResponse_grantArn' - Grant ARN.
+--
+-- 'status', 'createGrantResponse_status' - Grant status.
+--
+-- 'version', 'createGrantResponse_version' - Grant version.
+--
+-- 'httpStatus', 'createGrantResponse_httpStatus' - The response's http status code.
+newCreateGrantResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  CreateGrantResponse
+newCreateGrantResponse pHttpStatus_ =
+  CreateGrantResponse'
+    { grantArn = Prelude.Nothing,
+      status = Prelude.Nothing,
+      version = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Grant ARN.
+createGrantResponse_grantArn :: Lens.Lens' CreateGrantResponse (Prelude.Maybe Prelude.Text)
+createGrantResponse_grantArn = Lens.lens (\CreateGrantResponse' {grantArn} -> grantArn) (\s@CreateGrantResponse' {} a -> s {grantArn = a} :: CreateGrantResponse)
+
+-- | Grant status.
+createGrantResponse_status :: Lens.Lens' CreateGrantResponse (Prelude.Maybe GrantStatus)
+createGrantResponse_status = Lens.lens (\CreateGrantResponse' {status} -> status) (\s@CreateGrantResponse' {} a -> s {status = a} :: CreateGrantResponse)
+
+-- | Grant version.
+createGrantResponse_version :: Lens.Lens' CreateGrantResponse (Prelude.Maybe Prelude.Text)
+createGrantResponse_version = Lens.lens (\CreateGrantResponse' {version} -> version) (\s@CreateGrantResponse' {} a -> s {version = a} :: CreateGrantResponse)
+
+-- | The response's http status code.
+createGrantResponse_httpStatus :: Lens.Lens' CreateGrantResponse Prelude.Int
+createGrantResponse_httpStatus = Lens.lens (\CreateGrantResponse' {httpStatus} -> httpStatus) (\s@CreateGrantResponse' {} a -> s {httpStatus = a} :: CreateGrantResponse)
+
+instance Prelude.NFData CreateGrantResponse where
+  rnf CreateGrantResponse' {..} =
+    Prelude.rnf grantArn
+      `Prelude.seq` Prelude.rnf status
+      `Prelude.seq` Prelude.rnf version
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/CreateGrantVersion.hs b/gen/Amazonka/LicenseManager/CreateGrantVersion.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/CreateGrantVersion.hs
@@ -0,0 +1,282 @@
+{-# 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.LicenseManager.CreateGrantVersion
+-- 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 version of the specified grant.
+module Amazonka.LicenseManager.CreateGrantVersion
+  ( -- * Creating a Request
+    CreateGrantVersion (..),
+    newCreateGrantVersion,
+
+    -- * Request Lenses
+    createGrantVersion_allowedOperations,
+    createGrantVersion_grantName,
+    createGrantVersion_sourceVersion,
+    createGrantVersion_status,
+    createGrantVersion_statusReason,
+    createGrantVersion_clientToken,
+    createGrantVersion_grantArn,
+
+    -- * Destructuring the Response
+    CreateGrantVersionResponse (..),
+    newCreateGrantVersionResponse,
+
+    -- * Response Lenses
+    createGrantVersionResponse_grantArn,
+    createGrantVersionResponse_status,
+    createGrantVersionResponse_version,
+    createGrantVersionResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newCreateGrantVersion' smart constructor.
+data CreateGrantVersion = CreateGrantVersion'
+  { -- | Allowed operations for the grant.
+    allowedOperations :: Prelude.Maybe (Prelude.NonEmpty AllowedOperation),
+    -- | Grant name.
+    grantName :: Prelude.Maybe Prelude.Text,
+    -- | Current version of the grant.
+    sourceVersion :: Prelude.Maybe Prelude.Text,
+    -- | Grant status.
+    status :: Prelude.Maybe GrantStatus,
+    -- | Grant status reason.
+    statusReason :: Prelude.Maybe Prelude.Text,
+    -- | Unique, case-sensitive identifier that you provide to ensure the
+    -- idempotency of the request.
+    clientToken :: Prelude.Text,
+    -- | Amazon Resource Name (ARN) of the grant.
+    grantArn :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateGrantVersion' 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:
+--
+-- 'allowedOperations', 'createGrantVersion_allowedOperations' - Allowed operations for the grant.
+--
+-- 'grantName', 'createGrantVersion_grantName' - Grant name.
+--
+-- 'sourceVersion', 'createGrantVersion_sourceVersion' - Current version of the grant.
+--
+-- 'status', 'createGrantVersion_status' - Grant status.
+--
+-- 'statusReason', 'createGrantVersion_statusReason' - Grant status reason.
+--
+-- 'clientToken', 'createGrantVersion_clientToken' - Unique, case-sensitive identifier that you provide to ensure the
+-- idempotency of the request.
+--
+-- 'grantArn', 'createGrantVersion_grantArn' - Amazon Resource Name (ARN) of the grant.
+newCreateGrantVersion ::
+  -- | 'clientToken'
+  Prelude.Text ->
+  -- | 'grantArn'
+  Prelude.Text ->
+  CreateGrantVersion
+newCreateGrantVersion pClientToken_ pGrantArn_ =
+  CreateGrantVersion'
+    { allowedOperations =
+        Prelude.Nothing,
+      grantName = Prelude.Nothing,
+      sourceVersion = Prelude.Nothing,
+      status = Prelude.Nothing,
+      statusReason = Prelude.Nothing,
+      clientToken = pClientToken_,
+      grantArn = pGrantArn_
+    }
+
+-- | Allowed operations for the grant.
+createGrantVersion_allowedOperations :: Lens.Lens' CreateGrantVersion (Prelude.Maybe (Prelude.NonEmpty AllowedOperation))
+createGrantVersion_allowedOperations = Lens.lens (\CreateGrantVersion' {allowedOperations} -> allowedOperations) (\s@CreateGrantVersion' {} a -> s {allowedOperations = a} :: CreateGrantVersion) Prelude.. Lens.mapping Lens.coerced
+
+-- | Grant name.
+createGrantVersion_grantName :: Lens.Lens' CreateGrantVersion (Prelude.Maybe Prelude.Text)
+createGrantVersion_grantName = Lens.lens (\CreateGrantVersion' {grantName} -> grantName) (\s@CreateGrantVersion' {} a -> s {grantName = a} :: CreateGrantVersion)
+
+-- | Current version of the grant.
+createGrantVersion_sourceVersion :: Lens.Lens' CreateGrantVersion (Prelude.Maybe Prelude.Text)
+createGrantVersion_sourceVersion = Lens.lens (\CreateGrantVersion' {sourceVersion} -> sourceVersion) (\s@CreateGrantVersion' {} a -> s {sourceVersion = a} :: CreateGrantVersion)
+
+-- | Grant status.
+createGrantVersion_status :: Lens.Lens' CreateGrantVersion (Prelude.Maybe GrantStatus)
+createGrantVersion_status = Lens.lens (\CreateGrantVersion' {status} -> status) (\s@CreateGrantVersion' {} a -> s {status = a} :: CreateGrantVersion)
+
+-- | Grant status reason.
+createGrantVersion_statusReason :: Lens.Lens' CreateGrantVersion (Prelude.Maybe Prelude.Text)
+createGrantVersion_statusReason = Lens.lens (\CreateGrantVersion' {statusReason} -> statusReason) (\s@CreateGrantVersion' {} a -> s {statusReason = a} :: CreateGrantVersion)
+
+-- | Unique, case-sensitive identifier that you provide to ensure the
+-- idempotency of the request.
+createGrantVersion_clientToken :: Lens.Lens' CreateGrantVersion Prelude.Text
+createGrantVersion_clientToken = Lens.lens (\CreateGrantVersion' {clientToken} -> clientToken) (\s@CreateGrantVersion' {} a -> s {clientToken = a} :: CreateGrantVersion)
+
+-- | Amazon Resource Name (ARN) of the grant.
+createGrantVersion_grantArn :: Lens.Lens' CreateGrantVersion Prelude.Text
+createGrantVersion_grantArn = Lens.lens (\CreateGrantVersion' {grantArn} -> grantArn) (\s@CreateGrantVersion' {} a -> s {grantArn = a} :: CreateGrantVersion)
+
+instance Core.AWSRequest CreateGrantVersion where
+  type
+    AWSResponse CreateGrantVersion =
+      CreateGrantVersionResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          CreateGrantVersionResponse'
+            Prelude.<$> (x Data..?> "GrantArn")
+            Prelude.<*> (x Data..?> "Status")
+            Prelude.<*> (x Data..?> "Version")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable CreateGrantVersion where
+  hashWithSalt _salt CreateGrantVersion' {..} =
+    _salt
+      `Prelude.hashWithSalt` allowedOperations
+      `Prelude.hashWithSalt` grantName
+      `Prelude.hashWithSalt` sourceVersion
+      `Prelude.hashWithSalt` status
+      `Prelude.hashWithSalt` statusReason
+      `Prelude.hashWithSalt` clientToken
+      `Prelude.hashWithSalt` grantArn
+
+instance Prelude.NFData CreateGrantVersion where
+  rnf CreateGrantVersion' {..} =
+    Prelude.rnf allowedOperations
+      `Prelude.seq` Prelude.rnf grantName
+      `Prelude.seq` Prelude.rnf sourceVersion
+      `Prelude.seq` Prelude.rnf status
+      `Prelude.seq` Prelude.rnf statusReason
+      `Prelude.seq` Prelude.rnf clientToken
+      `Prelude.seq` Prelude.rnf grantArn
+
+instance Data.ToHeaders CreateGrantVersion where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.CreateGrantVersion" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON CreateGrantVersion where
+  toJSON CreateGrantVersion' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("AllowedOperations" Data..=)
+              Prelude.<$> allowedOperations,
+            ("GrantName" Data..=) Prelude.<$> grantName,
+            ("SourceVersion" Data..=) Prelude.<$> sourceVersion,
+            ("Status" Data..=) Prelude.<$> status,
+            ("StatusReason" Data..=) Prelude.<$> statusReason,
+            Prelude.Just ("ClientToken" Data..= clientToken),
+            Prelude.Just ("GrantArn" Data..= grantArn)
+          ]
+      )
+
+instance Data.ToPath CreateGrantVersion where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery CreateGrantVersion where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newCreateGrantVersionResponse' smart constructor.
+data CreateGrantVersionResponse = CreateGrantVersionResponse'
+  { -- | Grant ARN.
+    grantArn :: Prelude.Maybe Prelude.Text,
+    -- | Grant status.
+    status :: Prelude.Maybe GrantStatus,
+    -- | New version of the grant.
+    version :: 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 'CreateGrantVersionResponse' 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:
+--
+-- 'grantArn', 'createGrantVersionResponse_grantArn' - Grant ARN.
+--
+-- 'status', 'createGrantVersionResponse_status' - Grant status.
+--
+-- 'version', 'createGrantVersionResponse_version' - New version of the grant.
+--
+-- 'httpStatus', 'createGrantVersionResponse_httpStatus' - The response's http status code.
+newCreateGrantVersionResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  CreateGrantVersionResponse
+newCreateGrantVersionResponse pHttpStatus_ =
+  CreateGrantVersionResponse'
+    { grantArn =
+        Prelude.Nothing,
+      status = Prelude.Nothing,
+      version = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Grant ARN.
+createGrantVersionResponse_grantArn :: Lens.Lens' CreateGrantVersionResponse (Prelude.Maybe Prelude.Text)
+createGrantVersionResponse_grantArn = Lens.lens (\CreateGrantVersionResponse' {grantArn} -> grantArn) (\s@CreateGrantVersionResponse' {} a -> s {grantArn = a} :: CreateGrantVersionResponse)
+
+-- | Grant status.
+createGrantVersionResponse_status :: Lens.Lens' CreateGrantVersionResponse (Prelude.Maybe GrantStatus)
+createGrantVersionResponse_status = Lens.lens (\CreateGrantVersionResponse' {status} -> status) (\s@CreateGrantVersionResponse' {} a -> s {status = a} :: CreateGrantVersionResponse)
+
+-- | New version of the grant.
+createGrantVersionResponse_version :: Lens.Lens' CreateGrantVersionResponse (Prelude.Maybe Prelude.Text)
+createGrantVersionResponse_version = Lens.lens (\CreateGrantVersionResponse' {version} -> version) (\s@CreateGrantVersionResponse' {} a -> s {version = a} :: CreateGrantVersionResponse)
+
+-- | The response's http status code.
+createGrantVersionResponse_httpStatus :: Lens.Lens' CreateGrantVersionResponse Prelude.Int
+createGrantVersionResponse_httpStatus = Lens.lens (\CreateGrantVersionResponse' {httpStatus} -> httpStatus) (\s@CreateGrantVersionResponse' {} a -> s {httpStatus = a} :: CreateGrantVersionResponse)
+
+instance Prelude.NFData CreateGrantVersionResponse where
+  rnf CreateGrantVersionResponse' {..} =
+    Prelude.rnf grantArn
+      `Prelude.seq` Prelude.rnf status
+      `Prelude.seq` Prelude.rnf version
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/CreateLicense.hs b/gen/Amazonka/LicenseManager/CreateLicense.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/CreateLicense.hs
@@ -0,0 +1,369 @@
+{-# 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.LicenseManager.CreateLicense
+-- 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 license.
+module Amazonka.LicenseManager.CreateLicense
+  ( -- * Creating a Request
+    CreateLicense (..),
+    newCreateLicense,
+
+    -- * Request Lenses
+    createLicense_licenseMetadata,
+    createLicense_licenseName,
+    createLicense_productName,
+    createLicense_productSKU,
+    createLicense_issuer,
+    createLicense_homeRegion,
+    createLicense_validity,
+    createLicense_entitlements,
+    createLicense_beneficiary,
+    createLicense_consumptionConfiguration,
+    createLicense_clientToken,
+
+    -- * Destructuring the Response
+    CreateLicenseResponse (..),
+    newCreateLicenseResponse,
+
+    -- * Response Lenses
+    createLicenseResponse_licenseArn,
+    createLicenseResponse_status,
+    createLicenseResponse_version,
+    createLicenseResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newCreateLicense' smart constructor.
+data CreateLicense = CreateLicense'
+  { -- | Information about the license.
+    licenseMetadata :: Prelude.Maybe [Metadata],
+    -- | License name.
+    licenseName :: Prelude.Text,
+    -- | Product name.
+    productName :: Prelude.Text,
+    -- | Product SKU.
+    productSKU :: Prelude.Text,
+    -- | License issuer.
+    issuer :: Issuer,
+    -- | Home Region for the license.
+    homeRegion :: Prelude.Text,
+    -- | Date and time range during which the license is valid, in ISO8601-UTC
+    -- format.
+    validity :: DatetimeRange,
+    -- | License entitlements.
+    entitlements :: [Entitlement],
+    -- | License beneficiary.
+    beneficiary :: Prelude.Text,
+    -- | Configuration for consumption of the license. Choose a provisional
+    -- configuration for workloads running with continuous connectivity. Choose
+    -- a borrow configuration for workloads with offline usage.
+    consumptionConfiguration :: ConsumptionConfiguration,
+    -- | Unique, case-sensitive identifier that you provide to ensure the
+    -- idempotency of the request.
+    clientToken :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateLicense' 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:
+--
+-- 'licenseMetadata', 'createLicense_licenseMetadata' - Information about the license.
+--
+-- 'licenseName', 'createLicense_licenseName' - License name.
+--
+-- 'productName', 'createLicense_productName' - Product name.
+--
+-- 'productSKU', 'createLicense_productSKU' - Product SKU.
+--
+-- 'issuer', 'createLicense_issuer' - License issuer.
+--
+-- 'homeRegion', 'createLicense_homeRegion' - Home Region for the license.
+--
+-- 'validity', 'createLicense_validity' - Date and time range during which the license is valid, in ISO8601-UTC
+-- format.
+--
+-- 'entitlements', 'createLicense_entitlements' - License entitlements.
+--
+-- 'beneficiary', 'createLicense_beneficiary' - License beneficiary.
+--
+-- 'consumptionConfiguration', 'createLicense_consumptionConfiguration' - Configuration for consumption of the license. Choose a provisional
+-- configuration for workloads running with continuous connectivity. Choose
+-- a borrow configuration for workloads with offline usage.
+--
+-- 'clientToken', 'createLicense_clientToken' - Unique, case-sensitive identifier that you provide to ensure the
+-- idempotency of the request.
+newCreateLicense ::
+  -- | 'licenseName'
+  Prelude.Text ->
+  -- | 'productName'
+  Prelude.Text ->
+  -- | 'productSKU'
+  Prelude.Text ->
+  -- | 'issuer'
+  Issuer ->
+  -- | 'homeRegion'
+  Prelude.Text ->
+  -- | 'validity'
+  DatetimeRange ->
+  -- | 'beneficiary'
+  Prelude.Text ->
+  -- | 'consumptionConfiguration'
+  ConsumptionConfiguration ->
+  -- | 'clientToken'
+  Prelude.Text ->
+  CreateLicense
+newCreateLicense
+  pLicenseName_
+  pProductName_
+  pProductSKU_
+  pIssuer_
+  pHomeRegion_
+  pValidity_
+  pBeneficiary_
+  pConsumptionConfiguration_
+  pClientToken_ =
+    CreateLicense'
+      { licenseMetadata = Prelude.Nothing,
+        licenseName = pLicenseName_,
+        productName = pProductName_,
+        productSKU = pProductSKU_,
+        issuer = pIssuer_,
+        homeRegion = pHomeRegion_,
+        validity = pValidity_,
+        entitlements = Prelude.mempty,
+        beneficiary = pBeneficiary_,
+        consumptionConfiguration =
+          pConsumptionConfiguration_,
+        clientToken = pClientToken_
+      }
+
+-- | Information about the license.
+createLicense_licenseMetadata :: Lens.Lens' CreateLicense (Prelude.Maybe [Metadata])
+createLicense_licenseMetadata = Lens.lens (\CreateLicense' {licenseMetadata} -> licenseMetadata) (\s@CreateLicense' {} a -> s {licenseMetadata = a} :: CreateLicense) Prelude.. Lens.mapping Lens.coerced
+
+-- | License name.
+createLicense_licenseName :: Lens.Lens' CreateLicense Prelude.Text
+createLicense_licenseName = Lens.lens (\CreateLicense' {licenseName} -> licenseName) (\s@CreateLicense' {} a -> s {licenseName = a} :: CreateLicense)
+
+-- | Product name.
+createLicense_productName :: Lens.Lens' CreateLicense Prelude.Text
+createLicense_productName = Lens.lens (\CreateLicense' {productName} -> productName) (\s@CreateLicense' {} a -> s {productName = a} :: CreateLicense)
+
+-- | Product SKU.
+createLicense_productSKU :: Lens.Lens' CreateLicense Prelude.Text
+createLicense_productSKU = Lens.lens (\CreateLicense' {productSKU} -> productSKU) (\s@CreateLicense' {} a -> s {productSKU = a} :: CreateLicense)
+
+-- | License issuer.
+createLicense_issuer :: Lens.Lens' CreateLicense Issuer
+createLicense_issuer = Lens.lens (\CreateLicense' {issuer} -> issuer) (\s@CreateLicense' {} a -> s {issuer = a} :: CreateLicense)
+
+-- | Home Region for the license.
+createLicense_homeRegion :: Lens.Lens' CreateLicense Prelude.Text
+createLicense_homeRegion = Lens.lens (\CreateLicense' {homeRegion} -> homeRegion) (\s@CreateLicense' {} a -> s {homeRegion = a} :: CreateLicense)
+
+-- | Date and time range during which the license is valid, in ISO8601-UTC
+-- format.
+createLicense_validity :: Lens.Lens' CreateLicense DatetimeRange
+createLicense_validity = Lens.lens (\CreateLicense' {validity} -> validity) (\s@CreateLicense' {} a -> s {validity = a} :: CreateLicense)
+
+-- | License entitlements.
+createLicense_entitlements :: Lens.Lens' CreateLicense [Entitlement]
+createLicense_entitlements = Lens.lens (\CreateLicense' {entitlements} -> entitlements) (\s@CreateLicense' {} a -> s {entitlements = a} :: CreateLicense) Prelude.. Lens.coerced
+
+-- | License beneficiary.
+createLicense_beneficiary :: Lens.Lens' CreateLicense Prelude.Text
+createLicense_beneficiary = Lens.lens (\CreateLicense' {beneficiary} -> beneficiary) (\s@CreateLicense' {} a -> s {beneficiary = a} :: CreateLicense)
+
+-- | Configuration for consumption of the license. Choose a provisional
+-- configuration for workloads running with continuous connectivity. Choose
+-- a borrow configuration for workloads with offline usage.
+createLicense_consumptionConfiguration :: Lens.Lens' CreateLicense ConsumptionConfiguration
+createLicense_consumptionConfiguration = Lens.lens (\CreateLicense' {consumptionConfiguration} -> consumptionConfiguration) (\s@CreateLicense' {} a -> s {consumptionConfiguration = a} :: CreateLicense)
+
+-- | Unique, case-sensitive identifier that you provide to ensure the
+-- idempotency of the request.
+createLicense_clientToken :: Lens.Lens' CreateLicense Prelude.Text
+createLicense_clientToken = Lens.lens (\CreateLicense' {clientToken} -> clientToken) (\s@CreateLicense' {} a -> s {clientToken = a} :: CreateLicense)
+
+instance Core.AWSRequest CreateLicense where
+  type
+    AWSResponse CreateLicense =
+      CreateLicenseResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          CreateLicenseResponse'
+            Prelude.<$> (x Data..?> "LicenseArn")
+            Prelude.<*> (x Data..?> "Status")
+            Prelude.<*> (x Data..?> "Version")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable CreateLicense where
+  hashWithSalt _salt CreateLicense' {..} =
+    _salt
+      `Prelude.hashWithSalt` licenseMetadata
+      `Prelude.hashWithSalt` licenseName
+      `Prelude.hashWithSalt` productName
+      `Prelude.hashWithSalt` productSKU
+      `Prelude.hashWithSalt` issuer
+      `Prelude.hashWithSalt` homeRegion
+      `Prelude.hashWithSalt` validity
+      `Prelude.hashWithSalt` entitlements
+      `Prelude.hashWithSalt` beneficiary
+      `Prelude.hashWithSalt` consumptionConfiguration
+      `Prelude.hashWithSalt` clientToken
+
+instance Prelude.NFData CreateLicense where
+  rnf CreateLicense' {..} =
+    Prelude.rnf licenseMetadata
+      `Prelude.seq` Prelude.rnf licenseName
+      `Prelude.seq` Prelude.rnf productName
+      `Prelude.seq` Prelude.rnf productSKU
+      `Prelude.seq` Prelude.rnf issuer
+      `Prelude.seq` Prelude.rnf homeRegion
+      `Prelude.seq` Prelude.rnf validity
+      `Prelude.seq` Prelude.rnf entitlements
+      `Prelude.seq` Prelude.rnf beneficiary
+      `Prelude.seq` Prelude.rnf consumptionConfiguration
+      `Prelude.seq` Prelude.rnf clientToken
+
+instance Data.ToHeaders CreateLicense where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.CreateLicense" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON CreateLicense where
+  toJSON CreateLicense' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("LicenseMetadata" Data..=)
+              Prelude.<$> licenseMetadata,
+            Prelude.Just ("LicenseName" Data..= licenseName),
+            Prelude.Just ("ProductName" Data..= productName),
+            Prelude.Just ("ProductSKU" Data..= productSKU),
+            Prelude.Just ("Issuer" Data..= issuer),
+            Prelude.Just ("HomeRegion" Data..= homeRegion),
+            Prelude.Just ("Validity" Data..= validity),
+            Prelude.Just ("Entitlements" Data..= entitlements),
+            Prelude.Just ("Beneficiary" Data..= beneficiary),
+            Prelude.Just
+              ( "ConsumptionConfiguration"
+                  Data..= consumptionConfiguration
+              ),
+            Prelude.Just ("ClientToken" Data..= clientToken)
+          ]
+      )
+
+instance Data.ToPath CreateLicense where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery CreateLicense where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newCreateLicenseResponse' smart constructor.
+data CreateLicenseResponse = CreateLicenseResponse'
+  { -- | Amazon Resource Name (ARN) of the license.
+    licenseArn :: Prelude.Maybe Prelude.Text,
+    -- | License status.
+    status :: Prelude.Maybe LicenseStatus,
+    -- | License version.
+    version :: 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 'CreateLicenseResponse' 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:
+--
+-- 'licenseArn', 'createLicenseResponse_licenseArn' - Amazon Resource Name (ARN) of the license.
+--
+-- 'status', 'createLicenseResponse_status' - License status.
+--
+-- 'version', 'createLicenseResponse_version' - License version.
+--
+-- 'httpStatus', 'createLicenseResponse_httpStatus' - The response's http status code.
+newCreateLicenseResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  CreateLicenseResponse
+newCreateLicenseResponse pHttpStatus_ =
+  CreateLicenseResponse'
+    { licenseArn =
+        Prelude.Nothing,
+      status = Prelude.Nothing,
+      version = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Amazon Resource Name (ARN) of the license.
+createLicenseResponse_licenseArn :: Lens.Lens' CreateLicenseResponse (Prelude.Maybe Prelude.Text)
+createLicenseResponse_licenseArn = Lens.lens (\CreateLicenseResponse' {licenseArn} -> licenseArn) (\s@CreateLicenseResponse' {} a -> s {licenseArn = a} :: CreateLicenseResponse)
+
+-- | License status.
+createLicenseResponse_status :: Lens.Lens' CreateLicenseResponse (Prelude.Maybe LicenseStatus)
+createLicenseResponse_status = Lens.lens (\CreateLicenseResponse' {status} -> status) (\s@CreateLicenseResponse' {} a -> s {status = a} :: CreateLicenseResponse)
+
+-- | License version.
+createLicenseResponse_version :: Lens.Lens' CreateLicenseResponse (Prelude.Maybe Prelude.Text)
+createLicenseResponse_version = Lens.lens (\CreateLicenseResponse' {version} -> version) (\s@CreateLicenseResponse' {} a -> s {version = a} :: CreateLicenseResponse)
+
+-- | The response's http status code.
+createLicenseResponse_httpStatus :: Lens.Lens' CreateLicenseResponse Prelude.Int
+createLicenseResponse_httpStatus = Lens.lens (\CreateLicenseResponse' {httpStatus} -> httpStatus) (\s@CreateLicenseResponse' {} a -> s {httpStatus = a} :: CreateLicenseResponse)
+
+instance Prelude.NFData CreateLicenseResponse where
+  rnf CreateLicenseResponse' {..} =
+    Prelude.rnf licenseArn
+      `Prelude.seq` Prelude.rnf status
+      `Prelude.seq` Prelude.rnf version
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/CreateLicenseConfiguration.hs b/gen/Amazonka/LicenseManager/CreateLicenseConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/CreateLicenseConfiguration.hs
@@ -0,0 +1,360 @@
+{-# 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.LicenseManager.CreateLicenseConfiguration
+-- 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 license configuration.
+--
+-- A license configuration is an abstraction of a customer license
+-- agreement that can be consumed and enforced by License Manager.
+-- Components include specifications for the license type (licensing by
+-- instance, socket, CPU, or vCPU), allowed tenancy (shared tenancy,
+-- Dedicated Instance, Dedicated Host, or all of these), license affinity
+-- to host (how long a license must be associated with a host), and the
+-- number of licenses purchased and used.
+module Amazonka.LicenseManager.CreateLicenseConfiguration
+  ( -- * Creating a Request
+    CreateLicenseConfiguration (..),
+    newCreateLicenseConfiguration,
+
+    -- * Request Lenses
+    createLicenseConfiguration_description,
+    createLicenseConfiguration_disassociateWhenNotFound,
+    createLicenseConfiguration_licenseCount,
+    createLicenseConfiguration_licenseCountHardLimit,
+    createLicenseConfiguration_licenseRules,
+    createLicenseConfiguration_productInformationList,
+    createLicenseConfiguration_tags,
+    createLicenseConfiguration_name,
+    createLicenseConfiguration_licenseCountingType,
+
+    -- * Destructuring the Response
+    CreateLicenseConfigurationResponse (..),
+    newCreateLicenseConfigurationResponse,
+
+    -- * Response Lenses
+    createLicenseConfigurationResponse_licenseConfigurationArn,
+    createLicenseConfigurationResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newCreateLicenseConfiguration' smart constructor.
+data CreateLicenseConfiguration = CreateLicenseConfiguration'
+  { -- | Description of the license configuration.
+    description :: Prelude.Maybe Prelude.Text,
+    -- | When true, disassociates a resource when software is uninstalled.
+    disassociateWhenNotFound :: Prelude.Maybe Prelude.Bool,
+    -- | Number of licenses managed by the license configuration.
+    licenseCount :: Prelude.Maybe Prelude.Integer,
+    -- | Indicates whether hard or soft license enforcement is used. Exceeding a
+    -- hard limit blocks the launch of new instances.
+    licenseCountHardLimit :: Prelude.Maybe Prelude.Bool,
+    -- | License rules. The syntax is #name=value (for example,
+    -- #allowedTenancy=EC2-DedicatedHost). The available rules vary by
+    -- dimension, as follows.
+    --
+    -- -   @Cores@ dimension: @allowedTenancy@ | @licenseAffinityToHost@ |
+    --     @maximumCores@ | @minimumCores@
+    --
+    -- -   @Instances@ dimension: @allowedTenancy@ | @maximumCores@ |
+    --     @minimumCores@ | @maximumSockets@ | @minimumSockets@ |
+    --     @maximumVcpus@ | @minimumVcpus@
+    --
+    -- -   @Sockets@ dimension: @allowedTenancy@ | @licenseAffinityToHost@ |
+    --     @maximumSockets@ | @minimumSockets@
+    --
+    -- -   @vCPUs@ dimension: @allowedTenancy@ | @honorVcpuOptimization@ |
+    --     @maximumVcpus@ | @minimumVcpus@
+    --
+    -- The unit for @licenseAffinityToHost@ is days and the range is 1 to 180.
+    -- The possible values for @allowedTenancy@ are @EC2-Default@,
+    -- @EC2-DedicatedHost@, and @EC2-DedicatedInstance@. The possible values
+    -- for @honorVcpuOptimization@ are @True@ and @False@.
+    licenseRules :: Prelude.Maybe [Prelude.Text],
+    -- | Product information.
+    productInformationList :: Prelude.Maybe [ProductInformation],
+    -- | Tags to add to the license configuration.
+    tags :: Prelude.Maybe [Tag],
+    -- | Name of the license configuration.
+    name :: Prelude.Text,
+    -- | Dimension used to track the license inventory.
+    licenseCountingType :: LicenseCountingType
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateLicenseConfiguration' 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', 'createLicenseConfiguration_description' - Description of the license configuration.
+--
+-- 'disassociateWhenNotFound', 'createLicenseConfiguration_disassociateWhenNotFound' - When true, disassociates a resource when software is uninstalled.
+--
+-- 'licenseCount', 'createLicenseConfiguration_licenseCount' - Number of licenses managed by the license configuration.
+--
+-- 'licenseCountHardLimit', 'createLicenseConfiguration_licenseCountHardLimit' - Indicates whether hard or soft license enforcement is used. Exceeding a
+-- hard limit blocks the launch of new instances.
+--
+-- 'licenseRules', 'createLicenseConfiguration_licenseRules' - License rules. The syntax is #name=value (for example,
+-- #allowedTenancy=EC2-DedicatedHost). The available rules vary by
+-- dimension, as follows.
+--
+-- -   @Cores@ dimension: @allowedTenancy@ | @licenseAffinityToHost@ |
+--     @maximumCores@ | @minimumCores@
+--
+-- -   @Instances@ dimension: @allowedTenancy@ | @maximumCores@ |
+--     @minimumCores@ | @maximumSockets@ | @minimumSockets@ |
+--     @maximumVcpus@ | @minimumVcpus@
+--
+-- -   @Sockets@ dimension: @allowedTenancy@ | @licenseAffinityToHost@ |
+--     @maximumSockets@ | @minimumSockets@
+--
+-- -   @vCPUs@ dimension: @allowedTenancy@ | @honorVcpuOptimization@ |
+--     @maximumVcpus@ | @minimumVcpus@
+--
+-- The unit for @licenseAffinityToHost@ is days and the range is 1 to 180.
+-- The possible values for @allowedTenancy@ are @EC2-Default@,
+-- @EC2-DedicatedHost@, and @EC2-DedicatedInstance@. The possible values
+-- for @honorVcpuOptimization@ are @True@ and @False@.
+--
+-- 'productInformationList', 'createLicenseConfiguration_productInformationList' - Product information.
+--
+-- 'tags', 'createLicenseConfiguration_tags' - Tags to add to the license configuration.
+--
+-- 'name', 'createLicenseConfiguration_name' - Name of the license configuration.
+--
+-- 'licenseCountingType', 'createLicenseConfiguration_licenseCountingType' - Dimension used to track the license inventory.
+newCreateLicenseConfiguration ::
+  -- | 'name'
+  Prelude.Text ->
+  -- | 'licenseCountingType'
+  LicenseCountingType ->
+  CreateLicenseConfiguration
+newCreateLicenseConfiguration
+  pName_
+  pLicenseCountingType_ =
+    CreateLicenseConfiguration'
+      { description =
+          Prelude.Nothing,
+        disassociateWhenNotFound = Prelude.Nothing,
+        licenseCount = Prelude.Nothing,
+        licenseCountHardLimit = Prelude.Nothing,
+        licenseRules = Prelude.Nothing,
+        productInformationList = Prelude.Nothing,
+        tags = Prelude.Nothing,
+        name = pName_,
+        licenseCountingType = pLicenseCountingType_
+      }
+
+-- | Description of the license configuration.
+createLicenseConfiguration_description :: Lens.Lens' CreateLicenseConfiguration (Prelude.Maybe Prelude.Text)
+createLicenseConfiguration_description = Lens.lens (\CreateLicenseConfiguration' {description} -> description) (\s@CreateLicenseConfiguration' {} a -> s {description = a} :: CreateLicenseConfiguration)
+
+-- | When true, disassociates a resource when software is uninstalled.
+createLicenseConfiguration_disassociateWhenNotFound :: Lens.Lens' CreateLicenseConfiguration (Prelude.Maybe Prelude.Bool)
+createLicenseConfiguration_disassociateWhenNotFound = Lens.lens (\CreateLicenseConfiguration' {disassociateWhenNotFound} -> disassociateWhenNotFound) (\s@CreateLicenseConfiguration' {} a -> s {disassociateWhenNotFound = a} :: CreateLicenseConfiguration)
+
+-- | Number of licenses managed by the license configuration.
+createLicenseConfiguration_licenseCount :: Lens.Lens' CreateLicenseConfiguration (Prelude.Maybe Prelude.Integer)
+createLicenseConfiguration_licenseCount = Lens.lens (\CreateLicenseConfiguration' {licenseCount} -> licenseCount) (\s@CreateLicenseConfiguration' {} a -> s {licenseCount = a} :: CreateLicenseConfiguration)
+
+-- | Indicates whether hard or soft license enforcement is used. Exceeding a
+-- hard limit blocks the launch of new instances.
+createLicenseConfiguration_licenseCountHardLimit :: Lens.Lens' CreateLicenseConfiguration (Prelude.Maybe Prelude.Bool)
+createLicenseConfiguration_licenseCountHardLimit = Lens.lens (\CreateLicenseConfiguration' {licenseCountHardLimit} -> licenseCountHardLimit) (\s@CreateLicenseConfiguration' {} a -> s {licenseCountHardLimit = a} :: CreateLicenseConfiguration)
+
+-- | License rules. The syntax is #name=value (for example,
+-- #allowedTenancy=EC2-DedicatedHost). The available rules vary by
+-- dimension, as follows.
+--
+-- -   @Cores@ dimension: @allowedTenancy@ | @licenseAffinityToHost@ |
+--     @maximumCores@ | @minimumCores@
+--
+-- -   @Instances@ dimension: @allowedTenancy@ | @maximumCores@ |
+--     @minimumCores@ | @maximumSockets@ | @minimumSockets@ |
+--     @maximumVcpus@ | @minimumVcpus@
+--
+-- -   @Sockets@ dimension: @allowedTenancy@ | @licenseAffinityToHost@ |
+--     @maximumSockets@ | @minimumSockets@
+--
+-- -   @vCPUs@ dimension: @allowedTenancy@ | @honorVcpuOptimization@ |
+--     @maximumVcpus@ | @minimumVcpus@
+--
+-- The unit for @licenseAffinityToHost@ is days and the range is 1 to 180.
+-- The possible values for @allowedTenancy@ are @EC2-Default@,
+-- @EC2-DedicatedHost@, and @EC2-DedicatedInstance@. The possible values
+-- for @honorVcpuOptimization@ are @True@ and @False@.
+createLicenseConfiguration_licenseRules :: Lens.Lens' CreateLicenseConfiguration (Prelude.Maybe [Prelude.Text])
+createLicenseConfiguration_licenseRules = Lens.lens (\CreateLicenseConfiguration' {licenseRules} -> licenseRules) (\s@CreateLicenseConfiguration' {} a -> s {licenseRules = a} :: CreateLicenseConfiguration) Prelude.. Lens.mapping Lens.coerced
+
+-- | Product information.
+createLicenseConfiguration_productInformationList :: Lens.Lens' CreateLicenseConfiguration (Prelude.Maybe [ProductInformation])
+createLicenseConfiguration_productInformationList = Lens.lens (\CreateLicenseConfiguration' {productInformationList} -> productInformationList) (\s@CreateLicenseConfiguration' {} a -> s {productInformationList = a} :: CreateLicenseConfiguration) Prelude.. Lens.mapping Lens.coerced
+
+-- | Tags to add to the license configuration.
+createLicenseConfiguration_tags :: Lens.Lens' CreateLicenseConfiguration (Prelude.Maybe [Tag])
+createLicenseConfiguration_tags = Lens.lens (\CreateLicenseConfiguration' {tags} -> tags) (\s@CreateLicenseConfiguration' {} a -> s {tags = a} :: CreateLicenseConfiguration) Prelude.. Lens.mapping Lens.coerced
+
+-- | Name of the license configuration.
+createLicenseConfiguration_name :: Lens.Lens' CreateLicenseConfiguration Prelude.Text
+createLicenseConfiguration_name = Lens.lens (\CreateLicenseConfiguration' {name} -> name) (\s@CreateLicenseConfiguration' {} a -> s {name = a} :: CreateLicenseConfiguration)
+
+-- | Dimension used to track the license inventory.
+createLicenseConfiguration_licenseCountingType :: Lens.Lens' CreateLicenseConfiguration LicenseCountingType
+createLicenseConfiguration_licenseCountingType = Lens.lens (\CreateLicenseConfiguration' {licenseCountingType} -> licenseCountingType) (\s@CreateLicenseConfiguration' {} a -> s {licenseCountingType = a} :: CreateLicenseConfiguration)
+
+instance Core.AWSRequest CreateLicenseConfiguration where
+  type
+    AWSResponse CreateLicenseConfiguration =
+      CreateLicenseConfigurationResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          CreateLicenseConfigurationResponse'
+            Prelude.<$> (x Data..?> "LicenseConfigurationArn")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable CreateLicenseConfiguration where
+  hashWithSalt _salt CreateLicenseConfiguration' {..} =
+    _salt
+      `Prelude.hashWithSalt` description
+      `Prelude.hashWithSalt` disassociateWhenNotFound
+      `Prelude.hashWithSalt` licenseCount
+      `Prelude.hashWithSalt` licenseCountHardLimit
+      `Prelude.hashWithSalt` licenseRules
+      `Prelude.hashWithSalt` productInformationList
+      `Prelude.hashWithSalt` tags
+      `Prelude.hashWithSalt` name
+      `Prelude.hashWithSalt` licenseCountingType
+
+instance Prelude.NFData CreateLicenseConfiguration where
+  rnf CreateLicenseConfiguration' {..} =
+    Prelude.rnf description
+      `Prelude.seq` Prelude.rnf disassociateWhenNotFound
+      `Prelude.seq` Prelude.rnf licenseCount
+      `Prelude.seq` Prelude.rnf licenseCountHardLimit
+      `Prelude.seq` Prelude.rnf licenseRules
+      `Prelude.seq` Prelude.rnf productInformationList
+      `Prelude.seq` Prelude.rnf tags
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf licenseCountingType
+
+instance Data.ToHeaders CreateLicenseConfiguration where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.CreateLicenseConfiguration" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON CreateLicenseConfiguration where
+  toJSON CreateLicenseConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("Description" Data..=) Prelude.<$> description,
+            ("DisassociateWhenNotFound" Data..=)
+              Prelude.<$> disassociateWhenNotFound,
+            ("LicenseCount" Data..=) Prelude.<$> licenseCount,
+            ("LicenseCountHardLimit" Data..=)
+              Prelude.<$> licenseCountHardLimit,
+            ("LicenseRules" Data..=) Prelude.<$> licenseRules,
+            ("ProductInformationList" Data..=)
+              Prelude.<$> productInformationList,
+            ("Tags" Data..=) Prelude.<$> tags,
+            Prelude.Just ("Name" Data..= name),
+            Prelude.Just
+              ("LicenseCountingType" Data..= licenseCountingType)
+          ]
+      )
+
+instance Data.ToPath CreateLicenseConfiguration where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery CreateLicenseConfiguration where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newCreateLicenseConfigurationResponse' smart constructor.
+data CreateLicenseConfigurationResponse = CreateLicenseConfigurationResponse'
+  { -- | Amazon Resource Name (ARN) of the license configuration.
+    licenseConfigurationArn :: 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 'CreateLicenseConfigurationResponse' 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:
+--
+-- 'licenseConfigurationArn', 'createLicenseConfigurationResponse_licenseConfigurationArn' - Amazon Resource Name (ARN) of the license configuration.
+--
+-- 'httpStatus', 'createLicenseConfigurationResponse_httpStatus' - The response's http status code.
+newCreateLicenseConfigurationResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  CreateLicenseConfigurationResponse
+newCreateLicenseConfigurationResponse pHttpStatus_ =
+  CreateLicenseConfigurationResponse'
+    { licenseConfigurationArn =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Amazon Resource Name (ARN) of the license configuration.
+createLicenseConfigurationResponse_licenseConfigurationArn :: Lens.Lens' CreateLicenseConfigurationResponse (Prelude.Maybe Prelude.Text)
+createLicenseConfigurationResponse_licenseConfigurationArn = Lens.lens (\CreateLicenseConfigurationResponse' {licenseConfigurationArn} -> licenseConfigurationArn) (\s@CreateLicenseConfigurationResponse' {} a -> s {licenseConfigurationArn = a} :: CreateLicenseConfigurationResponse)
+
+-- | The response's http status code.
+createLicenseConfigurationResponse_httpStatus :: Lens.Lens' CreateLicenseConfigurationResponse Prelude.Int
+createLicenseConfigurationResponse_httpStatus = Lens.lens (\CreateLicenseConfigurationResponse' {httpStatus} -> httpStatus) (\s@CreateLicenseConfigurationResponse' {} a -> s {httpStatus = a} :: CreateLicenseConfigurationResponse)
+
+instance
+  Prelude.NFData
+    CreateLicenseConfigurationResponse
+  where
+  rnf CreateLicenseConfigurationResponse' {..} =
+    Prelude.rnf licenseConfigurationArn
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/CreateLicenseConversionTaskForResource.hs b/gen/Amazonka/LicenseManager/CreateLicenseConversionTaskForResource.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/CreateLicenseConversionTaskForResource.hs
@@ -0,0 +1,265 @@
+{-# 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.LicenseManager.CreateLicenseConversionTaskForResource
+-- 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 license conversion task.
+module Amazonka.LicenseManager.CreateLicenseConversionTaskForResource
+  ( -- * Creating a Request
+    CreateLicenseConversionTaskForResource (..),
+    newCreateLicenseConversionTaskForResource,
+
+    -- * Request Lenses
+    createLicenseConversionTaskForResource_resourceArn,
+    createLicenseConversionTaskForResource_sourceLicenseContext,
+    createLicenseConversionTaskForResource_destinationLicenseContext,
+
+    -- * Destructuring the Response
+    CreateLicenseConversionTaskForResourceResponse (..),
+    newCreateLicenseConversionTaskForResourceResponse,
+
+    -- * Response Lenses
+    createLicenseConversionTaskForResourceResponse_licenseConversionTaskId,
+    createLicenseConversionTaskForResourceResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newCreateLicenseConversionTaskForResource' smart constructor.
+data CreateLicenseConversionTaskForResource = CreateLicenseConversionTaskForResource'
+  { -- | Amazon Resource Name (ARN) of the resource you are converting the
+    -- license type for.
+    resourceArn :: Prelude.Text,
+    -- | Information that identifies the license type you are converting from.
+    -- For the structure of the source license, see
+    -- <https://docs.aws.amazon.com/license-manager/latest/userguide/conversion-procedures.html#conversion-cli Convert a license type using the Amazon Web Services CLI>
+    -- in the /License Manager User Guide/.
+    sourceLicenseContext :: LicenseConversionContext,
+    -- | Information that identifies the license type you are converting to. For
+    -- the structure of the destination license, see
+    -- <https://docs.aws.amazon.com/license-manager/latest/userguide/conversion-procedures.html#conversion-cli Convert a license type using the Amazon Web Services CLI>
+    -- in the /License Manager User Guide/.
+    destinationLicenseContext :: LicenseConversionContext
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateLicenseConversionTaskForResource' 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', 'createLicenseConversionTaskForResource_resourceArn' - Amazon Resource Name (ARN) of the resource you are converting the
+-- license type for.
+--
+-- 'sourceLicenseContext', 'createLicenseConversionTaskForResource_sourceLicenseContext' - Information that identifies the license type you are converting from.
+-- For the structure of the source license, see
+-- <https://docs.aws.amazon.com/license-manager/latest/userguide/conversion-procedures.html#conversion-cli Convert a license type using the Amazon Web Services CLI>
+-- in the /License Manager User Guide/.
+--
+-- 'destinationLicenseContext', 'createLicenseConversionTaskForResource_destinationLicenseContext' - Information that identifies the license type you are converting to. For
+-- the structure of the destination license, see
+-- <https://docs.aws.amazon.com/license-manager/latest/userguide/conversion-procedures.html#conversion-cli Convert a license type using the Amazon Web Services CLI>
+-- in the /License Manager User Guide/.
+newCreateLicenseConversionTaskForResource ::
+  -- | 'resourceArn'
+  Prelude.Text ->
+  -- | 'sourceLicenseContext'
+  LicenseConversionContext ->
+  -- | 'destinationLicenseContext'
+  LicenseConversionContext ->
+  CreateLicenseConversionTaskForResource
+newCreateLicenseConversionTaskForResource
+  pResourceArn_
+  pSourceLicenseContext_
+  pDestinationLicenseContext_ =
+    CreateLicenseConversionTaskForResource'
+      { resourceArn =
+          pResourceArn_,
+        sourceLicenseContext =
+          pSourceLicenseContext_,
+        destinationLicenseContext =
+          pDestinationLicenseContext_
+      }
+
+-- | Amazon Resource Name (ARN) of the resource you are converting the
+-- license type for.
+createLicenseConversionTaskForResource_resourceArn :: Lens.Lens' CreateLicenseConversionTaskForResource Prelude.Text
+createLicenseConversionTaskForResource_resourceArn = Lens.lens (\CreateLicenseConversionTaskForResource' {resourceArn} -> resourceArn) (\s@CreateLicenseConversionTaskForResource' {} a -> s {resourceArn = a} :: CreateLicenseConversionTaskForResource)
+
+-- | Information that identifies the license type you are converting from.
+-- For the structure of the source license, see
+-- <https://docs.aws.amazon.com/license-manager/latest/userguide/conversion-procedures.html#conversion-cli Convert a license type using the Amazon Web Services CLI>
+-- in the /License Manager User Guide/.
+createLicenseConversionTaskForResource_sourceLicenseContext :: Lens.Lens' CreateLicenseConversionTaskForResource LicenseConversionContext
+createLicenseConversionTaskForResource_sourceLicenseContext = Lens.lens (\CreateLicenseConversionTaskForResource' {sourceLicenseContext} -> sourceLicenseContext) (\s@CreateLicenseConversionTaskForResource' {} a -> s {sourceLicenseContext = a} :: CreateLicenseConversionTaskForResource)
+
+-- | Information that identifies the license type you are converting to. For
+-- the structure of the destination license, see
+-- <https://docs.aws.amazon.com/license-manager/latest/userguide/conversion-procedures.html#conversion-cli Convert a license type using the Amazon Web Services CLI>
+-- in the /License Manager User Guide/.
+createLicenseConversionTaskForResource_destinationLicenseContext :: Lens.Lens' CreateLicenseConversionTaskForResource LicenseConversionContext
+createLicenseConversionTaskForResource_destinationLicenseContext = Lens.lens (\CreateLicenseConversionTaskForResource' {destinationLicenseContext} -> destinationLicenseContext) (\s@CreateLicenseConversionTaskForResource' {} a -> s {destinationLicenseContext = a} :: CreateLicenseConversionTaskForResource)
+
+instance
+  Core.AWSRequest
+    CreateLicenseConversionTaskForResource
+  where
+  type
+    AWSResponse
+      CreateLicenseConversionTaskForResource =
+      CreateLicenseConversionTaskForResourceResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          CreateLicenseConversionTaskForResourceResponse'
+            Prelude.<$> (x Data..?> "LicenseConversionTaskId")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    CreateLicenseConversionTaskForResource
+  where
+  hashWithSalt
+    _salt
+    CreateLicenseConversionTaskForResource' {..} =
+      _salt
+        `Prelude.hashWithSalt` resourceArn
+        `Prelude.hashWithSalt` sourceLicenseContext
+        `Prelude.hashWithSalt` destinationLicenseContext
+
+instance
+  Prelude.NFData
+    CreateLicenseConversionTaskForResource
+  where
+  rnf CreateLicenseConversionTaskForResource' {..} =
+    Prelude.rnf resourceArn
+      `Prelude.seq` Prelude.rnf sourceLicenseContext
+      `Prelude.seq` Prelude.rnf destinationLicenseContext
+
+instance
+  Data.ToHeaders
+    CreateLicenseConversionTaskForResource
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.CreateLicenseConversionTaskForResource" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    CreateLicenseConversionTaskForResource
+  where
+  toJSON CreateLicenseConversionTaskForResource' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just ("ResourceArn" Data..= resourceArn),
+            Prelude.Just
+              ( "SourceLicenseContext"
+                  Data..= sourceLicenseContext
+              ),
+            Prelude.Just
+              ( "DestinationLicenseContext"
+                  Data..= destinationLicenseContext
+              )
+          ]
+      )
+
+instance
+  Data.ToPath
+    CreateLicenseConversionTaskForResource
+  where
+  toPath = Prelude.const "/"
+
+instance
+  Data.ToQuery
+    CreateLicenseConversionTaskForResource
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newCreateLicenseConversionTaskForResourceResponse' smart constructor.
+data CreateLicenseConversionTaskForResourceResponse = CreateLicenseConversionTaskForResourceResponse'
+  { -- | The ID of the created license type conversion task.
+    licenseConversionTaskId :: 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 'CreateLicenseConversionTaskForResourceResponse' 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:
+--
+-- 'licenseConversionTaskId', 'createLicenseConversionTaskForResourceResponse_licenseConversionTaskId' - The ID of the created license type conversion task.
+--
+-- 'httpStatus', 'createLicenseConversionTaskForResourceResponse_httpStatus' - The response's http status code.
+newCreateLicenseConversionTaskForResourceResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  CreateLicenseConversionTaskForResourceResponse
+newCreateLicenseConversionTaskForResourceResponse
+  pHttpStatus_ =
+    CreateLicenseConversionTaskForResourceResponse'
+      { licenseConversionTaskId =
+          Prelude.Nothing,
+        httpStatus = pHttpStatus_
+      }
+
+-- | The ID of the created license type conversion task.
+createLicenseConversionTaskForResourceResponse_licenseConversionTaskId :: Lens.Lens' CreateLicenseConversionTaskForResourceResponse (Prelude.Maybe Prelude.Text)
+createLicenseConversionTaskForResourceResponse_licenseConversionTaskId = Lens.lens (\CreateLicenseConversionTaskForResourceResponse' {licenseConversionTaskId} -> licenseConversionTaskId) (\s@CreateLicenseConversionTaskForResourceResponse' {} a -> s {licenseConversionTaskId = a} :: CreateLicenseConversionTaskForResourceResponse)
+
+-- | The response's http status code.
+createLicenseConversionTaskForResourceResponse_httpStatus :: Lens.Lens' CreateLicenseConversionTaskForResourceResponse Prelude.Int
+createLicenseConversionTaskForResourceResponse_httpStatus = Lens.lens (\CreateLicenseConversionTaskForResourceResponse' {httpStatus} -> httpStatus) (\s@CreateLicenseConversionTaskForResourceResponse' {} a -> s {httpStatus = a} :: CreateLicenseConversionTaskForResourceResponse)
+
+instance
+  Prelude.NFData
+    CreateLicenseConversionTaskForResourceResponse
+  where
+  rnf
+    CreateLicenseConversionTaskForResourceResponse' {..} =
+      Prelude.rnf licenseConversionTaskId
+        `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/CreateLicenseManagerReportGenerator.hs b/gen/Amazonka/LicenseManager/CreateLicenseManagerReportGenerator.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/CreateLicenseManagerReportGenerator.hs
@@ -0,0 +1,316 @@
+{-# 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.LicenseManager.CreateLicenseManagerReportGenerator
+-- 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 report generator.
+module Amazonka.LicenseManager.CreateLicenseManagerReportGenerator
+  ( -- * Creating a Request
+    CreateLicenseManagerReportGenerator (..),
+    newCreateLicenseManagerReportGenerator,
+
+    -- * Request Lenses
+    createLicenseManagerReportGenerator_description,
+    createLicenseManagerReportGenerator_tags,
+    createLicenseManagerReportGenerator_reportGeneratorName,
+    createLicenseManagerReportGenerator_type,
+    createLicenseManagerReportGenerator_reportContext,
+    createLicenseManagerReportGenerator_reportFrequency,
+    createLicenseManagerReportGenerator_clientToken,
+
+    -- * Destructuring the Response
+    CreateLicenseManagerReportGeneratorResponse (..),
+    newCreateLicenseManagerReportGeneratorResponse,
+
+    -- * Response Lenses
+    createLicenseManagerReportGeneratorResponse_licenseManagerReportGeneratorArn,
+    createLicenseManagerReportGeneratorResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newCreateLicenseManagerReportGenerator' smart constructor.
+data CreateLicenseManagerReportGenerator = CreateLicenseManagerReportGenerator'
+  { -- | Description of the report generator.
+    description :: Prelude.Maybe Prelude.Text,
+    -- | Tags to add to the report generator.
+    tags :: Prelude.Maybe [Tag],
+    -- | Name of the report generator.
+    reportGeneratorName :: Prelude.Text,
+    -- | Type of reports to generate. The following report types an be generated:
+    --
+    -- -   License configuration report - Reports the number and details of
+    --     consumed licenses for a license configuration.
+    --
+    -- -   Resource report - Reports the tracked licenses and resource
+    --     consumption for a license configuration.
+    type' :: [ReportType],
+    -- | Defines the type of license configuration the report generator tracks.
+    reportContext :: ReportContext,
+    -- | Frequency by which reports are generated. Reports can be generated
+    -- daily, monthly, or weekly.
+    reportFrequency :: ReportFrequency,
+    -- | Unique, case-sensitive identifier that you provide to ensure the
+    -- idempotency of the request.
+    clientToken :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateLicenseManagerReportGenerator' 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', 'createLicenseManagerReportGenerator_description' - Description of the report generator.
+--
+-- 'tags', 'createLicenseManagerReportGenerator_tags' - Tags to add to the report generator.
+--
+-- 'reportGeneratorName', 'createLicenseManagerReportGenerator_reportGeneratorName' - Name of the report generator.
+--
+-- 'type'', 'createLicenseManagerReportGenerator_type' - Type of reports to generate. The following report types an be generated:
+--
+-- -   License configuration report - Reports the number and details of
+--     consumed licenses for a license configuration.
+--
+-- -   Resource report - Reports the tracked licenses and resource
+--     consumption for a license configuration.
+--
+-- 'reportContext', 'createLicenseManagerReportGenerator_reportContext' - Defines the type of license configuration the report generator tracks.
+--
+-- 'reportFrequency', 'createLicenseManagerReportGenerator_reportFrequency' - Frequency by which reports are generated. Reports can be generated
+-- daily, monthly, or weekly.
+--
+-- 'clientToken', 'createLicenseManagerReportGenerator_clientToken' - Unique, case-sensitive identifier that you provide to ensure the
+-- idempotency of the request.
+newCreateLicenseManagerReportGenerator ::
+  -- | 'reportGeneratorName'
+  Prelude.Text ->
+  -- | 'reportContext'
+  ReportContext ->
+  -- | 'reportFrequency'
+  ReportFrequency ->
+  -- | 'clientToken'
+  Prelude.Text ->
+  CreateLicenseManagerReportGenerator
+newCreateLicenseManagerReportGenerator
+  pReportGeneratorName_
+  pReportContext_
+  pReportFrequency_
+  pClientToken_ =
+    CreateLicenseManagerReportGenerator'
+      { description =
+          Prelude.Nothing,
+        tags = Prelude.Nothing,
+        reportGeneratorName =
+          pReportGeneratorName_,
+        type' = Prelude.mempty,
+        reportContext = pReportContext_,
+        reportFrequency = pReportFrequency_,
+        clientToken = pClientToken_
+      }
+
+-- | Description of the report generator.
+createLicenseManagerReportGenerator_description :: Lens.Lens' CreateLicenseManagerReportGenerator (Prelude.Maybe Prelude.Text)
+createLicenseManagerReportGenerator_description = Lens.lens (\CreateLicenseManagerReportGenerator' {description} -> description) (\s@CreateLicenseManagerReportGenerator' {} a -> s {description = a} :: CreateLicenseManagerReportGenerator)
+
+-- | Tags to add to the report generator.
+createLicenseManagerReportGenerator_tags :: Lens.Lens' CreateLicenseManagerReportGenerator (Prelude.Maybe [Tag])
+createLicenseManagerReportGenerator_tags = Lens.lens (\CreateLicenseManagerReportGenerator' {tags} -> tags) (\s@CreateLicenseManagerReportGenerator' {} a -> s {tags = a} :: CreateLicenseManagerReportGenerator) Prelude.. Lens.mapping Lens.coerced
+
+-- | Name of the report generator.
+createLicenseManagerReportGenerator_reportGeneratorName :: Lens.Lens' CreateLicenseManagerReportGenerator Prelude.Text
+createLicenseManagerReportGenerator_reportGeneratorName = Lens.lens (\CreateLicenseManagerReportGenerator' {reportGeneratorName} -> reportGeneratorName) (\s@CreateLicenseManagerReportGenerator' {} a -> s {reportGeneratorName = a} :: CreateLicenseManagerReportGenerator)
+
+-- | Type of reports to generate. The following report types an be generated:
+--
+-- -   License configuration report - Reports the number and details of
+--     consumed licenses for a license configuration.
+--
+-- -   Resource report - Reports the tracked licenses and resource
+--     consumption for a license configuration.
+createLicenseManagerReportGenerator_type :: Lens.Lens' CreateLicenseManagerReportGenerator [ReportType]
+createLicenseManagerReportGenerator_type = Lens.lens (\CreateLicenseManagerReportGenerator' {type'} -> type') (\s@CreateLicenseManagerReportGenerator' {} a -> s {type' = a} :: CreateLicenseManagerReportGenerator) Prelude.. Lens.coerced
+
+-- | Defines the type of license configuration the report generator tracks.
+createLicenseManagerReportGenerator_reportContext :: Lens.Lens' CreateLicenseManagerReportGenerator ReportContext
+createLicenseManagerReportGenerator_reportContext = Lens.lens (\CreateLicenseManagerReportGenerator' {reportContext} -> reportContext) (\s@CreateLicenseManagerReportGenerator' {} a -> s {reportContext = a} :: CreateLicenseManagerReportGenerator)
+
+-- | Frequency by which reports are generated. Reports can be generated
+-- daily, monthly, or weekly.
+createLicenseManagerReportGenerator_reportFrequency :: Lens.Lens' CreateLicenseManagerReportGenerator ReportFrequency
+createLicenseManagerReportGenerator_reportFrequency = Lens.lens (\CreateLicenseManagerReportGenerator' {reportFrequency} -> reportFrequency) (\s@CreateLicenseManagerReportGenerator' {} a -> s {reportFrequency = a} :: CreateLicenseManagerReportGenerator)
+
+-- | Unique, case-sensitive identifier that you provide to ensure the
+-- idempotency of the request.
+createLicenseManagerReportGenerator_clientToken :: Lens.Lens' CreateLicenseManagerReportGenerator Prelude.Text
+createLicenseManagerReportGenerator_clientToken = Lens.lens (\CreateLicenseManagerReportGenerator' {clientToken} -> clientToken) (\s@CreateLicenseManagerReportGenerator' {} a -> s {clientToken = a} :: CreateLicenseManagerReportGenerator)
+
+instance
+  Core.AWSRequest
+    CreateLicenseManagerReportGenerator
+  where
+  type
+    AWSResponse CreateLicenseManagerReportGenerator =
+      CreateLicenseManagerReportGeneratorResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          CreateLicenseManagerReportGeneratorResponse'
+            Prelude.<$> (x Data..?> "LicenseManagerReportGeneratorArn")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    CreateLicenseManagerReportGenerator
+  where
+  hashWithSalt
+    _salt
+    CreateLicenseManagerReportGenerator' {..} =
+      _salt
+        `Prelude.hashWithSalt` description
+        `Prelude.hashWithSalt` tags
+        `Prelude.hashWithSalt` reportGeneratorName
+        `Prelude.hashWithSalt` type'
+        `Prelude.hashWithSalt` reportContext
+        `Prelude.hashWithSalt` reportFrequency
+        `Prelude.hashWithSalt` clientToken
+
+instance
+  Prelude.NFData
+    CreateLicenseManagerReportGenerator
+  where
+  rnf CreateLicenseManagerReportGenerator' {..} =
+    Prelude.rnf description
+      `Prelude.seq` Prelude.rnf tags
+      `Prelude.seq` Prelude.rnf reportGeneratorName
+      `Prelude.seq` Prelude.rnf type'
+      `Prelude.seq` Prelude.rnf reportContext
+      `Prelude.seq` Prelude.rnf reportFrequency
+      `Prelude.seq` Prelude.rnf clientToken
+
+instance
+  Data.ToHeaders
+    CreateLicenseManagerReportGenerator
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.CreateLicenseManagerReportGenerator" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    CreateLicenseManagerReportGenerator
+  where
+  toJSON CreateLicenseManagerReportGenerator' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("Description" Data..=) Prelude.<$> description,
+            ("Tags" Data..=) Prelude.<$> tags,
+            Prelude.Just
+              ("ReportGeneratorName" Data..= reportGeneratorName),
+            Prelude.Just ("Type" Data..= type'),
+            Prelude.Just ("ReportContext" Data..= reportContext),
+            Prelude.Just
+              ("ReportFrequency" Data..= reportFrequency),
+            Prelude.Just ("ClientToken" Data..= clientToken)
+          ]
+      )
+
+instance
+  Data.ToPath
+    CreateLicenseManagerReportGenerator
+  where
+  toPath = Prelude.const "/"
+
+instance
+  Data.ToQuery
+    CreateLicenseManagerReportGenerator
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newCreateLicenseManagerReportGeneratorResponse' smart constructor.
+data CreateLicenseManagerReportGeneratorResponse = CreateLicenseManagerReportGeneratorResponse'
+  { -- | The Amazon Resource Name (ARN) of the new report generator.
+    licenseManagerReportGeneratorArn :: 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 'CreateLicenseManagerReportGeneratorResponse' 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:
+--
+-- 'licenseManagerReportGeneratorArn', 'createLicenseManagerReportGeneratorResponse_licenseManagerReportGeneratorArn' - The Amazon Resource Name (ARN) of the new report generator.
+--
+-- 'httpStatus', 'createLicenseManagerReportGeneratorResponse_httpStatus' - The response's http status code.
+newCreateLicenseManagerReportGeneratorResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  CreateLicenseManagerReportGeneratorResponse
+newCreateLicenseManagerReportGeneratorResponse
+  pHttpStatus_ =
+    CreateLicenseManagerReportGeneratorResponse'
+      { licenseManagerReportGeneratorArn =
+          Prelude.Nothing,
+        httpStatus = pHttpStatus_
+      }
+
+-- | The Amazon Resource Name (ARN) of the new report generator.
+createLicenseManagerReportGeneratorResponse_licenseManagerReportGeneratorArn :: Lens.Lens' CreateLicenseManagerReportGeneratorResponse (Prelude.Maybe Prelude.Text)
+createLicenseManagerReportGeneratorResponse_licenseManagerReportGeneratorArn = Lens.lens (\CreateLicenseManagerReportGeneratorResponse' {licenseManagerReportGeneratorArn} -> licenseManagerReportGeneratorArn) (\s@CreateLicenseManagerReportGeneratorResponse' {} a -> s {licenseManagerReportGeneratorArn = a} :: CreateLicenseManagerReportGeneratorResponse)
+
+-- | The response's http status code.
+createLicenseManagerReportGeneratorResponse_httpStatus :: Lens.Lens' CreateLicenseManagerReportGeneratorResponse Prelude.Int
+createLicenseManagerReportGeneratorResponse_httpStatus = Lens.lens (\CreateLicenseManagerReportGeneratorResponse' {httpStatus} -> httpStatus) (\s@CreateLicenseManagerReportGeneratorResponse' {} a -> s {httpStatus = a} :: CreateLicenseManagerReportGeneratorResponse)
+
+instance
+  Prelude.NFData
+    CreateLicenseManagerReportGeneratorResponse
+  where
+  rnf CreateLicenseManagerReportGeneratorResponse' {..} =
+    Prelude.rnf licenseManagerReportGeneratorArn
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/CreateLicenseVersion.hs b/gen/Amazonka/LicenseManager/CreateLicenseVersion.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/CreateLicenseVersion.hs
@@ -0,0 +1,383 @@
+{-# 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.LicenseManager.CreateLicenseVersion
+-- 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 version of the specified license.
+module Amazonka.LicenseManager.CreateLicenseVersion
+  ( -- * Creating a Request
+    CreateLicenseVersion (..),
+    newCreateLicenseVersion,
+
+    -- * Request Lenses
+    createLicenseVersion_licenseMetadata,
+    createLicenseVersion_sourceVersion,
+    createLicenseVersion_licenseArn,
+    createLicenseVersion_licenseName,
+    createLicenseVersion_productName,
+    createLicenseVersion_issuer,
+    createLicenseVersion_homeRegion,
+    createLicenseVersion_validity,
+    createLicenseVersion_entitlements,
+    createLicenseVersion_consumptionConfiguration,
+    createLicenseVersion_status,
+    createLicenseVersion_clientToken,
+
+    -- * Destructuring the Response
+    CreateLicenseVersionResponse (..),
+    newCreateLicenseVersionResponse,
+
+    -- * Response Lenses
+    createLicenseVersionResponse_licenseArn,
+    createLicenseVersionResponse_status,
+    createLicenseVersionResponse_version,
+    createLicenseVersionResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newCreateLicenseVersion' smart constructor.
+data CreateLicenseVersion = CreateLicenseVersion'
+  { -- | Information about the license.
+    licenseMetadata :: Prelude.Maybe [Metadata],
+    -- | Current version of the license.
+    sourceVersion :: Prelude.Maybe Prelude.Text,
+    -- | Amazon Resource Name (ARN) of the license.
+    licenseArn :: Prelude.Text,
+    -- | License name.
+    licenseName :: Prelude.Text,
+    -- | Product name.
+    productName :: Prelude.Text,
+    -- | License issuer.
+    issuer :: Issuer,
+    -- | Home Region of the license.
+    homeRegion :: Prelude.Text,
+    -- | Date and time range during which the license is valid, in ISO8601-UTC
+    -- format.
+    validity :: DatetimeRange,
+    -- | License entitlements.
+    entitlements :: [Entitlement],
+    -- | Configuration for consumption of the license. Choose a provisional
+    -- configuration for workloads running with continuous connectivity. Choose
+    -- a borrow configuration for workloads with offline usage.
+    consumptionConfiguration :: ConsumptionConfiguration,
+    -- | License status.
+    status :: LicenseStatus,
+    -- | Unique, case-sensitive identifier that you provide to ensure the
+    -- idempotency of the request.
+    clientToken :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateLicenseVersion' 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:
+--
+-- 'licenseMetadata', 'createLicenseVersion_licenseMetadata' - Information about the license.
+--
+-- 'sourceVersion', 'createLicenseVersion_sourceVersion' - Current version of the license.
+--
+-- 'licenseArn', 'createLicenseVersion_licenseArn' - Amazon Resource Name (ARN) of the license.
+--
+-- 'licenseName', 'createLicenseVersion_licenseName' - License name.
+--
+-- 'productName', 'createLicenseVersion_productName' - Product name.
+--
+-- 'issuer', 'createLicenseVersion_issuer' - License issuer.
+--
+-- 'homeRegion', 'createLicenseVersion_homeRegion' - Home Region of the license.
+--
+-- 'validity', 'createLicenseVersion_validity' - Date and time range during which the license is valid, in ISO8601-UTC
+-- format.
+--
+-- 'entitlements', 'createLicenseVersion_entitlements' - License entitlements.
+--
+-- 'consumptionConfiguration', 'createLicenseVersion_consumptionConfiguration' - Configuration for consumption of the license. Choose a provisional
+-- configuration for workloads running with continuous connectivity. Choose
+-- a borrow configuration for workloads with offline usage.
+--
+-- 'status', 'createLicenseVersion_status' - License status.
+--
+-- 'clientToken', 'createLicenseVersion_clientToken' - Unique, case-sensitive identifier that you provide to ensure the
+-- idempotency of the request.
+newCreateLicenseVersion ::
+  -- | 'licenseArn'
+  Prelude.Text ->
+  -- | 'licenseName'
+  Prelude.Text ->
+  -- | 'productName'
+  Prelude.Text ->
+  -- | 'issuer'
+  Issuer ->
+  -- | 'homeRegion'
+  Prelude.Text ->
+  -- | 'validity'
+  DatetimeRange ->
+  -- | 'consumptionConfiguration'
+  ConsumptionConfiguration ->
+  -- | 'status'
+  LicenseStatus ->
+  -- | 'clientToken'
+  Prelude.Text ->
+  CreateLicenseVersion
+newCreateLicenseVersion
+  pLicenseArn_
+  pLicenseName_
+  pProductName_
+  pIssuer_
+  pHomeRegion_
+  pValidity_
+  pConsumptionConfiguration_
+  pStatus_
+  pClientToken_ =
+    CreateLicenseVersion'
+      { licenseMetadata =
+          Prelude.Nothing,
+        sourceVersion = Prelude.Nothing,
+        licenseArn = pLicenseArn_,
+        licenseName = pLicenseName_,
+        productName = pProductName_,
+        issuer = pIssuer_,
+        homeRegion = pHomeRegion_,
+        validity = pValidity_,
+        entitlements = Prelude.mempty,
+        consumptionConfiguration =
+          pConsumptionConfiguration_,
+        status = pStatus_,
+        clientToken = pClientToken_
+      }
+
+-- | Information about the license.
+createLicenseVersion_licenseMetadata :: Lens.Lens' CreateLicenseVersion (Prelude.Maybe [Metadata])
+createLicenseVersion_licenseMetadata = Lens.lens (\CreateLicenseVersion' {licenseMetadata} -> licenseMetadata) (\s@CreateLicenseVersion' {} a -> s {licenseMetadata = a} :: CreateLicenseVersion) Prelude.. Lens.mapping Lens.coerced
+
+-- | Current version of the license.
+createLicenseVersion_sourceVersion :: Lens.Lens' CreateLicenseVersion (Prelude.Maybe Prelude.Text)
+createLicenseVersion_sourceVersion = Lens.lens (\CreateLicenseVersion' {sourceVersion} -> sourceVersion) (\s@CreateLicenseVersion' {} a -> s {sourceVersion = a} :: CreateLicenseVersion)
+
+-- | Amazon Resource Name (ARN) of the license.
+createLicenseVersion_licenseArn :: Lens.Lens' CreateLicenseVersion Prelude.Text
+createLicenseVersion_licenseArn = Lens.lens (\CreateLicenseVersion' {licenseArn} -> licenseArn) (\s@CreateLicenseVersion' {} a -> s {licenseArn = a} :: CreateLicenseVersion)
+
+-- | License name.
+createLicenseVersion_licenseName :: Lens.Lens' CreateLicenseVersion Prelude.Text
+createLicenseVersion_licenseName = Lens.lens (\CreateLicenseVersion' {licenseName} -> licenseName) (\s@CreateLicenseVersion' {} a -> s {licenseName = a} :: CreateLicenseVersion)
+
+-- | Product name.
+createLicenseVersion_productName :: Lens.Lens' CreateLicenseVersion Prelude.Text
+createLicenseVersion_productName = Lens.lens (\CreateLicenseVersion' {productName} -> productName) (\s@CreateLicenseVersion' {} a -> s {productName = a} :: CreateLicenseVersion)
+
+-- | License issuer.
+createLicenseVersion_issuer :: Lens.Lens' CreateLicenseVersion Issuer
+createLicenseVersion_issuer = Lens.lens (\CreateLicenseVersion' {issuer} -> issuer) (\s@CreateLicenseVersion' {} a -> s {issuer = a} :: CreateLicenseVersion)
+
+-- | Home Region of the license.
+createLicenseVersion_homeRegion :: Lens.Lens' CreateLicenseVersion Prelude.Text
+createLicenseVersion_homeRegion = Lens.lens (\CreateLicenseVersion' {homeRegion} -> homeRegion) (\s@CreateLicenseVersion' {} a -> s {homeRegion = a} :: CreateLicenseVersion)
+
+-- | Date and time range during which the license is valid, in ISO8601-UTC
+-- format.
+createLicenseVersion_validity :: Lens.Lens' CreateLicenseVersion DatetimeRange
+createLicenseVersion_validity = Lens.lens (\CreateLicenseVersion' {validity} -> validity) (\s@CreateLicenseVersion' {} a -> s {validity = a} :: CreateLicenseVersion)
+
+-- | License entitlements.
+createLicenseVersion_entitlements :: Lens.Lens' CreateLicenseVersion [Entitlement]
+createLicenseVersion_entitlements = Lens.lens (\CreateLicenseVersion' {entitlements} -> entitlements) (\s@CreateLicenseVersion' {} a -> s {entitlements = a} :: CreateLicenseVersion) Prelude.. Lens.coerced
+
+-- | Configuration for consumption of the license. Choose a provisional
+-- configuration for workloads running with continuous connectivity. Choose
+-- a borrow configuration for workloads with offline usage.
+createLicenseVersion_consumptionConfiguration :: Lens.Lens' CreateLicenseVersion ConsumptionConfiguration
+createLicenseVersion_consumptionConfiguration = Lens.lens (\CreateLicenseVersion' {consumptionConfiguration} -> consumptionConfiguration) (\s@CreateLicenseVersion' {} a -> s {consumptionConfiguration = a} :: CreateLicenseVersion)
+
+-- | License status.
+createLicenseVersion_status :: Lens.Lens' CreateLicenseVersion LicenseStatus
+createLicenseVersion_status = Lens.lens (\CreateLicenseVersion' {status} -> status) (\s@CreateLicenseVersion' {} a -> s {status = a} :: CreateLicenseVersion)
+
+-- | Unique, case-sensitive identifier that you provide to ensure the
+-- idempotency of the request.
+createLicenseVersion_clientToken :: Lens.Lens' CreateLicenseVersion Prelude.Text
+createLicenseVersion_clientToken = Lens.lens (\CreateLicenseVersion' {clientToken} -> clientToken) (\s@CreateLicenseVersion' {} a -> s {clientToken = a} :: CreateLicenseVersion)
+
+instance Core.AWSRequest CreateLicenseVersion where
+  type
+    AWSResponse CreateLicenseVersion =
+      CreateLicenseVersionResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          CreateLicenseVersionResponse'
+            Prelude.<$> (x Data..?> "LicenseArn")
+            Prelude.<*> (x Data..?> "Status")
+            Prelude.<*> (x Data..?> "Version")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable CreateLicenseVersion where
+  hashWithSalt _salt CreateLicenseVersion' {..} =
+    _salt
+      `Prelude.hashWithSalt` licenseMetadata
+      `Prelude.hashWithSalt` sourceVersion
+      `Prelude.hashWithSalt` licenseArn
+      `Prelude.hashWithSalt` licenseName
+      `Prelude.hashWithSalt` productName
+      `Prelude.hashWithSalt` issuer
+      `Prelude.hashWithSalt` homeRegion
+      `Prelude.hashWithSalt` validity
+      `Prelude.hashWithSalt` entitlements
+      `Prelude.hashWithSalt` consumptionConfiguration
+      `Prelude.hashWithSalt` status
+      `Prelude.hashWithSalt` clientToken
+
+instance Prelude.NFData CreateLicenseVersion where
+  rnf CreateLicenseVersion' {..} =
+    Prelude.rnf licenseMetadata
+      `Prelude.seq` Prelude.rnf sourceVersion
+      `Prelude.seq` Prelude.rnf licenseArn
+      `Prelude.seq` Prelude.rnf licenseName
+      `Prelude.seq` Prelude.rnf productName
+      `Prelude.seq` Prelude.rnf issuer
+      `Prelude.seq` Prelude.rnf homeRegion
+      `Prelude.seq` Prelude.rnf validity
+      `Prelude.seq` Prelude.rnf entitlements
+      `Prelude.seq` Prelude.rnf consumptionConfiguration
+      `Prelude.seq` Prelude.rnf status
+      `Prelude.seq` Prelude.rnf clientToken
+
+instance Data.ToHeaders CreateLicenseVersion where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.CreateLicenseVersion" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON CreateLicenseVersion where
+  toJSON CreateLicenseVersion' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("LicenseMetadata" Data..=)
+              Prelude.<$> licenseMetadata,
+            ("SourceVersion" Data..=) Prelude.<$> sourceVersion,
+            Prelude.Just ("LicenseArn" Data..= licenseArn),
+            Prelude.Just ("LicenseName" Data..= licenseName),
+            Prelude.Just ("ProductName" Data..= productName),
+            Prelude.Just ("Issuer" Data..= issuer),
+            Prelude.Just ("HomeRegion" Data..= homeRegion),
+            Prelude.Just ("Validity" Data..= validity),
+            Prelude.Just ("Entitlements" Data..= entitlements),
+            Prelude.Just
+              ( "ConsumptionConfiguration"
+                  Data..= consumptionConfiguration
+              ),
+            Prelude.Just ("Status" Data..= status),
+            Prelude.Just ("ClientToken" Data..= clientToken)
+          ]
+      )
+
+instance Data.ToPath CreateLicenseVersion where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery CreateLicenseVersion where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newCreateLicenseVersionResponse' smart constructor.
+data CreateLicenseVersionResponse = CreateLicenseVersionResponse'
+  { -- | License ARN.
+    licenseArn :: Prelude.Maybe Prelude.Text,
+    -- | License status.
+    status :: Prelude.Maybe LicenseStatus,
+    -- | New version of the license.
+    version :: 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 'CreateLicenseVersionResponse' 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:
+--
+-- 'licenseArn', 'createLicenseVersionResponse_licenseArn' - License ARN.
+--
+-- 'status', 'createLicenseVersionResponse_status' - License status.
+--
+-- 'version', 'createLicenseVersionResponse_version' - New version of the license.
+--
+-- 'httpStatus', 'createLicenseVersionResponse_httpStatus' - The response's http status code.
+newCreateLicenseVersionResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  CreateLicenseVersionResponse
+newCreateLicenseVersionResponse pHttpStatus_ =
+  CreateLicenseVersionResponse'
+    { licenseArn =
+        Prelude.Nothing,
+      status = Prelude.Nothing,
+      version = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | License ARN.
+createLicenseVersionResponse_licenseArn :: Lens.Lens' CreateLicenseVersionResponse (Prelude.Maybe Prelude.Text)
+createLicenseVersionResponse_licenseArn = Lens.lens (\CreateLicenseVersionResponse' {licenseArn} -> licenseArn) (\s@CreateLicenseVersionResponse' {} a -> s {licenseArn = a} :: CreateLicenseVersionResponse)
+
+-- | License status.
+createLicenseVersionResponse_status :: Lens.Lens' CreateLicenseVersionResponse (Prelude.Maybe LicenseStatus)
+createLicenseVersionResponse_status = Lens.lens (\CreateLicenseVersionResponse' {status} -> status) (\s@CreateLicenseVersionResponse' {} a -> s {status = a} :: CreateLicenseVersionResponse)
+
+-- | New version of the license.
+createLicenseVersionResponse_version :: Lens.Lens' CreateLicenseVersionResponse (Prelude.Maybe Prelude.Text)
+createLicenseVersionResponse_version = Lens.lens (\CreateLicenseVersionResponse' {version} -> version) (\s@CreateLicenseVersionResponse' {} a -> s {version = a} :: CreateLicenseVersionResponse)
+
+-- | The response's http status code.
+createLicenseVersionResponse_httpStatus :: Lens.Lens' CreateLicenseVersionResponse Prelude.Int
+createLicenseVersionResponse_httpStatus = Lens.lens (\CreateLicenseVersionResponse' {httpStatus} -> httpStatus) (\s@CreateLicenseVersionResponse' {} a -> s {httpStatus = a} :: CreateLicenseVersionResponse)
+
+instance Prelude.NFData CreateLicenseVersionResponse where
+  rnf CreateLicenseVersionResponse' {..} =
+    Prelude.rnf licenseArn
+      `Prelude.seq` Prelude.rnf status
+      `Prelude.seq` Prelude.rnf version
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/CreateToken.hs b/gen/Amazonka/LicenseManager/CreateToken.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/CreateToken.hs
@@ -0,0 +1,267 @@
+{-# 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.LicenseManager.CreateToken
+-- 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 long-lived token.
+--
+-- A refresh token is a JWT token used to get an access token. With an
+-- access token, you can call AssumeRoleWithWebIdentity to get role
+-- credentials that you can use to call License Manager to manage the
+-- specified license.
+module Amazonka.LicenseManager.CreateToken
+  ( -- * Creating a Request
+    CreateToken (..),
+    newCreateToken,
+
+    -- * Request Lenses
+    createToken_expirationInDays,
+    createToken_roleArns,
+    createToken_tokenProperties,
+    createToken_licenseArn,
+    createToken_clientToken,
+
+    -- * Destructuring the Response
+    CreateTokenResponse (..),
+    newCreateTokenResponse,
+
+    -- * Response Lenses
+    createTokenResponse_token,
+    createTokenResponse_tokenId,
+    createTokenResponse_tokenType,
+    createTokenResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newCreateToken' smart constructor.
+data CreateToken = CreateToken'
+  { -- | Token expiration, in days, counted from token creation. The default is
+    -- 365 days.
+    expirationInDays :: Prelude.Maybe Prelude.Int,
+    -- | Amazon Resource Name (ARN) of the IAM roles to embed in the token.
+    -- License Manager does not check whether the roles are in use.
+    roleArns :: Prelude.Maybe [Prelude.Text],
+    -- | Data specified by the caller to be included in the JWT token. The data
+    -- is mapped to the amr claim of the JWT token.
+    tokenProperties :: Prelude.Maybe [Prelude.Text],
+    -- | Amazon Resource Name (ARN) of the license. The ARN is mapped to the aud
+    -- claim of the JWT token.
+    licenseArn :: Prelude.Text,
+    -- | Idempotency token, valid for 10 minutes.
+    clientToken :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateToken' 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:
+--
+-- 'expirationInDays', 'createToken_expirationInDays' - Token expiration, in days, counted from token creation. The default is
+-- 365 days.
+--
+-- 'roleArns', 'createToken_roleArns' - Amazon Resource Name (ARN) of the IAM roles to embed in the token.
+-- License Manager does not check whether the roles are in use.
+--
+-- 'tokenProperties', 'createToken_tokenProperties' - Data specified by the caller to be included in the JWT token. The data
+-- is mapped to the amr claim of the JWT token.
+--
+-- 'licenseArn', 'createToken_licenseArn' - Amazon Resource Name (ARN) of the license. The ARN is mapped to the aud
+-- claim of the JWT token.
+--
+-- 'clientToken', 'createToken_clientToken' - Idempotency token, valid for 10 minutes.
+newCreateToken ::
+  -- | 'licenseArn'
+  Prelude.Text ->
+  -- | 'clientToken'
+  Prelude.Text ->
+  CreateToken
+newCreateToken pLicenseArn_ pClientToken_ =
+  CreateToken'
+    { expirationInDays = Prelude.Nothing,
+      roleArns = Prelude.Nothing,
+      tokenProperties = Prelude.Nothing,
+      licenseArn = pLicenseArn_,
+      clientToken = pClientToken_
+    }
+
+-- | Token expiration, in days, counted from token creation. The default is
+-- 365 days.
+createToken_expirationInDays :: Lens.Lens' CreateToken (Prelude.Maybe Prelude.Int)
+createToken_expirationInDays = Lens.lens (\CreateToken' {expirationInDays} -> expirationInDays) (\s@CreateToken' {} a -> s {expirationInDays = a} :: CreateToken)
+
+-- | Amazon Resource Name (ARN) of the IAM roles to embed in the token.
+-- License Manager does not check whether the roles are in use.
+createToken_roleArns :: Lens.Lens' CreateToken (Prelude.Maybe [Prelude.Text])
+createToken_roleArns = Lens.lens (\CreateToken' {roleArns} -> roleArns) (\s@CreateToken' {} a -> s {roleArns = a} :: CreateToken) Prelude.. Lens.mapping Lens.coerced
+
+-- | Data specified by the caller to be included in the JWT token. The data
+-- is mapped to the amr claim of the JWT token.
+createToken_tokenProperties :: Lens.Lens' CreateToken (Prelude.Maybe [Prelude.Text])
+createToken_tokenProperties = Lens.lens (\CreateToken' {tokenProperties} -> tokenProperties) (\s@CreateToken' {} a -> s {tokenProperties = a} :: CreateToken) Prelude.. Lens.mapping Lens.coerced
+
+-- | Amazon Resource Name (ARN) of the license. The ARN is mapped to the aud
+-- claim of the JWT token.
+createToken_licenseArn :: Lens.Lens' CreateToken Prelude.Text
+createToken_licenseArn = Lens.lens (\CreateToken' {licenseArn} -> licenseArn) (\s@CreateToken' {} a -> s {licenseArn = a} :: CreateToken)
+
+-- | Idempotency token, valid for 10 minutes.
+createToken_clientToken :: Lens.Lens' CreateToken Prelude.Text
+createToken_clientToken = Lens.lens (\CreateToken' {clientToken} -> clientToken) (\s@CreateToken' {} a -> s {clientToken = a} :: CreateToken)
+
+instance Core.AWSRequest CreateToken where
+  type AWSResponse CreateToken = CreateTokenResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          CreateTokenResponse'
+            Prelude.<$> (x Data..?> "Token")
+            Prelude.<*> (x Data..?> "TokenId")
+            Prelude.<*> (x Data..?> "TokenType")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable CreateToken where
+  hashWithSalt _salt CreateToken' {..} =
+    _salt
+      `Prelude.hashWithSalt` expirationInDays
+      `Prelude.hashWithSalt` roleArns
+      `Prelude.hashWithSalt` tokenProperties
+      `Prelude.hashWithSalt` licenseArn
+      `Prelude.hashWithSalt` clientToken
+
+instance Prelude.NFData CreateToken where
+  rnf CreateToken' {..} =
+    Prelude.rnf expirationInDays
+      `Prelude.seq` Prelude.rnf roleArns
+      `Prelude.seq` Prelude.rnf tokenProperties
+      `Prelude.seq` Prelude.rnf licenseArn
+      `Prelude.seq` Prelude.rnf clientToken
+
+instance Data.ToHeaders CreateToken where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.CreateToken" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON CreateToken where
+  toJSON CreateToken' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("ExpirationInDays" Data..=)
+              Prelude.<$> expirationInDays,
+            ("RoleArns" Data..=) Prelude.<$> roleArns,
+            ("TokenProperties" Data..=)
+              Prelude.<$> tokenProperties,
+            Prelude.Just ("LicenseArn" Data..= licenseArn),
+            Prelude.Just ("ClientToken" Data..= clientToken)
+          ]
+      )
+
+instance Data.ToPath CreateToken where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery CreateToken where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newCreateTokenResponse' smart constructor.
+data CreateTokenResponse = CreateTokenResponse'
+  { -- | Refresh token, encoded as a JWT token.
+    token :: Prelude.Maybe Prelude.Text,
+    -- | Token ID.
+    tokenId :: Prelude.Maybe Prelude.Text,
+    -- | Token type.
+    tokenType :: Prelude.Maybe TokenType,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateTokenResponse' 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:
+--
+-- 'token', 'createTokenResponse_token' - Refresh token, encoded as a JWT token.
+--
+-- 'tokenId', 'createTokenResponse_tokenId' - Token ID.
+--
+-- 'tokenType', 'createTokenResponse_tokenType' - Token type.
+--
+-- 'httpStatus', 'createTokenResponse_httpStatus' - The response's http status code.
+newCreateTokenResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  CreateTokenResponse
+newCreateTokenResponse pHttpStatus_ =
+  CreateTokenResponse'
+    { token = Prelude.Nothing,
+      tokenId = Prelude.Nothing,
+      tokenType = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Refresh token, encoded as a JWT token.
+createTokenResponse_token :: Lens.Lens' CreateTokenResponse (Prelude.Maybe Prelude.Text)
+createTokenResponse_token = Lens.lens (\CreateTokenResponse' {token} -> token) (\s@CreateTokenResponse' {} a -> s {token = a} :: CreateTokenResponse)
+
+-- | Token ID.
+createTokenResponse_tokenId :: Lens.Lens' CreateTokenResponse (Prelude.Maybe Prelude.Text)
+createTokenResponse_tokenId = Lens.lens (\CreateTokenResponse' {tokenId} -> tokenId) (\s@CreateTokenResponse' {} a -> s {tokenId = a} :: CreateTokenResponse)
+
+-- | Token type.
+createTokenResponse_tokenType :: Lens.Lens' CreateTokenResponse (Prelude.Maybe TokenType)
+createTokenResponse_tokenType = Lens.lens (\CreateTokenResponse' {tokenType} -> tokenType) (\s@CreateTokenResponse' {} a -> s {tokenType = a} :: CreateTokenResponse)
+
+-- | The response's http status code.
+createTokenResponse_httpStatus :: Lens.Lens' CreateTokenResponse Prelude.Int
+createTokenResponse_httpStatus = Lens.lens (\CreateTokenResponse' {httpStatus} -> httpStatus) (\s@CreateTokenResponse' {} a -> s {httpStatus = a} :: CreateTokenResponse)
+
+instance Prelude.NFData CreateTokenResponse where
+  rnf CreateTokenResponse' {..} =
+    Prelude.rnf token
+      `Prelude.seq` Prelude.rnf tokenId
+      `Prelude.seq` Prelude.rnf tokenType
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/DeleteGrant.hs b/gen/Amazonka/LicenseManager/DeleteGrant.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/DeleteGrant.hs
@@ -0,0 +1,222 @@
+{-# 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.LicenseManager.DeleteGrant
+-- 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 the specified grant.
+module Amazonka.LicenseManager.DeleteGrant
+  ( -- * Creating a Request
+    DeleteGrant (..),
+    newDeleteGrant,
+
+    -- * Request Lenses
+    deleteGrant_statusReason,
+    deleteGrant_grantArn,
+    deleteGrant_version,
+
+    -- * Destructuring the Response
+    DeleteGrantResponse (..),
+    newDeleteGrantResponse,
+
+    -- * Response Lenses
+    deleteGrantResponse_grantArn,
+    deleteGrantResponse_status,
+    deleteGrantResponse_version,
+    deleteGrantResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDeleteGrant' smart constructor.
+data DeleteGrant = DeleteGrant'
+  { -- | The Status reason for the delete request.
+    statusReason :: Prelude.Maybe Prelude.Text,
+    -- | Amazon Resource Name (ARN) of the grant.
+    grantArn :: Prelude.Text,
+    -- | Current version of the grant.
+    version :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteGrant' 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:
+--
+-- 'statusReason', 'deleteGrant_statusReason' - The Status reason for the delete request.
+--
+-- 'grantArn', 'deleteGrant_grantArn' - Amazon Resource Name (ARN) of the grant.
+--
+-- 'version', 'deleteGrant_version' - Current version of the grant.
+newDeleteGrant ::
+  -- | 'grantArn'
+  Prelude.Text ->
+  -- | 'version'
+  Prelude.Text ->
+  DeleteGrant
+newDeleteGrant pGrantArn_ pVersion_ =
+  DeleteGrant'
+    { statusReason = Prelude.Nothing,
+      grantArn = pGrantArn_,
+      version = pVersion_
+    }
+
+-- | The Status reason for the delete request.
+deleteGrant_statusReason :: Lens.Lens' DeleteGrant (Prelude.Maybe Prelude.Text)
+deleteGrant_statusReason = Lens.lens (\DeleteGrant' {statusReason} -> statusReason) (\s@DeleteGrant' {} a -> s {statusReason = a} :: DeleteGrant)
+
+-- | Amazon Resource Name (ARN) of the grant.
+deleteGrant_grantArn :: Lens.Lens' DeleteGrant Prelude.Text
+deleteGrant_grantArn = Lens.lens (\DeleteGrant' {grantArn} -> grantArn) (\s@DeleteGrant' {} a -> s {grantArn = a} :: DeleteGrant)
+
+-- | Current version of the grant.
+deleteGrant_version :: Lens.Lens' DeleteGrant Prelude.Text
+deleteGrant_version = Lens.lens (\DeleteGrant' {version} -> version) (\s@DeleteGrant' {} a -> s {version = a} :: DeleteGrant)
+
+instance Core.AWSRequest DeleteGrant where
+  type AWSResponse DeleteGrant = DeleteGrantResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          DeleteGrantResponse'
+            Prelude.<$> (x Data..?> "GrantArn")
+            Prelude.<*> (x Data..?> "Status")
+            Prelude.<*> (x Data..?> "Version")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable DeleteGrant where
+  hashWithSalt _salt DeleteGrant' {..} =
+    _salt
+      `Prelude.hashWithSalt` statusReason
+      `Prelude.hashWithSalt` grantArn
+      `Prelude.hashWithSalt` version
+
+instance Prelude.NFData DeleteGrant where
+  rnf DeleteGrant' {..} =
+    Prelude.rnf statusReason
+      `Prelude.seq` Prelude.rnf grantArn
+      `Prelude.seq` Prelude.rnf version
+
+instance Data.ToHeaders DeleteGrant where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.DeleteGrant" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON DeleteGrant where
+  toJSON DeleteGrant' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("StatusReason" Data..=) Prelude.<$> statusReason,
+            Prelude.Just ("GrantArn" Data..= grantArn),
+            Prelude.Just ("Version" Data..= version)
+          ]
+      )
+
+instance Data.ToPath DeleteGrant where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery DeleteGrant where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDeleteGrantResponse' smart constructor.
+data DeleteGrantResponse = DeleteGrantResponse'
+  { -- | Grant ARN.
+    grantArn :: Prelude.Maybe Prelude.Text,
+    -- | Grant status.
+    status :: Prelude.Maybe GrantStatus,
+    -- | Grant version.
+    version :: 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 'DeleteGrantResponse' 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:
+--
+-- 'grantArn', 'deleteGrantResponse_grantArn' - Grant ARN.
+--
+-- 'status', 'deleteGrantResponse_status' - Grant status.
+--
+-- 'version', 'deleteGrantResponse_version' - Grant version.
+--
+-- 'httpStatus', 'deleteGrantResponse_httpStatus' - The response's http status code.
+newDeleteGrantResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DeleteGrantResponse
+newDeleteGrantResponse pHttpStatus_ =
+  DeleteGrantResponse'
+    { grantArn = Prelude.Nothing,
+      status = Prelude.Nothing,
+      version = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Grant ARN.
+deleteGrantResponse_grantArn :: Lens.Lens' DeleteGrantResponse (Prelude.Maybe Prelude.Text)
+deleteGrantResponse_grantArn = Lens.lens (\DeleteGrantResponse' {grantArn} -> grantArn) (\s@DeleteGrantResponse' {} a -> s {grantArn = a} :: DeleteGrantResponse)
+
+-- | Grant status.
+deleteGrantResponse_status :: Lens.Lens' DeleteGrantResponse (Prelude.Maybe GrantStatus)
+deleteGrantResponse_status = Lens.lens (\DeleteGrantResponse' {status} -> status) (\s@DeleteGrantResponse' {} a -> s {status = a} :: DeleteGrantResponse)
+
+-- | Grant version.
+deleteGrantResponse_version :: Lens.Lens' DeleteGrantResponse (Prelude.Maybe Prelude.Text)
+deleteGrantResponse_version = Lens.lens (\DeleteGrantResponse' {version} -> version) (\s@DeleteGrantResponse' {} a -> s {version = a} :: DeleteGrantResponse)
+
+-- | The response's http status code.
+deleteGrantResponse_httpStatus :: Lens.Lens' DeleteGrantResponse Prelude.Int
+deleteGrantResponse_httpStatus = Lens.lens (\DeleteGrantResponse' {httpStatus} -> httpStatus) (\s@DeleteGrantResponse' {} a -> s {httpStatus = a} :: DeleteGrantResponse)
+
+instance Prelude.NFData DeleteGrantResponse where
+  rnf DeleteGrantResponse' {..} =
+    Prelude.rnf grantArn
+      `Prelude.seq` Prelude.rnf status
+      `Prelude.seq` Prelude.rnf version
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/DeleteLicense.hs b/gen/Amazonka/LicenseManager/DeleteLicense.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/DeleteLicense.hs
@@ -0,0 +1,201 @@
+{-# 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.LicenseManager.DeleteLicense
+-- 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 the specified license.
+module Amazonka.LicenseManager.DeleteLicense
+  ( -- * Creating a Request
+    DeleteLicense (..),
+    newDeleteLicense,
+
+    -- * Request Lenses
+    deleteLicense_licenseArn,
+    deleteLicense_sourceVersion,
+
+    -- * Destructuring the Response
+    DeleteLicenseResponse (..),
+    newDeleteLicenseResponse,
+
+    -- * Response Lenses
+    deleteLicenseResponse_deletionDate,
+    deleteLicenseResponse_status,
+    deleteLicenseResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDeleteLicense' smart constructor.
+data DeleteLicense = DeleteLicense'
+  { -- | Amazon Resource Name (ARN) of the license.
+    licenseArn :: Prelude.Text,
+    -- | Current version of the license.
+    sourceVersion :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteLicense' 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:
+--
+-- 'licenseArn', 'deleteLicense_licenseArn' - Amazon Resource Name (ARN) of the license.
+--
+-- 'sourceVersion', 'deleteLicense_sourceVersion' - Current version of the license.
+newDeleteLicense ::
+  -- | 'licenseArn'
+  Prelude.Text ->
+  -- | 'sourceVersion'
+  Prelude.Text ->
+  DeleteLicense
+newDeleteLicense pLicenseArn_ pSourceVersion_ =
+  DeleteLicense'
+    { licenseArn = pLicenseArn_,
+      sourceVersion = pSourceVersion_
+    }
+
+-- | Amazon Resource Name (ARN) of the license.
+deleteLicense_licenseArn :: Lens.Lens' DeleteLicense Prelude.Text
+deleteLicense_licenseArn = Lens.lens (\DeleteLicense' {licenseArn} -> licenseArn) (\s@DeleteLicense' {} a -> s {licenseArn = a} :: DeleteLicense)
+
+-- | Current version of the license.
+deleteLicense_sourceVersion :: Lens.Lens' DeleteLicense Prelude.Text
+deleteLicense_sourceVersion = Lens.lens (\DeleteLicense' {sourceVersion} -> sourceVersion) (\s@DeleteLicense' {} a -> s {sourceVersion = a} :: DeleteLicense)
+
+instance Core.AWSRequest DeleteLicense where
+  type
+    AWSResponse DeleteLicense =
+      DeleteLicenseResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          DeleteLicenseResponse'
+            Prelude.<$> (x Data..?> "DeletionDate")
+            Prelude.<*> (x Data..?> "Status")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable DeleteLicense where
+  hashWithSalt _salt DeleteLicense' {..} =
+    _salt
+      `Prelude.hashWithSalt` licenseArn
+      `Prelude.hashWithSalt` sourceVersion
+
+instance Prelude.NFData DeleteLicense where
+  rnf DeleteLicense' {..} =
+    Prelude.rnf licenseArn
+      `Prelude.seq` Prelude.rnf sourceVersion
+
+instance Data.ToHeaders DeleteLicense where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.DeleteLicense" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON DeleteLicense where
+  toJSON DeleteLicense' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just ("LicenseArn" Data..= licenseArn),
+            Prelude.Just
+              ("SourceVersion" Data..= sourceVersion)
+          ]
+      )
+
+instance Data.ToPath DeleteLicense where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery DeleteLicense where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDeleteLicenseResponse' smart constructor.
+data DeleteLicenseResponse = DeleteLicenseResponse'
+  { -- | Date when the license is deleted.
+    deletionDate :: Prelude.Maybe Prelude.Text,
+    -- | License status.
+    status :: Prelude.Maybe LicenseDeletionStatus,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteLicenseResponse' 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:
+--
+-- 'deletionDate', 'deleteLicenseResponse_deletionDate' - Date when the license is deleted.
+--
+-- 'status', 'deleteLicenseResponse_status' - License status.
+--
+-- 'httpStatus', 'deleteLicenseResponse_httpStatus' - The response's http status code.
+newDeleteLicenseResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DeleteLicenseResponse
+newDeleteLicenseResponse pHttpStatus_ =
+  DeleteLicenseResponse'
+    { deletionDate =
+        Prelude.Nothing,
+      status = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Date when the license is deleted.
+deleteLicenseResponse_deletionDate :: Lens.Lens' DeleteLicenseResponse (Prelude.Maybe Prelude.Text)
+deleteLicenseResponse_deletionDate = Lens.lens (\DeleteLicenseResponse' {deletionDate} -> deletionDate) (\s@DeleteLicenseResponse' {} a -> s {deletionDate = a} :: DeleteLicenseResponse)
+
+-- | License status.
+deleteLicenseResponse_status :: Lens.Lens' DeleteLicenseResponse (Prelude.Maybe LicenseDeletionStatus)
+deleteLicenseResponse_status = Lens.lens (\DeleteLicenseResponse' {status} -> status) (\s@DeleteLicenseResponse' {} a -> s {status = a} :: DeleteLicenseResponse)
+
+-- | The response's http status code.
+deleteLicenseResponse_httpStatus :: Lens.Lens' DeleteLicenseResponse Prelude.Int
+deleteLicenseResponse_httpStatus = Lens.lens (\DeleteLicenseResponse' {httpStatus} -> httpStatus) (\s@DeleteLicenseResponse' {} a -> s {httpStatus = a} :: DeleteLicenseResponse)
+
+instance Prelude.NFData DeleteLicenseResponse where
+  rnf DeleteLicenseResponse' {..} =
+    Prelude.rnf deletionDate
+      `Prelude.seq` Prelude.rnf status
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/DeleteLicenseConfiguration.hs b/gen/Amazonka/LicenseManager/DeleteLicenseConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/DeleteLicenseConfiguration.hs
@@ -0,0 +1,171 @@
+{-# 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.LicenseManager.DeleteLicenseConfiguration
+-- 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 the specified license configuration.
+--
+-- You cannot delete a license configuration that is in use.
+module Amazonka.LicenseManager.DeleteLicenseConfiguration
+  ( -- * Creating a Request
+    DeleteLicenseConfiguration (..),
+    newDeleteLicenseConfiguration,
+
+    -- * Request Lenses
+    deleteLicenseConfiguration_licenseConfigurationArn,
+
+    -- * Destructuring the Response
+    DeleteLicenseConfigurationResponse (..),
+    newDeleteLicenseConfigurationResponse,
+
+    -- * Response Lenses
+    deleteLicenseConfigurationResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDeleteLicenseConfiguration' smart constructor.
+data DeleteLicenseConfiguration = DeleteLicenseConfiguration'
+  { -- | ID of the license configuration.
+    licenseConfigurationArn :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteLicenseConfiguration' 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:
+--
+-- 'licenseConfigurationArn', 'deleteLicenseConfiguration_licenseConfigurationArn' - ID of the license configuration.
+newDeleteLicenseConfiguration ::
+  -- | 'licenseConfigurationArn'
+  Prelude.Text ->
+  DeleteLicenseConfiguration
+newDeleteLicenseConfiguration
+  pLicenseConfigurationArn_ =
+    DeleteLicenseConfiguration'
+      { licenseConfigurationArn =
+          pLicenseConfigurationArn_
+      }
+
+-- | ID of the license configuration.
+deleteLicenseConfiguration_licenseConfigurationArn :: Lens.Lens' DeleteLicenseConfiguration Prelude.Text
+deleteLicenseConfiguration_licenseConfigurationArn = Lens.lens (\DeleteLicenseConfiguration' {licenseConfigurationArn} -> licenseConfigurationArn) (\s@DeleteLicenseConfiguration' {} a -> s {licenseConfigurationArn = a} :: DeleteLicenseConfiguration)
+
+instance Core.AWSRequest DeleteLicenseConfiguration where
+  type
+    AWSResponse DeleteLicenseConfiguration =
+      DeleteLicenseConfigurationResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveEmpty
+      ( \s h x ->
+          DeleteLicenseConfigurationResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable DeleteLicenseConfiguration where
+  hashWithSalt _salt DeleteLicenseConfiguration' {..} =
+    _salt
+      `Prelude.hashWithSalt` licenseConfigurationArn
+
+instance Prelude.NFData DeleteLicenseConfiguration where
+  rnf DeleteLicenseConfiguration' {..} =
+    Prelude.rnf licenseConfigurationArn
+
+instance Data.ToHeaders DeleteLicenseConfiguration where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.DeleteLicenseConfiguration" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON DeleteLicenseConfiguration where
+  toJSON DeleteLicenseConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ( "LicenseConfigurationArn"
+                  Data..= licenseConfigurationArn
+              )
+          ]
+      )
+
+instance Data.ToPath DeleteLicenseConfiguration where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery DeleteLicenseConfiguration where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDeleteLicenseConfigurationResponse' smart constructor.
+data DeleteLicenseConfigurationResponse = DeleteLicenseConfigurationResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteLicenseConfigurationResponse' 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', 'deleteLicenseConfigurationResponse_httpStatus' - The response's http status code.
+newDeleteLicenseConfigurationResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DeleteLicenseConfigurationResponse
+newDeleteLicenseConfigurationResponse pHttpStatus_ =
+  DeleteLicenseConfigurationResponse'
+    { httpStatus =
+        pHttpStatus_
+    }
+
+-- | The response's http status code.
+deleteLicenseConfigurationResponse_httpStatus :: Lens.Lens' DeleteLicenseConfigurationResponse Prelude.Int
+deleteLicenseConfigurationResponse_httpStatus = Lens.lens (\DeleteLicenseConfigurationResponse' {httpStatus} -> httpStatus) (\s@DeleteLicenseConfigurationResponse' {} a -> s {httpStatus = a} :: DeleteLicenseConfigurationResponse)
+
+instance
+  Prelude.NFData
+    DeleteLicenseConfigurationResponse
+  where
+  rnf DeleteLicenseConfigurationResponse' {..} =
+    Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/DeleteLicenseManagerReportGenerator.hs b/gen/Amazonka/LicenseManager/DeleteLicenseManagerReportGenerator.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/DeleteLicenseManagerReportGenerator.hs
@@ -0,0 +1,197 @@
+{-# 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.LicenseManager.DeleteLicenseManagerReportGenerator
+-- 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 the specified report generator.
+--
+-- This action deletes the report generator, which stops it from generating
+-- future reports. The action cannot be reversed. It has no effect on the
+-- previous reports from this generator.
+module Amazonka.LicenseManager.DeleteLicenseManagerReportGenerator
+  ( -- * Creating a Request
+    DeleteLicenseManagerReportGenerator (..),
+    newDeleteLicenseManagerReportGenerator,
+
+    -- * Request Lenses
+    deleteLicenseManagerReportGenerator_licenseManagerReportGeneratorArn,
+
+    -- * Destructuring the Response
+    DeleteLicenseManagerReportGeneratorResponse (..),
+    newDeleteLicenseManagerReportGeneratorResponse,
+
+    -- * Response Lenses
+    deleteLicenseManagerReportGeneratorResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDeleteLicenseManagerReportGenerator' smart constructor.
+data DeleteLicenseManagerReportGenerator = DeleteLicenseManagerReportGenerator'
+  { -- | Amazon Resource Name (ARN) of the report generator to be deleted.
+    licenseManagerReportGeneratorArn :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteLicenseManagerReportGenerator' 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:
+--
+-- 'licenseManagerReportGeneratorArn', 'deleteLicenseManagerReportGenerator_licenseManagerReportGeneratorArn' - Amazon Resource Name (ARN) of the report generator to be deleted.
+newDeleteLicenseManagerReportGenerator ::
+  -- | 'licenseManagerReportGeneratorArn'
+  Prelude.Text ->
+  DeleteLicenseManagerReportGenerator
+newDeleteLicenseManagerReportGenerator
+  pLicenseManagerReportGeneratorArn_ =
+    DeleteLicenseManagerReportGenerator'
+      { licenseManagerReportGeneratorArn =
+          pLicenseManagerReportGeneratorArn_
+      }
+
+-- | Amazon Resource Name (ARN) of the report generator to be deleted.
+deleteLicenseManagerReportGenerator_licenseManagerReportGeneratorArn :: Lens.Lens' DeleteLicenseManagerReportGenerator Prelude.Text
+deleteLicenseManagerReportGenerator_licenseManagerReportGeneratorArn = Lens.lens (\DeleteLicenseManagerReportGenerator' {licenseManagerReportGeneratorArn} -> licenseManagerReportGeneratorArn) (\s@DeleteLicenseManagerReportGenerator' {} a -> s {licenseManagerReportGeneratorArn = a} :: DeleteLicenseManagerReportGenerator)
+
+instance
+  Core.AWSRequest
+    DeleteLicenseManagerReportGenerator
+  where
+  type
+    AWSResponse DeleteLicenseManagerReportGenerator =
+      DeleteLicenseManagerReportGeneratorResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveEmpty
+      ( \s h x ->
+          DeleteLicenseManagerReportGeneratorResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    DeleteLicenseManagerReportGenerator
+  where
+  hashWithSalt
+    _salt
+    DeleteLicenseManagerReportGenerator' {..} =
+      _salt
+        `Prelude.hashWithSalt` licenseManagerReportGeneratorArn
+
+instance
+  Prelude.NFData
+    DeleteLicenseManagerReportGenerator
+  where
+  rnf DeleteLicenseManagerReportGenerator' {..} =
+    Prelude.rnf licenseManagerReportGeneratorArn
+
+instance
+  Data.ToHeaders
+    DeleteLicenseManagerReportGenerator
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.DeleteLicenseManagerReportGenerator" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    DeleteLicenseManagerReportGenerator
+  where
+  toJSON DeleteLicenseManagerReportGenerator' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ( "LicenseManagerReportGeneratorArn"
+                  Data..= licenseManagerReportGeneratorArn
+              )
+          ]
+      )
+
+instance
+  Data.ToPath
+    DeleteLicenseManagerReportGenerator
+  where
+  toPath = Prelude.const "/"
+
+instance
+  Data.ToQuery
+    DeleteLicenseManagerReportGenerator
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDeleteLicenseManagerReportGeneratorResponse' smart constructor.
+data DeleteLicenseManagerReportGeneratorResponse = DeleteLicenseManagerReportGeneratorResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteLicenseManagerReportGeneratorResponse' 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', 'deleteLicenseManagerReportGeneratorResponse_httpStatus' - The response's http status code.
+newDeleteLicenseManagerReportGeneratorResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DeleteLicenseManagerReportGeneratorResponse
+newDeleteLicenseManagerReportGeneratorResponse
+  pHttpStatus_ =
+    DeleteLicenseManagerReportGeneratorResponse'
+      { httpStatus =
+          pHttpStatus_
+      }
+
+-- | The response's http status code.
+deleteLicenseManagerReportGeneratorResponse_httpStatus :: Lens.Lens' DeleteLicenseManagerReportGeneratorResponse Prelude.Int
+deleteLicenseManagerReportGeneratorResponse_httpStatus = Lens.lens (\DeleteLicenseManagerReportGeneratorResponse' {httpStatus} -> httpStatus) (\s@DeleteLicenseManagerReportGeneratorResponse' {} a -> s {httpStatus = a} :: DeleteLicenseManagerReportGeneratorResponse)
+
+instance
+  Prelude.NFData
+    DeleteLicenseManagerReportGeneratorResponse
+  where
+  rnf DeleteLicenseManagerReportGeneratorResponse' {..} =
+    Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/DeleteToken.hs b/gen/Amazonka/LicenseManager/DeleteToken.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/DeleteToken.hs
@@ -0,0 +1,150 @@
+{-# 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.LicenseManager.DeleteToken
+-- 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 the specified token. Must be called in the license home Region.
+module Amazonka.LicenseManager.DeleteToken
+  ( -- * Creating a Request
+    DeleteToken (..),
+    newDeleteToken,
+
+    -- * Request Lenses
+    deleteToken_tokenId,
+
+    -- * Destructuring the Response
+    DeleteTokenResponse (..),
+    newDeleteTokenResponse,
+
+    -- * Response Lenses
+    deleteTokenResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDeleteToken' smart constructor.
+data DeleteToken = DeleteToken'
+  { -- | Token ID.
+    tokenId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteToken' 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:
+--
+-- 'tokenId', 'deleteToken_tokenId' - Token ID.
+newDeleteToken ::
+  -- | 'tokenId'
+  Prelude.Text ->
+  DeleteToken
+newDeleteToken pTokenId_ =
+  DeleteToken' {tokenId = pTokenId_}
+
+-- | Token ID.
+deleteToken_tokenId :: Lens.Lens' DeleteToken Prelude.Text
+deleteToken_tokenId = Lens.lens (\DeleteToken' {tokenId} -> tokenId) (\s@DeleteToken' {} a -> s {tokenId = a} :: DeleteToken)
+
+instance Core.AWSRequest DeleteToken where
+  type AWSResponse DeleteToken = DeleteTokenResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveEmpty
+      ( \s h x ->
+          DeleteTokenResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable DeleteToken where
+  hashWithSalt _salt DeleteToken' {..} =
+    _salt `Prelude.hashWithSalt` tokenId
+
+instance Prelude.NFData DeleteToken where
+  rnf DeleteToken' {..} = Prelude.rnf tokenId
+
+instance Data.ToHeaders DeleteToken where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.DeleteToken" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON DeleteToken where
+  toJSON DeleteToken' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [Prelude.Just ("TokenId" Data..= tokenId)]
+      )
+
+instance Data.ToPath DeleteToken where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery DeleteToken where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDeleteTokenResponse' smart constructor.
+data DeleteTokenResponse = DeleteTokenResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteTokenResponse' 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', 'deleteTokenResponse_httpStatus' - The response's http status code.
+newDeleteTokenResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DeleteTokenResponse
+newDeleteTokenResponse pHttpStatus_ =
+  DeleteTokenResponse' {httpStatus = pHttpStatus_}
+
+-- | The response's http status code.
+deleteTokenResponse_httpStatus :: Lens.Lens' DeleteTokenResponse Prelude.Int
+deleteTokenResponse_httpStatus = Lens.lens (\DeleteTokenResponse' {httpStatus} -> httpStatus) (\s@DeleteTokenResponse' {} a -> s {httpStatus = a} :: DeleteTokenResponse)
+
+instance Prelude.NFData DeleteTokenResponse where
+  rnf DeleteTokenResponse' {..} = Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/ExtendLicenseConsumption.hs b/gen/Amazonka/LicenseManager/ExtendLicenseConsumption.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/ExtendLicenseConsumption.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.LicenseManager.ExtendLicenseConsumption
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Extends the expiration date for license consumption.
+module Amazonka.LicenseManager.ExtendLicenseConsumption
+  ( -- * Creating a Request
+    ExtendLicenseConsumption (..),
+    newExtendLicenseConsumption,
+
+    -- * Request Lenses
+    extendLicenseConsumption_dryRun,
+    extendLicenseConsumption_licenseConsumptionToken,
+
+    -- * Destructuring the Response
+    ExtendLicenseConsumptionResponse (..),
+    newExtendLicenseConsumptionResponse,
+
+    -- * Response Lenses
+    extendLicenseConsumptionResponse_expiration,
+    extendLicenseConsumptionResponse_licenseConsumptionToken,
+    extendLicenseConsumptionResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newExtendLicenseConsumption' smart constructor.
+data ExtendLicenseConsumption = ExtendLicenseConsumption'
+  { -- | Checks whether you have the required permissions for the action, without
+    -- actually making the request. Provides an error response if you do not
+    -- have the required permissions.
+    dryRun :: Prelude.Maybe Prelude.Bool,
+    -- | License consumption token.
+    licenseConsumptionToken :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ExtendLicenseConsumption' 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:
+--
+-- 'dryRun', 'extendLicenseConsumption_dryRun' - Checks whether you have the required permissions for the action, without
+-- actually making the request. Provides an error response if you do not
+-- have the required permissions.
+--
+-- 'licenseConsumptionToken', 'extendLicenseConsumption_licenseConsumptionToken' - License consumption token.
+newExtendLicenseConsumption ::
+  -- | 'licenseConsumptionToken'
+  Prelude.Text ->
+  ExtendLicenseConsumption
+newExtendLicenseConsumption pLicenseConsumptionToken_ =
+  ExtendLicenseConsumption'
+    { dryRun = Prelude.Nothing,
+      licenseConsumptionToken =
+        pLicenseConsumptionToken_
+    }
+
+-- | Checks whether you have the required permissions for the action, without
+-- actually making the request. Provides an error response if you do not
+-- have the required permissions.
+extendLicenseConsumption_dryRun :: Lens.Lens' ExtendLicenseConsumption (Prelude.Maybe Prelude.Bool)
+extendLicenseConsumption_dryRun = Lens.lens (\ExtendLicenseConsumption' {dryRun} -> dryRun) (\s@ExtendLicenseConsumption' {} a -> s {dryRun = a} :: ExtendLicenseConsumption)
+
+-- | License consumption token.
+extendLicenseConsumption_licenseConsumptionToken :: Lens.Lens' ExtendLicenseConsumption Prelude.Text
+extendLicenseConsumption_licenseConsumptionToken = Lens.lens (\ExtendLicenseConsumption' {licenseConsumptionToken} -> licenseConsumptionToken) (\s@ExtendLicenseConsumption' {} a -> s {licenseConsumptionToken = a} :: ExtendLicenseConsumption)
+
+instance Core.AWSRequest ExtendLicenseConsumption where
+  type
+    AWSResponse ExtendLicenseConsumption =
+      ExtendLicenseConsumptionResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ExtendLicenseConsumptionResponse'
+            Prelude.<$> (x Data..?> "Expiration")
+            Prelude.<*> (x Data..?> "LicenseConsumptionToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable ExtendLicenseConsumption where
+  hashWithSalt _salt ExtendLicenseConsumption' {..} =
+    _salt
+      `Prelude.hashWithSalt` dryRun
+      `Prelude.hashWithSalt` licenseConsumptionToken
+
+instance Prelude.NFData ExtendLicenseConsumption where
+  rnf ExtendLicenseConsumption' {..} =
+    Prelude.rnf dryRun
+      `Prelude.seq` Prelude.rnf licenseConsumptionToken
+
+instance Data.ToHeaders ExtendLicenseConsumption where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.ExtendLicenseConsumption" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON ExtendLicenseConsumption where
+  toJSON ExtendLicenseConsumption' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("DryRun" Data..=) Prelude.<$> dryRun,
+            Prelude.Just
+              ( "LicenseConsumptionToken"
+                  Data..= licenseConsumptionToken
+              )
+          ]
+      )
+
+instance Data.ToPath ExtendLicenseConsumption where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery ExtendLicenseConsumption where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newExtendLicenseConsumptionResponse' smart constructor.
+data ExtendLicenseConsumptionResponse = ExtendLicenseConsumptionResponse'
+  { -- | Date and time at which the license consumption expires.
+    expiration :: Prelude.Maybe Prelude.Text,
+    -- | License consumption token.
+    licenseConsumptionToken :: 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 'ExtendLicenseConsumptionResponse' 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:
+--
+-- 'expiration', 'extendLicenseConsumptionResponse_expiration' - Date and time at which the license consumption expires.
+--
+-- 'licenseConsumptionToken', 'extendLicenseConsumptionResponse_licenseConsumptionToken' - License consumption token.
+--
+-- 'httpStatus', 'extendLicenseConsumptionResponse_httpStatus' - The response's http status code.
+newExtendLicenseConsumptionResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ExtendLicenseConsumptionResponse
+newExtendLicenseConsumptionResponse pHttpStatus_ =
+  ExtendLicenseConsumptionResponse'
+    { expiration =
+        Prelude.Nothing,
+      licenseConsumptionToken = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Date and time at which the license consumption expires.
+extendLicenseConsumptionResponse_expiration :: Lens.Lens' ExtendLicenseConsumptionResponse (Prelude.Maybe Prelude.Text)
+extendLicenseConsumptionResponse_expiration = Lens.lens (\ExtendLicenseConsumptionResponse' {expiration} -> expiration) (\s@ExtendLicenseConsumptionResponse' {} a -> s {expiration = a} :: ExtendLicenseConsumptionResponse)
+
+-- | License consumption token.
+extendLicenseConsumptionResponse_licenseConsumptionToken :: Lens.Lens' ExtendLicenseConsumptionResponse (Prelude.Maybe Prelude.Text)
+extendLicenseConsumptionResponse_licenseConsumptionToken = Lens.lens (\ExtendLicenseConsumptionResponse' {licenseConsumptionToken} -> licenseConsumptionToken) (\s@ExtendLicenseConsumptionResponse' {} a -> s {licenseConsumptionToken = a} :: ExtendLicenseConsumptionResponse)
+
+-- | The response's http status code.
+extendLicenseConsumptionResponse_httpStatus :: Lens.Lens' ExtendLicenseConsumptionResponse Prelude.Int
+extendLicenseConsumptionResponse_httpStatus = Lens.lens (\ExtendLicenseConsumptionResponse' {httpStatus} -> httpStatus) (\s@ExtendLicenseConsumptionResponse' {} a -> s {httpStatus = a} :: ExtendLicenseConsumptionResponse)
+
+instance
+  Prelude.NFData
+    ExtendLicenseConsumptionResponse
+  where
+  rnf ExtendLicenseConsumptionResponse' {..} =
+    Prelude.rnf expiration
+      `Prelude.seq` Prelude.rnf licenseConsumptionToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/GetAccessToken.hs b/gen/Amazonka/LicenseManager/GetAccessToken.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/GetAccessToken.hs
@@ -0,0 +1,188 @@
+{-# 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.LicenseManager.GetAccessToken
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets a temporary access token to use with AssumeRoleWithWebIdentity.
+-- Access tokens are valid for one hour.
+module Amazonka.LicenseManager.GetAccessToken
+  ( -- * Creating a Request
+    GetAccessToken (..),
+    newGetAccessToken,
+
+    -- * Request Lenses
+    getAccessToken_tokenProperties,
+    getAccessToken_token,
+
+    -- * Destructuring the Response
+    GetAccessTokenResponse (..),
+    newGetAccessTokenResponse,
+
+    -- * Response Lenses
+    getAccessTokenResponse_accessToken,
+    getAccessTokenResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newGetAccessToken' smart constructor.
+data GetAccessToken = GetAccessToken'
+  { -- | Token properties to validate against those present in the JWT token.
+    tokenProperties :: Prelude.Maybe [Prelude.Text],
+    -- | Refresh token, encoded as a JWT token.
+    token :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetAccessToken' 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:
+--
+-- 'tokenProperties', 'getAccessToken_tokenProperties' - Token properties to validate against those present in the JWT token.
+--
+-- 'token', 'getAccessToken_token' - Refresh token, encoded as a JWT token.
+newGetAccessToken ::
+  -- | 'token'
+  Prelude.Text ->
+  GetAccessToken
+newGetAccessToken pToken_ =
+  GetAccessToken'
+    { tokenProperties = Prelude.Nothing,
+      token = pToken_
+    }
+
+-- | Token properties to validate against those present in the JWT token.
+getAccessToken_tokenProperties :: Lens.Lens' GetAccessToken (Prelude.Maybe [Prelude.Text])
+getAccessToken_tokenProperties = Lens.lens (\GetAccessToken' {tokenProperties} -> tokenProperties) (\s@GetAccessToken' {} a -> s {tokenProperties = a} :: GetAccessToken) Prelude.. Lens.mapping Lens.coerced
+
+-- | Refresh token, encoded as a JWT token.
+getAccessToken_token :: Lens.Lens' GetAccessToken Prelude.Text
+getAccessToken_token = Lens.lens (\GetAccessToken' {token} -> token) (\s@GetAccessToken' {} a -> s {token = a} :: GetAccessToken)
+
+instance Core.AWSRequest GetAccessToken where
+  type
+    AWSResponse GetAccessToken =
+      GetAccessTokenResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetAccessTokenResponse'
+            Prelude.<$> (x Data..?> "AccessToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable GetAccessToken where
+  hashWithSalt _salt GetAccessToken' {..} =
+    _salt
+      `Prelude.hashWithSalt` tokenProperties
+      `Prelude.hashWithSalt` token
+
+instance Prelude.NFData GetAccessToken where
+  rnf GetAccessToken' {..} =
+    Prelude.rnf tokenProperties
+      `Prelude.seq` Prelude.rnf token
+
+instance Data.ToHeaders GetAccessToken where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.GetAccessToken" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON GetAccessToken where
+  toJSON GetAccessToken' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("TokenProperties" Data..=)
+              Prelude.<$> tokenProperties,
+            Prelude.Just ("Token" Data..= token)
+          ]
+      )
+
+instance Data.ToPath GetAccessToken where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery GetAccessToken where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetAccessTokenResponse' smart constructor.
+data GetAccessTokenResponse = GetAccessTokenResponse'
+  { -- | Temporary access token.
+    accessToken :: 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 'GetAccessTokenResponse' 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:
+--
+-- 'accessToken', 'getAccessTokenResponse_accessToken' - Temporary access token.
+--
+-- 'httpStatus', 'getAccessTokenResponse_httpStatus' - The response's http status code.
+newGetAccessTokenResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetAccessTokenResponse
+newGetAccessTokenResponse pHttpStatus_ =
+  GetAccessTokenResponse'
+    { accessToken =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Temporary access token.
+getAccessTokenResponse_accessToken :: Lens.Lens' GetAccessTokenResponse (Prelude.Maybe Prelude.Text)
+getAccessTokenResponse_accessToken = Lens.lens (\GetAccessTokenResponse' {accessToken} -> accessToken) (\s@GetAccessTokenResponse' {} a -> s {accessToken = a} :: GetAccessTokenResponse)
+
+-- | The response's http status code.
+getAccessTokenResponse_httpStatus :: Lens.Lens' GetAccessTokenResponse Prelude.Int
+getAccessTokenResponse_httpStatus = Lens.lens (\GetAccessTokenResponse' {httpStatus} -> httpStatus) (\s@GetAccessTokenResponse' {} a -> s {httpStatus = a} :: GetAccessTokenResponse)
+
+instance Prelude.NFData GetAccessTokenResponse where
+  rnf GetAccessTokenResponse' {..} =
+    Prelude.rnf accessToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/GetGrant.hs b/gen/Amazonka/LicenseManager/GetGrant.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/GetGrant.hs
@@ -0,0 +1,181 @@
+{-# 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.LicenseManager.GetGrant
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets detailed information about the specified grant.
+module Amazonka.LicenseManager.GetGrant
+  ( -- * Creating a Request
+    GetGrant (..),
+    newGetGrant,
+
+    -- * Request Lenses
+    getGrant_version,
+    getGrant_grantArn,
+
+    -- * Destructuring the Response
+    GetGrantResponse (..),
+    newGetGrantResponse,
+
+    -- * Response Lenses
+    getGrantResponse_grant,
+    getGrantResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newGetGrant' smart constructor.
+data GetGrant = GetGrant'
+  { -- | Grant version.
+    version :: Prelude.Maybe Prelude.Text,
+    -- | Amazon Resource Name (ARN) of the grant.
+    grantArn :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetGrant' 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:
+--
+-- 'version', 'getGrant_version' - Grant version.
+--
+-- 'grantArn', 'getGrant_grantArn' - Amazon Resource Name (ARN) of the grant.
+newGetGrant ::
+  -- | 'grantArn'
+  Prelude.Text ->
+  GetGrant
+newGetGrant pGrantArn_ =
+  GetGrant'
+    { version = Prelude.Nothing,
+      grantArn = pGrantArn_
+    }
+
+-- | Grant version.
+getGrant_version :: Lens.Lens' GetGrant (Prelude.Maybe Prelude.Text)
+getGrant_version = Lens.lens (\GetGrant' {version} -> version) (\s@GetGrant' {} a -> s {version = a} :: GetGrant)
+
+-- | Amazon Resource Name (ARN) of the grant.
+getGrant_grantArn :: Lens.Lens' GetGrant Prelude.Text
+getGrant_grantArn = Lens.lens (\GetGrant' {grantArn} -> grantArn) (\s@GetGrant' {} a -> s {grantArn = a} :: GetGrant)
+
+instance Core.AWSRequest GetGrant where
+  type AWSResponse GetGrant = GetGrantResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetGrantResponse'
+            Prelude.<$> (x Data..?> "Grant")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable GetGrant where
+  hashWithSalt _salt GetGrant' {..} =
+    _salt
+      `Prelude.hashWithSalt` version
+      `Prelude.hashWithSalt` grantArn
+
+instance Prelude.NFData GetGrant where
+  rnf GetGrant' {..} =
+    Prelude.rnf version
+      `Prelude.seq` Prelude.rnf grantArn
+
+instance Data.ToHeaders GetGrant where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ("AWSLicenseManager.GetGrant" :: Prelude.ByteString),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON GetGrant where
+  toJSON GetGrant' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("Version" Data..=) Prelude.<$> version,
+            Prelude.Just ("GrantArn" Data..= grantArn)
+          ]
+      )
+
+instance Data.ToPath GetGrant where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery GetGrant where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetGrantResponse' smart constructor.
+data GetGrantResponse = GetGrantResponse'
+  { -- | Grant details.
+    grant :: Prelude.Maybe Grant,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetGrantResponse' 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:
+--
+-- 'grant', 'getGrantResponse_grant' - Grant details.
+--
+-- 'httpStatus', 'getGrantResponse_httpStatus' - The response's http status code.
+newGetGrantResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetGrantResponse
+newGetGrantResponse pHttpStatus_ =
+  GetGrantResponse'
+    { grant = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Grant details.
+getGrantResponse_grant :: Lens.Lens' GetGrantResponse (Prelude.Maybe Grant)
+getGrantResponse_grant = Lens.lens (\GetGrantResponse' {grant} -> grant) (\s@GetGrantResponse' {} a -> s {grant = a} :: GetGrantResponse)
+
+-- | The response's http status code.
+getGrantResponse_httpStatus :: Lens.Lens' GetGrantResponse Prelude.Int
+getGrantResponse_httpStatus = Lens.lens (\GetGrantResponse' {httpStatus} -> httpStatus) (\s@GetGrantResponse' {} a -> s {httpStatus = a} :: GetGrantResponse)
+
+instance Prelude.NFData GetGrantResponse where
+  rnf GetGrantResponse' {..} =
+    Prelude.rnf grant
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/GetLicense.hs b/gen/Amazonka/LicenseManager/GetLicense.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/GetLicense.hs
@@ -0,0 +1,183 @@
+{-# 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.LicenseManager.GetLicense
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets detailed information about the specified license.
+module Amazonka.LicenseManager.GetLicense
+  ( -- * Creating a Request
+    GetLicense (..),
+    newGetLicense,
+
+    -- * Request Lenses
+    getLicense_version,
+    getLicense_licenseArn,
+
+    -- * Destructuring the Response
+    GetLicenseResponse (..),
+    newGetLicenseResponse,
+
+    -- * Response Lenses
+    getLicenseResponse_license,
+    getLicenseResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newGetLicense' smart constructor.
+data GetLicense = GetLicense'
+  { -- | License version.
+    version :: Prelude.Maybe Prelude.Text,
+    -- | Amazon Resource Name (ARN) of the license.
+    licenseArn :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetLicense' 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:
+--
+-- 'version', 'getLicense_version' - License version.
+--
+-- 'licenseArn', 'getLicense_licenseArn' - Amazon Resource Name (ARN) of the license.
+newGetLicense ::
+  -- | 'licenseArn'
+  Prelude.Text ->
+  GetLicense
+newGetLicense pLicenseArn_ =
+  GetLicense'
+    { version = Prelude.Nothing,
+      licenseArn = pLicenseArn_
+    }
+
+-- | License version.
+getLicense_version :: Lens.Lens' GetLicense (Prelude.Maybe Prelude.Text)
+getLicense_version = Lens.lens (\GetLicense' {version} -> version) (\s@GetLicense' {} a -> s {version = a} :: GetLicense)
+
+-- | Amazon Resource Name (ARN) of the license.
+getLicense_licenseArn :: Lens.Lens' GetLicense Prelude.Text
+getLicense_licenseArn = Lens.lens (\GetLicense' {licenseArn} -> licenseArn) (\s@GetLicense' {} a -> s {licenseArn = a} :: GetLicense)
+
+instance Core.AWSRequest GetLicense where
+  type AWSResponse GetLicense = GetLicenseResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetLicenseResponse'
+            Prelude.<$> (x Data..?> "License")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable GetLicense where
+  hashWithSalt _salt GetLicense' {..} =
+    _salt
+      `Prelude.hashWithSalt` version
+      `Prelude.hashWithSalt` licenseArn
+
+instance Prelude.NFData GetLicense where
+  rnf GetLicense' {..} =
+    Prelude.rnf version
+      `Prelude.seq` Prelude.rnf licenseArn
+
+instance Data.ToHeaders GetLicense where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.GetLicense" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON GetLicense where
+  toJSON GetLicense' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("Version" Data..=) Prelude.<$> version,
+            Prelude.Just ("LicenseArn" Data..= licenseArn)
+          ]
+      )
+
+instance Data.ToPath GetLicense where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery GetLicense where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetLicenseResponse' smart constructor.
+data GetLicenseResponse = GetLicenseResponse'
+  { -- | License details.
+    license :: Prelude.Maybe License,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetLicenseResponse' 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:
+--
+-- 'license', 'getLicenseResponse_license' - License details.
+--
+-- 'httpStatus', 'getLicenseResponse_httpStatus' - The response's http status code.
+newGetLicenseResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetLicenseResponse
+newGetLicenseResponse pHttpStatus_ =
+  GetLicenseResponse'
+    { license = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | License details.
+getLicenseResponse_license :: Lens.Lens' GetLicenseResponse (Prelude.Maybe License)
+getLicenseResponse_license = Lens.lens (\GetLicenseResponse' {license} -> license) (\s@GetLicenseResponse' {} a -> s {license = a} :: GetLicenseResponse)
+
+-- | The response's http status code.
+getLicenseResponse_httpStatus :: Lens.Lens' GetLicenseResponse Prelude.Int
+getLicenseResponse_httpStatus = Lens.lens (\GetLicenseResponse' {httpStatus} -> httpStatus) (\s@GetLicenseResponse' {} a -> s {httpStatus = a} :: GetLicenseResponse)
+
+instance Prelude.NFData GetLicenseResponse where
+  rnf GetLicenseResponse' {..} =
+    Prelude.rnf license
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/GetLicenseConfiguration.hs b/gen/Amazonka/LicenseManager/GetLicenseConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/GetLicenseConfiguration.hs
@@ -0,0 +1,383 @@
+{-# 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.LicenseManager.GetLicenseConfiguration
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets detailed information about the specified license configuration.
+module Amazonka.LicenseManager.GetLicenseConfiguration
+  ( -- * Creating a Request
+    GetLicenseConfiguration (..),
+    newGetLicenseConfiguration,
+
+    -- * Request Lenses
+    getLicenseConfiguration_licenseConfigurationArn,
+
+    -- * Destructuring the Response
+    GetLicenseConfigurationResponse (..),
+    newGetLicenseConfigurationResponse,
+
+    -- * Response Lenses
+    getLicenseConfigurationResponse_automatedDiscoveryInformation,
+    getLicenseConfigurationResponse_consumedLicenseSummaryList,
+    getLicenseConfigurationResponse_consumedLicenses,
+    getLicenseConfigurationResponse_description,
+    getLicenseConfigurationResponse_disassociateWhenNotFound,
+    getLicenseConfigurationResponse_licenseConfigurationArn,
+    getLicenseConfigurationResponse_licenseConfigurationId,
+    getLicenseConfigurationResponse_licenseCount,
+    getLicenseConfigurationResponse_licenseCountHardLimit,
+    getLicenseConfigurationResponse_licenseCountingType,
+    getLicenseConfigurationResponse_licenseRules,
+    getLicenseConfigurationResponse_managedResourceSummaryList,
+    getLicenseConfigurationResponse_name,
+    getLicenseConfigurationResponse_ownerAccountId,
+    getLicenseConfigurationResponse_productInformationList,
+    getLicenseConfigurationResponse_status,
+    getLicenseConfigurationResponse_tags,
+    getLicenseConfigurationResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newGetLicenseConfiguration' smart constructor.
+data GetLicenseConfiguration = GetLicenseConfiguration'
+  { -- | Amazon Resource Name (ARN) of the license configuration.
+    licenseConfigurationArn :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetLicenseConfiguration' 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:
+--
+-- 'licenseConfigurationArn', 'getLicenseConfiguration_licenseConfigurationArn' - Amazon Resource Name (ARN) of the license configuration.
+newGetLicenseConfiguration ::
+  -- | 'licenseConfigurationArn'
+  Prelude.Text ->
+  GetLicenseConfiguration
+newGetLicenseConfiguration pLicenseConfigurationArn_ =
+  GetLicenseConfiguration'
+    { licenseConfigurationArn =
+        pLicenseConfigurationArn_
+    }
+
+-- | Amazon Resource Name (ARN) of the license configuration.
+getLicenseConfiguration_licenseConfigurationArn :: Lens.Lens' GetLicenseConfiguration Prelude.Text
+getLicenseConfiguration_licenseConfigurationArn = Lens.lens (\GetLicenseConfiguration' {licenseConfigurationArn} -> licenseConfigurationArn) (\s@GetLicenseConfiguration' {} a -> s {licenseConfigurationArn = a} :: GetLicenseConfiguration)
+
+instance Core.AWSRequest GetLicenseConfiguration where
+  type
+    AWSResponse GetLicenseConfiguration =
+      GetLicenseConfigurationResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetLicenseConfigurationResponse'
+            Prelude.<$> (x Data..?> "AutomatedDiscoveryInformation")
+            Prelude.<*> ( x
+                            Data..?> "ConsumedLicenseSummaryList"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "ConsumedLicenses")
+            Prelude.<*> (x Data..?> "Description")
+            Prelude.<*> (x Data..?> "DisassociateWhenNotFound")
+            Prelude.<*> (x Data..?> "LicenseConfigurationArn")
+            Prelude.<*> (x Data..?> "LicenseConfigurationId")
+            Prelude.<*> (x Data..?> "LicenseCount")
+            Prelude.<*> (x Data..?> "LicenseCountHardLimit")
+            Prelude.<*> (x Data..?> "LicenseCountingType")
+            Prelude.<*> (x Data..?> "LicenseRules" Core..!@ Prelude.mempty)
+            Prelude.<*> ( x
+                            Data..?> "ManagedResourceSummaryList"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "Name")
+            Prelude.<*> (x Data..?> "OwnerAccountId")
+            Prelude.<*> ( x
+                            Data..?> "ProductInformationList"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "Status")
+            Prelude.<*> (x Data..?> "Tags" Core..!@ Prelude.mempty)
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable GetLicenseConfiguration where
+  hashWithSalt _salt GetLicenseConfiguration' {..} =
+    _salt
+      `Prelude.hashWithSalt` licenseConfigurationArn
+
+instance Prelude.NFData GetLicenseConfiguration where
+  rnf GetLicenseConfiguration' {..} =
+    Prelude.rnf licenseConfigurationArn
+
+instance Data.ToHeaders GetLicenseConfiguration where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.GetLicenseConfiguration" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON GetLicenseConfiguration where
+  toJSON GetLicenseConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ( "LicenseConfigurationArn"
+                  Data..= licenseConfigurationArn
+              )
+          ]
+      )
+
+instance Data.ToPath GetLicenseConfiguration where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery GetLicenseConfiguration where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetLicenseConfigurationResponse' smart constructor.
+data GetLicenseConfigurationResponse = GetLicenseConfigurationResponse'
+  { -- | Automated discovery information.
+    automatedDiscoveryInformation :: Prelude.Maybe AutomatedDiscoveryInformation,
+    -- | Summaries of the licenses consumed by resources.
+    consumedLicenseSummaryList :: Prelude.Maybe [ConsumedLicenseSummary],
+    -- | Number of licenses assigned to resources.
+    consumedLicenses :: Prelude.Maybe Prelude.Integer,
+    -- | Description of the license configuration.
+    description :: Prelude.Maybe Prelude.Text,
+    -- | When true, disassociates a resource when software is uninstalled.
+    disassociateWhenNotFound :: Prelude.Maybe Prelude.Bool,
+    -- | Amazon Resource Name (ARN) of the license configuration.
+    licenseConfigurationArn :: Prelude.Maybe Prelude.Text,
+    -- | Unique ID for the license configuration.
+    licenseConfigurationId :: Prelude.Maybe Prelude.Text,
+    -- | Number of available licenses.
+    licenseCount :: Prelude.Maybe Prelude.Integer,
+    -- | Sets the number of available licenses as a hard limit.
+    licenseCountHardLimit :: Prelude.Maybe Prelude.Bool,
+    -- | Dimension for which the licenses are counted.
+    licenseCountingType :: Prelude.Maybe LicenseCountingType,
+    -- | License rules.
+    licenseRules :: Prelude.Maybe [Prelude.Text],
+    -- | Summaries of the managed resources.
+    managedResourceSummaryList :: Prelude.Maybe [ManagedResourceSummary],
+    -- | Name of the license configuration.
+    name :: Prelude.Maybe Prelude.Text,
+    -- | Account ID of the owner of the license configuration.
+    ownerAccountId :: Prelude.Maybe Prelude.Text,
+    -- | Product information.
+    productInformationList :: Prelude.Maybe [ProductInformation],
+    -- | License configuration status.
+    status :: Prelude.Maybe Prelude.Text,
+    -- | Tags for the license configuration.
+    tags :: Prelude.Maybe [Tag],
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetLicenseConfigurationResponse' 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:
+--
+-- 'automatedDiscoveryInformation', 'getLicenseConfigurationResponse_automatedDiscoveryInformation' - Automated discovery information.
+--
+-- 'consumedLicenseSummaryList', 'getLicenseConfigurationResponse_consumedLicenseSummaryList' - Summaries of the licenses consumed by resources.
+--
+-- 'consumedLicenses', 'getLicenseConfigurationResponse_consumedLicenses' - Number of licenses assigned to resources.
+--
+-- 'description', 'getLicenseConfigurationResponse_description' - Description of the license configuration.
+--
+-- 'disassociateWhenNotFound', 'getLicenseConfigurationResponse_disassociateWhenNotFound' - When true, disassociates a resource when software is uninstalled.
+--
+-- 'licenseConfigurationArn', 'getLicenseConfigurationResponse_licenseConfigurationArn' - Amazon Resource Name (ARN) of the license configuration.
+--
+-- 'licenseConfigurationId', 'getLicenseConfigurationResponse_licenseConfigurationId' - Unique ID for the license configuration.
+--
+-- 'licenseCount', 'getLicenseConfigurationResponse_licenseCount' - Number of available licenses.
+--
+-- 'licenseCountHardLimit', 'getLicenseConfigurationResponse_licenseCountHardLimit' - Sets the number of available licenses as a hard limit.
+--
+-- 'licenseCountingType', 'getLicenseConfigurationResponse_licenseCountingType' - Dimension for which the licenses are counted.
+--
+-- 'licenseRules', 'getLicenseConfigurationResponse_licenseRules' - License rules.
+--
+-- 'managedResourceSummaryList', 'getLicenseConfigurationResponse_managedResourceSummaryList' - Summaries of the managed resources.
+--
+-- 'name', 'getLicenseConfigurationResponse_name' - Name of the license configuration.
+--
+-- 'ownerAccountId', 'getLicenseConfigurationResponse_ownerAccountId' - Account ID of the owner of the license configuration.
+--
+-- 'productInformationList', 'getLicenseConfigurationResponse_productInformationList' - Product information.
+--
+-- 'status', 'getLicenseConfigurationResponse_status' - License configuration status.
+--
+-- 'tags', 'getLicenseConfigurationResponse_tags' - Tags for the license configuration.
+--
+-- 'httpStatus', 'getLicenseConfigurationResponse_httpStatus' - The response's http status code.
+newGetLicenseConfigurationResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetLicenseConfigurationResponse
+newGetLicenseConfigurationResponse pHttpStatus_ =
+  GetLicenseConfigurationResponse'
+    { automatedDiscoveryInformation =
+        Prelude.Nothing,
+      consumedLicenseSummaryList =
+        Prelude.Nothing,
+      consumedLicenses = Prelude.Nothing,
+      description = Prelude.Nothing,
+      disassociateWhenNotFound = Prelude.Nothing,
+      licenseConfigurationArn = Prelude.Nothing,
+      licenseConfigurationId = Prelude.Nothing,
+      licenseCount = Prelude.Nothing,
+      licenseCountHardLimit = Prelude.Nothing,
+      licenseCountingType = Prelude.Nothing,
+      licenseRules = Prelude.Nothing,
+      managedResourceSummaryList =
+        Prelude.Nothing,
+      name = Prelude.Nothing,
+      ownerAccountId = Prelude.Nothing,
+      productInformationList = Prelude.Nothing,
+      status = Prelude.Nothing,
+      tags = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Automated discovery information.
+getLicenseConfigurationResponse_automatedDiscoveryInformation :: Lens.Lens' GetLicenseConfigurationResponse (Prelude.Maybe AutomatedDiscoveryInformation)
+getLicenseConfigurationResponse_automatedDiscoveryInformation = Lens.lens (\GetLicenseConfigurationResponse' {automatedDiscoveryInformation} -> automatedDiscoveryInformation) (\s@GetLicenseConfigurationResponse' {} a -> s {automatedDiscoveryInformation = a} :: GetLicenseConfigurationResponse)
+
+-- | Summaries of the licenses consumed by resources.
+getLicenseConfigurationResponse_consumedLicenseSummaryList :: Lens.Lens' GetLicenseConfigurationResponse (Prelude.Maybe [ConsumedLicenseSummary])
+getLicenseConfigurationResponse_consumedLicenseSummaryList = Lens.lens (\GetLicenseConfigurationResponse' {consumedLicenseSummaryList} -> consumedLicenseSummaryList) (\s@GetLicenseConfigurationResponse' {} a -> s {consumedLicenseSummaryList = a} :: GetLicenseConfigurationResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | Number of licenses assigned to resources.
+getLicenseConfigurationResponse_consumedLicenses :: Lens.Lens' GetLicenseConfigurationResponse (Prelude.Maybe Prelude.Integer)
+getLicenseConfigurationResponse_consumedLicenses = Lens.lens (\GetLicenseConfigurationResponse' {consumedLicenses} -> consumedLicenses) (\s@GetLicenseConfigurationResponse' {} a -> s {consumedLicenses = a} :: GetLicenseConfigurationResponse)
+
+-- | Description of the license configuration.
+getLicenseConfigurationResponse_description :: Lens.Lens' GetLicenseConfigurationResponse (Prelude.Maybe Prelude.Text)
+getLicenseConfigurationResponse_description = Lens.lens (\GetLicenseConfigurationResponse' {description} -> description) (\s@GetLicenseConfigurationResponse' {} a -> s {description = a} :: GetLicenseConfigurationResponse)
+
+-- | When true, disassociates a resource when software is uninstalled.
+getLicenseConfigurationResponse_disassociateWhenNotFound :: Lens.Lens' GetLicenseConfigurationResponse (Prelude.Maybe Prelude.Bool)
+getLicenseConfigurationResponse_disassociateWhenNotFound = Lens.lens (\GetLicenseConfigurationResponse' {disassociateWhenNotFound} -> disassociateWhenNotFound) (\s@GetLicenseConfigurationResponse' {} a -> s {disassociateWhenNotFound = a} :: GetLicenseConfigurationResponse)
+
+-- | Amazon Resource Name (ARN) of the license configuration.
+getLicenseConfigurationResponse_licenseConfigurationArn :: Lens.Lens' GetLicenseConfigurationResponse (Prelude.Maybe Prelude.Text)
+getLicenseConfigurationResponse_licenseConfigurationArn = Lens.lens (\GetLicenseConfigurationResponse' {licenseConfigurationArn} -> licenseConfigurationArn) (\s@GetLicenseConfigurationResponse' {} a -> s {licenseConfigurationArn = a} :: GetLicenseConfigurationResponse)
+
+-- | Unique ID for the license configuration.
+getLicenseConfigurationResponse_licenseConfigurationId :: Lens.Lens' GetLicenseConfigurationResponse (Prelude.Maybe Prelude.Text)
+getLicenseConfigurationResponse_licenseConfigurationId = Lens.lens (\GetLicenseConfigurationResponse' {licenseConfigurationId} -> licenseConfigurationId) (\s@GetLicenseConfigurationResponse' {} a -> s {licenseConfigurationId = a} :: GetLicenseConfigurationResponse)
+
+-- | Number of available licenses.
+getLicenseConfigurationResponse_licenseCount :: Lens.Lens' GetLicenseConfigurationResponse (Prelude.Maybe Prelude.Integer)
+getLicenseConfigurationResponse_licenseCount = Lens.lens (\GetLicenseConfigurationResponse' {licenseCount} -> licenseCount) (\s@GetLicenseConfigurationResponse' {} a -> s {licenseCount = a} :: GetLicenseConfigurationResponse)
+
+-- | Sets the number of available licenses as a hard limit.
+getLicenseConfigurationResponse_licenseCountHardLimit :: Lens.Lens' GetLicenseConfigurationResponse (Prelude.Maybe Prelude.Bool)
+getLicenseConfigurationResponse_licenseCountHardLimit = Lens.lens (\GetLicenseConfigurationResponse' {licenseCountHardLimit} -> licenseCountHardLimit) (\s@GetLicenseConfigurationResponse' {} a -> s {licenseCountHardLimit = a} :: GetLicenseConfigurationResponse)
+
+-- | Dimension for which the licenses are counted.
+getLicenseConfigurationResponse_licenseCountingType :: Lens.Lens' GetLicenseConfigurationResponse (Prelude.Maybe LicenseCountingType)
+getLicenseConfigurationResponse_licenseCountingType = Lens.lens (\GetLicenseConfigurationResponse' {licenseCountingType} -> licenseCountingType) (\s@GetLicenseConfigurationResponse' {} a -> s {licenseCountingType = a} :: GetLicenseConfigurationResponse)
+
+-- | License rules.
+getLicenseConfigurationResponse_licenseRules :: Lens.Lens' GetLicenseConfigurationResponse (Prelude.Maybe [Prelude.Text])
+getLicenseConfigurationResponse_licenseRules = Lens.lens (\GetLicenseConfigurationResponse' {licenseRules} -> licenseRules) (\s@GetLicenseConfigurationResponse' {} a -> s {licenseRules = a} :: GetLicenseConfigurationResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | Summaries of the managed resources.
+getLicenseConfigurationResponse_managedResourceSummaryList :: Lens.Lens' GetLicenseConfigurationResponse (Prelude.Maybe [ManagedResourceSummary])
+getLicenseConfigurationResponse_managedResourceSummaryList = Lens.lens (\GetLicenseConfigurationResponse' {managedResourceSummaryList} -> managedResourceSummaryList) (\s@GetLicenseConfigurationResponse' {} a -> s {managedResourceSummaryList = a} :: GetLicenseConfigurationResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | Name of the license configuration.
+getLicenseConfigurationResponse_name :: Lens.Lens' GetLicenseConfigurationResponse (Prelude.Maybe Prelude.Text)
+getLicenseConfigurationResponse_name = Lens.lens (\GetLicenseConfigurationResponse' {name} -> name) (\s@GetLicenseConfigurationResponse' {} a -> s {name = a} :: GetLicenseConfigurationResponse)
+
+-- | Account ID of the owner of the license configuration.
+getLicenseConfigurationResponse_ownerAccountId :: Lens.Lens' GetLicenseConfigurationResponse (Prelude.Maybe Prelude.Text)
+getLicenseConfigurationResponse_ownerAccountId = Lens.lens (\GetLicenseConfigurationResponse' {ownerAccountId} -> ownerAccountId) (\s@GetLicenseConfigurationResponse' {} a -> s {ownerAccountId = a} :: GetLicenseConfigurationResponse)
+
+-- | Product information.
+getLicenseConfigurationResponse_productInformationList :: Lens.Lens' GetLicenseConfigurationResponse (Prelude.Maybe [ProductInformation])
+getLicenseConfigurationResponse_productInformationList = Lens.lens (\GetLicenseConfigurationResponse' {productInformationList} -> productInformationList) (\s@GetLicenseConfigurationResponse' {} a -> s {productInformationList = a} :: GetLicenseConfigurationResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | License configuration status.
+getLicenseConfigurationResponse_status :: Lens.Lens' GetLicenseConfigurationResponse (Prelude.Maybe Prelude.Text)
+getLicenseConfigurationResponse_status = Lens.lens (\GetLicenseConfigurationResponse' {status} -> status) (\s@GetLicenseConfigurationResponse' {} a -> s {status = a} :: GetLicenseConfigurationResponse)
+
+-- | Tags for the license configuration.
+getLicenseConfigurationResponse_tags :: Lens.Lens' GetLicenseConfigurationResponse (Prelude.Maybe [Tag])
+getLicenseConfigurationResponse_tags = Lens.lens (\GetLicenseConfigurationResponse' {tags} -> tags) (\s@GetLicenseConfigurationResponse' {} a -> s {tags = a} :: GetLicenseConfigurationResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+getLicenseConfigurationResponse_httpStatus :: Lens.Lens' GetLicenseConfigurationResponse Prelude.Int
+getLicenseConfigurationResponse_httpStatus = Lens.lens (\GetLicenseConfigurationResponse' {httpStatus} -> httpStatus) (\s@GetLicenseConfigurationResponse' {} a -> s {httpStatus = a} :: GetLicenseConfigurationResponse)
+
+instance
+  Prelude.NFData
+    GetLicenseConfigurationResponse
+  where
+  rnf GetLicenseConfigurationResponse' {..} =
+    Prelude.rnf automatedDiscoveryInformation
+      `Prelude.seq` Prelude.rnf consumedLicenseSummaryList
+      `Prelude.seq` Prelude.rnf consumedLicenses
+      `Prelude.seq` Prelude.rnf description
+      `Prelude.seq` Prelude.rnf disassociateWhenNotFound
+      `Prelude.seq` Prelude.rnf licenseConfigurationArn
+      `Prelude.seq` Prelude.rnf licenseConfigurationId
+      `Prelude.seq` Prelude.rnf licenseCount
+      `Prelude.seq` Prelude.rnf licenseCountHardLimit
+      `Prelude.seq` Prelude.rnf licenseCountingType
+      `Prelude.seq` Prelude.rnf licenseRules
+      `Prelude.seq` Prelude.rnf managedResourceSummaryList
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf ownerAccountId
+      `Prelude.seq` Prelude.rnf productInformationList
+      `Prelude.seq` Prelude.rnf status
+      `Prelude.seq` Prelude.rnf tags
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/GetLicenseConversionTask.hs b/gen/Amazonka/LicenseManager/GetLicenseConversionTask.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/GetLicenseConversionTask.hs
@@ -0,0 +1,279 @@
+{-# 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.LicenseManager.GetLicenseConversionTask
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets information about the specified license type conversion task.
+module Amazonka.LicenseManager.GetLicenseConversionTask
+  ( -- * Creating a Request
+    GetLicenseConversionTask (..),
+    newGetLicenseConversionTask,
+
+    -- * Request Lenses
+    getLicenseConversionTask_licenseConversionTaskId,
+
+    -- * Destructuring the Response
+    GetLicenseConversionTaskResponse (..),
+    newGetLicenseConversionTaskResponse,
+
+    -- * Response Lenses
+    getLicenseConversionTaskResponse_destinationLicenseContext,
+    getLicenseConversionTaskResponse_endTime,
+    getLicenseConversionTaskResponse_licenseConversionTaskId,
+    getLicenseConversionTaskResponse_licenseConversionTime,
+    getLicenseConversionTaskResponse_resourceArn,
+    getLicenseConversionTaskResponse_sourceLicenseContext,
+    getLicenseConversionTaskResponse_startTime,
+    getLicenseConversionTaskResponse_status,
+    getLicenseConversionTaskResponse_statusMessage,
+    getLicenseConversionTaskResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newGetLicenseConversionTask' smart constructor.
+data GetLicenseConversionTask = GetLicenseConversionTask'
+  { -- | ID of the license type conversion task to retrieve information on.
+    licenseConversionTaskId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetLicenseConversionTask' 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:
+--
+-- 'licenseConversionTaskId', 'getLicenseConversionTask_licenseConversionTaskId' - ID of the license type conversion task to retrieve information on.
+newGetLicenseConversionTask ::
+  -- | 'licenseConversionTaskId'
+  Prelude.Text ->
+  GetLicenseConversionTask
+newGetLicenseConversionTask pLicenseConversionTaskId_ =
+  GetLicenseConversionTask'
+    { licenseConversionTaskId =
+        pLicenseConversionTaskId_
+    }
+
+-- | ID of the license type conversion task to retrieve information on.
+getLicenseConversionTask_licenseConversionTaskId :: Lens.Lens' GetLicenseConversionTask Prelude.Text
+getLicenseConversionTask_licenseConversionTaskId = Lens.lens (\GetLicenseConversionTask' {licenseConversionTaskId} -> licenseConversionTaskId) (\s@GetLicenseConversionTask' {} a -> s {licenseConversionTaskId = a} :: GetLicenseConversionTask)
+
+instance Core.AWSRequest GetLicenseConversionTask where
+  type
+    AWSResponse GetLicenseConversionTask =
+      GetLicenseConversionTaskResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetLicenseConversionTaskResponse'
+            Prelude.<$> (x Data..?> "DestinationLicenseContext")
+            Prelude.<*> (x Data..?> "EndTime")
+            Prelude.<*> (x Data..?> "LicenseConversionTaskId")
+            Prelude.<*> (x Data..?> "LicenseConversionTime")
+            Prelude.<*> (x Data..?> "ResourceArn")
+            Prelude.<*> (x Data..?> "SourceLicenseContext")
+            Prelude.<*> (x Data..?> "StartTime")
+            Prelude.<*> (x Data..?> "Status")
+            Prelude.<*> (x Data..?> "StatusMessage")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable GetLicenseConversionTask where
+  hashWithSalt _salt GetLicenseConversionTask' {..} =
+    _salt
+      `Prelude.hashWithSalt` licenseConversionTaskId
+
+instance Prelude.NFData GetLicenseConversionTask where
+  rnf GetLicenseConversionTask' {..} =
+    Prelude.rnf licenseConversionTaskId
+
+instance Data.ToHeaders GetLicenseConversionTask where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.GetLicenseConversionTask" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON GetLicenseConversionTask where
+  toJSON GetLicenseConversionTask' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ( "LicenseConversionTaskId"
+                  Data..= licenseConversionTaskId
+              )
+          ]
+      )
+
+instance Data.ToPath GetLicenseConversionTask where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery GetLicenseConversionTask where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetLicenseConversionTaskResponse' smart constructor.
+data GetLicenseConversionTaskResponse = GetLicenseConversionTaskResponse'
+  { -- | Information about the license type converted to.
+    destinationLicenseContext :: Prelude.Maybe LicenseConversionContext,
+    -- | Time at which the license type conversion task was completed.
+    endTime :: Prelude.Maybe Data.POSIX,
+    -- | ID of the license type conversion task.
+    licenseConversionTaskId :: Prelude.Maybe Prelude.Text,
+    -- | Amount of time to complete the license type conversion.
+    licenseConversionTime :: Prelude.Maybe Data.POSIX,
+    -- | Amazon Resource Names (ARN) of the resources the license conversion task
+    -- is associated with.
+    resourceArn :: Prelude.Maybe Prelude.Text,
+    -- | Information about the license type converted from.
+    sourceLicenseContext :: Prelude.Maybe LicenseConversionContext,
+    -- | Time at which the license type conversion task was started .
+    startTime :: Prelude.Maybe Data.POSIX,
+    -- | Status of the license type conversion task.
+    status :: Prelude.Maybe LicenseConversionTaskStatus,
+    -- | The status message for the conversion task.
+    statusMessage :: 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 'GetLicenseConversionTaskResponse' 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:
+--
+-- 'destinationLicenseContext', 'getLicenseConversionTaskResponse_destinationLicenseContext' - Information about the license type converted to.
+--
+-- 'endTime', 'getLicenseConversionTaskResponse_endTime' - Time at which the license type conversion task was completed.
+--
+-- 'licenseConversionTaskId', 'getLicenseConversionTaskResponse_licenseConversionTaskId' - ID of the license type conversion task.
+--
+-- 'licenseConversionTime', 'getLicenseConversionTaskResponse_licenseConversionTime' - Amount of time to complete the license type conversion.
+--
+-- 'resourceArn', 'getLicenseConversionTaskResponse_resourceArn' - Amazon Resource Names (ARN) of the resources the license conversion task
+-- is associated with.
+--
+-- 'sourceLicenseContext', 'getLicenseConversionTaskResponse_sourceLicenseContext' - Information about the license type converted from.
+--
+-- 'startTime', 'getLicenseConversionTaskResponse_startTime' - Time at which the license type conversion task was started .
+--
+-- 'status', 'getLicenseConversionTaskResponse_status' - Status of the license type conversion task.
+--
+-- 'statusMessage', 'getLicenseConversionTaskResponse_statusMessage' - The status message for the conversion task.
+--
+-- 'httpStatus', 'getLicenseConversionTaskResponse_httpStatus' - The response's http status code.
+newGetLicenseConversionTaskResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetLicenseConversionTaskResponse
+newGetLicenseConversionTaskResponse pHttpStatus_ =
+  GetLicenseConversionTaskResponse'
+    { destinationLicenseContext =
+        Prelude.Nothing,
+      endTime = Prelude.Nothing,
+      licenseConversionTaskId = Prelude.Nothing,
+      licenseConversionTime = Prelude.Nothing,
+      resourceArn = Prelude.Nothing,
+      sourceLicenseContext = Prelude.Nothing,
+      startTime = Prelude.Nothing,
+      status = Prelude.Nothing,
+      statusMessage = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Information about the license type converted to.
+getLicenseConversionTaskResponse_destinationLicenseContext :: Lens.Lens' GetLicenseConversionTaskResponse (Prelude.Maybe LicenseConversionContext)
+getLicenseConversionTaskResponse_destinationLicenseContext = Lens.lens (\GetLicenseConversionTaskResponse' {destinationLicenseContext} -> destinationLicenseContext) (\s@GetLicenseConversionTaskResponse' {} a -> s {destinationLicenseContext = a} :: GetLicenseConversionTaskResponse)
+
+-- | Time at which the license type conversion task was completed.
+getLicenseConversionTaskResponse_endTime :: Lens.Lens' GetLicenseConversionTaskResponse (Prelude.Maybe Prelude.UTCTime)
+getLicenseConversionTaskResponse_endTime = Lens.lens (\GetLicenseConversionTaskResponse' {endTime} -> endTime) (\s@GetLicenseConversionTaskResponse' {} a -> s {endTime = a} :: GetLicenseConversionTaskResponse) Prelude.. Lens.mapping Data._Time
+
+-- | ID of the license type conversion task.
+getLicenseConversionTaskResponse_licenseConversionTaskId :: Lens.Lens' GetLicenseConversionTaskResponse (Prelude.Maybe Prelude.Text)
+getLicenseConversionTaskResponse_licenseConversionTaskId = Lens.lens (\GetLicenseConversionTaskResponse' {licenseConversionTaskId} -> licenseConversionTaskId) (\s@GetLicenseConversionTaskResponse' {} a -> s {licenseConversionTaskId = a} :: GetLicenseConversionTaskResponse)
+
+-- | Amount of time to complete the license type conversion.
+getLicenseConversionTaskResponse_licenseConversionTime :: Lens.Lens' GetLicenseConversionTaskResponse (Prelude.Maybe Prelude.UTCTime)
+getLicenseConversionTaskResponse_licenseConversionTime = Lens.lens (\GetLicenseConversionTaskResponse' {licenseConversionTime} -> licenseConversionTime) (\s@GetLicenseConversionTaskResponse' {} a -> s {licenseConversionTime = a} :: GetLicenseConversionTaskResponse) Prelude.. Lens.mapping Data._Time
+
+-- | Amazon Resource Names (ARN) of the resources the license conversion task
+-- is associated with.
+getLicenseConversionTaskResponse_resourceArn :: Lens.Lens' GetLicenseConversionTaskResponse (Prelude.Maybe Prelude.Text)
+getLicenseConversionTaskResponse_resourceArn = Lens.lens (\GetLicenseConversionTaskResponse' {resourceArn} -> resourceArn) (\s@GetLicenseConversionTaskResponse' {} a -> s {resourceArn = a} :: GetLicenseConversionTaskResponse)
+
+-- | Information about the license type converted from.
+getLicenseConversionTaskResponse_sourceLicenseContext :: Lens.Lens' GetLicenseConversionTaskResponse (Prelude.Maybe LicenseConversionContext)
+getLicenseConversionTaskResponse_sourceLicenseContext = Lens.lens (\GetLicenseConversionTaskResponse' {sourceLicenseContext} -> sourceLicenseContext) (\s@GetLicenseConversionTaskResponse' {} a -> s {sourceLicenseContext = a} :: GetLicenseConversionTaskResponse)
+
+-- | Time at which the license type conversion task was started .
+getLicenseConversionTaskResponse_startTime :: Lens.Lens' GetLicenseConversionTaskResponse (Prelude.Maybe Prelude.UTCTime)
+getLicenseConversionTaskResponse_startTime = Lens.lens (\GetLicenseConversionTaskResponse' {startTime} -> startTime) (\s@GetLicenseConversionTaskResponse' {} a -> s {startTime = a} :: GetLicenseConversionTaskResponse) Prelude.. Lens.mapping Data._Time
+
+-- | Status of the license type conversion task.
+getLicenseConversionTaskResponse_status :: Lens.Lens' GetLicenseConversionTaskResponse (Prelude.Maybe LicenseConversionTaskStatus)
+getLicenseConversionTaskResponse_status = Lens.lens (\GetLicenseConversionTaskResponse' {status} -> status) (\s@GetLicenseConversionTaskResponse' {} a -> s {status = a} :: GetLicenseConversionTaskResponse)
+
+-- | The status message for the conversion task.
+getLicenseConversionTaskResponse_statusMessage :: Lens.Lens' GetLicenseConversionTaskResponse (Prelude.Maybe Prelude.Text)
+getLicenseConversionTaskResponse_statusMessage = Lens.lens (\GetLicenseConversionTaskResponse' {statusMessage} -> statusMessage) (\s@GetLicenseConversionTaskResponse' {} a -> s {statusMessage = a} :: GetLicenseConversionTaskResponse)
+
+-- | The response's http status code.
+getLicenseConversionTaskResponse_httpStatus :: Lens.Lens' GetLicenseConversionTaskResponse Prelude.Int
+getLicenseConversionTaskResponse_httpStatus = Lens.lens (\GetLicenseConversionTaskResponse' {httpStatus} -> httpStatus) (\s@GetLicenseConversionTaskResponse' {} a -> s {httpStatus = a} :: GetLicenseConversionTaskResponse)
+
+instance
+  Prelude.NFData
+    GetLicenseConversionTaskResponse
+  where
+  rnf GetLicenseConversionTaskResponse' {..} =
+    Prelude.rnf destinationLicenseContext
+      `Prelude.seq` Prelude.rnf endTime
+      `Prelude.seq` Prelude.rnf licenseConversionTaskId
+      `Prelude.seq` Prelude.rnf licenseConversionTime
+      `Prelude.seq` Prelude.rnf resourceArn
+      `Prelude.seq` Prelude.rnf sourceLicenseContext
+      `Prelude.seq` Prelude.rnf startTime
+      `Prelude.seq` Prelude.rnf status
+      `Prelude.seq` Prelude.rnf statusMessage
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/GetLicenseManagerReportGenerator.hs b/gen/Amazonka/LicenseManager/GetLicenseManagerReportGenerator.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/GetLicenseManagerReportGenerator.hs
@@ -0,0 +1,202 @@
+{-# 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.LicenseManager.GetLicenseManagerReportGenerator
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets information about the specified report generator.
+module Amazonka.LicenseManager.GetLicenseManagerReportGenerator
+  ( -- * Creating a Request
+    GetLicenseManagerReportGenerator (..),
+    newGetLicenseManagerReportGenerator,
+
+    -- * Request Lenses
+    getLicenseManagerReportGenerator_licenseManagerReportGeneratorArn,
+
+    -- * Destructuring the Response
+    GetLicenseManagerReportGeneratorResponse (..),
+    newGetLicenseManagerReportGeneratorResponse,
+
+    -- * Response Lenses
+    getLicenseManagerReportGeneratorResponse_reportGenerator,
+    getLicenseManagerReportGeneratorResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newGetLicenseManagerReportGenerator' smart constructor.
+data GetLicenseManagerReportGenerator = GetLicenseManagerReportGenerator'
+  { -- | Amazon Resource Name (ARN) of the report generator.
+    licenseManagerReportGeneratorArn :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetLicenseManagerReportGenerator' 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:
+--
+-- 'licenseManagerReportGeneratorArn', 'getLicenseManagerReportGenerator_licenseManagerReportGeneratorArn' - Amazon Resource Name (ARN) of the report generator.
+newGetLicenseManagerReportGenerator ::
+  -- | 'licenseManagerReportGeneratorArn'
+  Prelude.Text ->
+  GetLicenseManagerReportGenerator
+newGetLicenseManagerReportGenerator
+  pLicenseManagerReportGeneratorArn_ =
+    GetLicenseManagerReportGenerator'
+      { licenseManagerReportGeneratorArn =
+          pLicenseManagerReportGeneratorArn_
+      }
+
+-- | Amazon Resource Name (ARN) of the report generator.
+getLicenseManagerReportGenerator_licenseManagerReportGeneratorArn :: Lens.Lens' GetLicenseManagerReportGenerator Prelude.Text
+getLicenseManagerReportGenerator_licenseManagerReportGeneratorArn = Lens.lens (\GetLicenseManagerReportGenerator' {licenseManagerReportGeneratorArn} -> licenseManagerReportGeneratorArn) (\s@GetLicenseManagerReportGenerator' {} a -> s {licenseManagerReportGeneratorArn = a} :: GetLicenseManagerReportGenerator)
+
+instance
+  Core.AWSRequest
+    GetLicenseManagerReportGenerator
+  where
+  type
+    AWSResponse GetLicenseManagerReportGenerator =
+      GetLicenseManagerReportGeneratorResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetLicenseManagerReportGeneratorResponse'
+            Prelude.<$> (x Data..?> "ReportGenerator")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    GetLicenseManagerReportGenerator
+  where
+  hashWithSalt
+    _salt
+    GetLicenseManagerReportGenerator' {..} =
+      _salt
+        `Prelude.hashWithSalt` licenseManagerReportGeneratorArn
+
+instance
+  Prelude.NFData
+    GetLicenseManagerReportGenerator
+  where
+  rnf GetLicenseManagerReportGenerator' {..} =
+    Prelude.rnf licenseManagerReportGeneratorArn
+
+instance
+  Data.ToHeaders
+    GetLicenseManagerReportGenerator
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.GetLicenseManagerReportGenerator" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON GetLicenseManagerReportGenerator where
+  toJSON GetLicenseManagerReportGenerator' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ( "LicenseManagerReportGeneratorArn"
+                  Data..= licenseManagerReportGeneratorArn
+              )
+          ]
+      )
+
+instance Data.ToPath GetLicenseManagerReportGenerator where
+  toPath = Prelude.const "/"
+
+instance
+  Data.ToQuery
+    GetLicenseManagerReportGenerator
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetLicenseManagerReportGeneratorResponse' smart constructor.
+data GetLicenseManagerReportGeneratorResponse = GetLicenseManagerReportGeneratorResponse'
+  { -- | A report generator that creates periodic reports about your license
+    -- configurations.
+    reportGenerator :: Prelude.Maybe ReportGenerator,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetLicenseManagerReportGeneratorResponse' 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:
+--
+-- 'reportGenerator', 'getLicenseManagerReportGeneratorResponse_reportGenerator' - A report generator that creates periodic reports about your license
+-- configurations.
+--
+-- 'httpStatus', 'getLicenseManagerReportGeneratorResponse_httpStatus' - The response's http status code.
+newGetLicenseManagerReportGeneratorResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetLicenseManagerReportGeneratorResponse
+newGetLicenseManagerReportGeneratorResponse
+  pHttpStatus_ =
+    GetLicenseManagerReportGeneratorResponse'
+      { reportGenerator =
+          Prelude.Nothing,
+        httpStatus = pHttpStatus_
+      }
+
+-- | A report generator that creates periodic reports about your license
+-- configurations.
+getLicenseManagerReportGeneratorResponse_reportGenerator :: Lens.Lens' GetLicenseManagerReportGeneratorResponse (Prelude.Maybe ReportGenerator)
+getLicenseManagerReportGeneratorResponse_reportGenerator = Lens.lens (\GetLicenseManagerReportGeneratorResponse' {reportGenerator} -> reportGenerator) (\s@GetLicenseManagerReportGeneratorResponse' {} a -> s {reportGenerator = a} :: GetLicenseManagerReportGeneratorResponse)
+
+-- | The response's http status code.
+getLicenseManagerReportGeneratorResponse_httpStatus :: Lens.Lens' GetLicenseManagerReportGeneratorResponse Prelude.Int
+getLicenseManagerReportGeneratorResponse_httpStatus = Lens.lens (\GetLicenseManagerReportGeneratorResponse' {httpStatus} -> httpStatus) (\s@GetLicenseManagerReportGeneratorResponse' {} a -> s {httpStatus = a} :: GetLicenseManagerReportGeneratorResponse)
+
+instance
+  Prelude.NFData
+    GetLicenseManagerReportGeneratorResponse
+  where
+  rnf GetLicenseManagerReportGeneratorResponse' {..} =
+    Prelude.rnf reportGenerator
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/GetLicenseUsage.hs b/gen/Amazonka/LicenseManager/GetLicenseUsage.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/GetLicenseUsage.hs
@@ -0,0 +1,168 @@
+{-# 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.LicenseManager.GetLicenseUsage
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets detailed information about the usage of the specified license.
+module Amazonka.LicenseManager.GetLicenseUsage
+  ( -- * Creating a Request
+    GetLicenseUsage (..),
+    newGetLicenseUsage,
+
+    -- * Request Lenses
+    getLicenseUsage_licenseArn,
+
+    -- * Destructuring the Response
+    GetLicenseUsageResponse (..),
+    newGetLicenseUsageResponse,
+
+    -- * Response Lenses
+    getLicenseUsageResponse_licenseUsage,
+    getLicenseUsageResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newGetLicenseUsage' smart constructor.
+data GetLicenseUsage = GetLicenseUsage'
+  { -- | Amazon Resource Name (ARN) of the license.
+    licenseArn :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetLicenseUsage' 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:
+--
+-- 'licenseArn', 'getLicenseUsage_licenseArn' - Amazon Resource Name (ARN) of the license.
+newGetLicenseUsage ::
+  -- | 'licenseArn'
+  Prelude.Text ->
+  GetLicenseUsage
+newGetLicenseUsage pLicenseArn_ =
+  GetLicenseUsage' {licenseArn = pLicenseArn_}
+
+-- | Amazon Resource Name (ARN) of the license.
+getLicenseUsage_licenseArn :: Lens.Lens' GetLicenseUsage Prelude.Text
+getLicenseUsage_licenseArn = Lens.lens (\GetLicenseUsage' {licenseArn} -> licenseArn) (\s@GetLicenseUsage' {} a -> s {licenseArn = a} :: GetLicenseUsage)
+
+instance Core.AWSRequest GetLicenseUsage where
+  type
+    AWSResponse GetLicenseUsage =
+      GetLicenseUsageResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetLicenseUsageResponse'
+            Prelude.<$> (x Data..?> "LicenseUsage")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable GetLicenseUsage where
+  hashWithSalt _salt GetLicenseUsage' {..} =
+    _salt `Prelude.hashWithSalt` licenseArn
+
+instance Prelude.NFData GetLicenseUsage where
+  rnf GetLicenseUsage' {..} = Prelude.rnf licenseArn
+
+instance Data.ToHeaders GetLicenseUsage where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.GetLicenseUsage" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON GetLicenseUsage where
+  toJSON GetLicenseUsage' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [Prelude.Just ("LicenseArn" Data..= licenseArn)]
+      )
+
+instance Data.ToPath GetLicenseUsage where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery GetLicenseUsage where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetLicenseUsageResponse' smart constructor.
+data GetLicenseUsageResponse = GetLicenseUsageResponse'
+  { -- | License usage details.
+    licenseUsage :: Prelude.Maybe LicenseUsage,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetLicenseUsageResponse' 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:
+--
+-- 'licenseUsage', 'getLicenseUsageResponse_licenseUsage' - License usage details.
+--
+-- 'httpStatus', 'getLicenseUsageResponse_httpStatus' - The response's http status code.
+newGetLicenseUsageResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetLicenseUsageResponse
+newGetLicenseUsageResponse pHttpStatus_ =
+  GetLicenseUsageResponse'
+    { licenseUsage =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | License usage details.
+getLicenseUsageResponse_licenseUsage :: Lens.Lens' GetLicenseUsageResponse (Prelude.Maybe LicenseUsage)
+getLicenseUsageResponse_licenseUsage = Lens.lens (\GetLicenseUsageResponse' {licenseUsage} -> licenseUsage) (\s@GetLicenseUsageResponse' {} a -> s {licenseUsage = a} :: GetLicenseUsageResponse)
+
+-- | The response's http status code.
+getLicenseUsageResponse_httpStatus :: Lens.Lens' GetLicenseUsageResponse Prelude.Int
+getLicenseUsageResponse_httpStatus = Lens.lens (\GetLicenseUsageResponse' {httpStatus} -> httpStatus) (\s@GetLicenseUsageResponse' {} a -> s {httpStatus = a} :: GetLicenseUsageResponse)
+
+instance Prelude.NFData GetLicenseUsageResponse where
+  rnf GetLicenseUsageResponse' {..} =
+    Prelude.rnf licenseUsage
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/GetServiceSettings.hs b/gen/Amazonka/LicenseManager/GetServiceSettings.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/GetServiceSettings.hs
@@ -0,0 +1,206 @@
+{-# 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.LicenseManager.GetServiceSettings
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the License Manager settings for the current Region.
+module Amazonka.LicenseManager.GetServiceSettings
+  ( -- * Creating a Request
+    GetServiceSettings (..),
+    newGetServiceSettings,
+
+    -- * Destructuring the Response
+    GetServiceSettingsResponse (..),
+    newGetServiceSettingsResponse,
+
+    -- * Response Lenses
+    getServiceSettingsResponse_enableCrossAccountsDiscovery,
+    getServiceSettingsResponse_licenseManagerResourceShareArn,
+    getServiceSettingsResponse_organizationConfiguration,
+    getServiceSettingsResponse_s3BucketArn,
+    getServiceSettingsResponse_snsTopicArn,
+    getServiceSettingsResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newGetServiceSettings' smart constructor.
+data GetServiceSettings = GetServiceSettings'
+  {
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetServiceSettings' 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.
+newGetServiceSettings ::
+  GetServiceSettings
+newGetServiceSettings = GetServiceSettings'
+
+instance Core.AWSRequest GetServiceSettings where
+  type
+    AWSResponse GetServiceSettings =
+      GetServiceSettingsResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetServiceSettingsResponse'
+            Prelude.<$> (x Data..?> "EnableCrossAccountsDiscovery")
+            Prelude.<*> (x Data..?> "LicenseManagerResourceShareArn")
+            Prelude.<*> (x Data..?> "OrganizationConfiguration")
+            Prelude.<*> (x Data..?> "S3BucketArn")
+            Prelude.<*> (x Data..?> "SnsTopicArn")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable GetServiceSettings where
+  hashWithSalt _salt _ =
+    _salt `Prelude.hashWithSalt` ()
+
+instance Prelude.NFData GetServiceSettings where
+  rnf _ = ()
+
+instance Data.ToHeaders GetServiceSettings where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.GetServiceSettings" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON GetServiceSettings where
+  toJSON = Prelude.const (Data.Object Prelude.mempty)
+
+instance Data.ToPath GetServiceSettings where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery GetServiceSettings where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetServiceSettingsResponse' smart constructor.
+data GetServiceSettingsResponse = GetServiceSettingsResponse'
+  { -- | Indicates whether cross-account discovery is enabled.
+    enableCrossAccountsDiscovery :: Prelude.Maybe Prelude.Bool,
+    -- | Amazon Resource Name (ARN) of the resource share. The License Manager
+    -- management account provides member accounts with access to this share.
+    licenseManagerResourceShareArn :: Prelude.Maybe Prelude.Text,
+    -- | Indicates whether Organizations is integrated with License Manager for
+    -- cross-account discovery.
+    organizationConfiguration :: Prelude.Maybe OrganizationConfiguration,
+    -- | Regional S3 bucket path for storing reports, license trail event data,
+    -- discovery data, and so on.
+    s3BucketArn :: Prelude.Maybe Prelude.Text,
+    -- | SNS topic configured to receive notifications from License Manager.
+    snsTopicArn :: 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 'GetServiceSettingsResponse' 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:
+--
+-- 'enableCrossAccountsDiscovery', 'getServiceSettingsResponse_enableCrossAccountsDiscovery' - Indicates whether cross-account discovery is enabled.
+--
+-- 'licenseManagerResourceShareArn', 'getServiceSettingsResponse_licenseManagerResourceShareArn' - Amazon Resource Name (ARN) of the resource share. The License Manager
+-- management account provides member accounts with access to this share.
+--
+-- 'organizationConfiguration', 'getServiceSettingsResponse_organizationConfiguration' - Indicates whether Organizations is integrated with License Manager for
+-- cross-account discovery.
+--
+-- 's3BucketArn', 'getServiceSettingsResponse_s3BucketArn' - Regional S3 bucket path for storing reports, license trail event data,
+-- discovery data, and so on.
+--
+-- 'snsTopicArn', 'getServiceSettingsResponse_snsTopicArn' - SNS topic configured to receive notifications from License Manager.
+--
+-- 'httpStatus', 'getServiceSettingsResponse_httpStatus' - The response's http status code.
+newGetServiceSettingsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetServiceSettingsResponse
+newGetServiceSettingsResponse pHttpStatus_ =
+  GetServiceSettingsResponse'
+    { enableCrossAccountsDiscovery =
+        Prelude.Nothing,
+      licenseManagerResourceShareArn =
+        Prelude.Nothing,
+      organizationConfiguration = Prelude.Nothing,
+      s3BucketArn = Prelude.Nothing,
+      snsTopicArn = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Indicates whether cross-account discovery is enabled.
+getServiceSettingsResponse_enableCrossAccountsDiscovery :: Lens.Lens' GetServiceSettingsResponse (Prelude.Maybe Prelude.Bool)
+getServiceSettingsResponse_enableCrossAccountsDiscovery = Lens.lens (\GetServiceSettingsResponse' {enableCrossAccountsDiscovery} -> enableCrossAccountsDiscovery) (\s@GetServiceSettingsResponse' {} a -> s {enableCrossAccountsDiscovery = a} :: GetServiceSettingsResponse)
+
+-- | Amazon Resource Name (ARN) of the resource share. The License Manager
+-- management account provides member accounts with access to this share.
+getServiceSettingsResponse_licenseManagerResourceShareArn :: Lens.Lens' GetServiceSettingsResponse (Prelude.Maybe Prelude.Text)
+getServiceSettingsResponse_licenseManagerResourceShareArn = Lens.lens (\GetServiceSettingsResponse' {licenseManagerResourceShareArn} -> licenseManagerResourceShareArn) (\s@GetServiceSettingsResponse' {} a -> s {licenseManagerResourceShareArn = a} :: GetServiceSettingsResponse)
+
+-- | Indicates whether Organizations is integrated with License Manager for
+-- cross-account discovery.
+getServiceSettingsResponse_organizationConfiguration :: Lens.Lens' GetServiceSettingsResponse (Prelude.Maybe OrganizationConfiguration)
+getServiceSettingsResponse_organizationConfiguration = Lens.lens (\GetServiceSettingsResponse' {organizationConfiguration} -> organizationConfiguration) (\s@GetServiceSettingsResponse' {} a -> s {organizationConfiguration = a} :: GetServiceSettingsResponse)
+
+-- | Regional S3 bucket path for storing reports, license trail event data,
+-- discovery data, and so on.
+getServiceSettingsResponse_s3BucketArn :: Lens.Lens' GetServiceSettingsResponse (Prelude.Maybe Prelude.Text)
+getServiceSettingsResponse_s3BucketArn = Lens.lens (\GetServiceSettingsResponse' {s3BucketArn} -> s3BucketArn) (\s@GetServiceSettingsResponse' {} a -> s {s3BucketArn = a} :: GetServiceSettingsResponse)
+
+-- | SNS topic configured to receive notifications from License Manager.
+getServiceSettingsResponse_snsTopicArn :: Lens.Lens' GetServiceSettingsResponse (Prelude.Maybe Prelude.Text)
+getServiceSettingsResponse_snsTopicArn = Lens.lens (\GetServiceSettingsResponse' {snsTopicArn} -> snsTopicArn) (\s@GetServiceSettingsResponse' {} a -> s {snsTopicArn = a} :: GetServiceSettingsResponse)
+
+-- | The response's http status code.
+getServiceSettingsResponse_httpStatus :: Lens.Lens' GetServiceSettingsResponse Prelude.Int
+getServiceSettingsResponse_httpStatus = Lens.lens (\GetServiceSettingsResponse' {httpStatus} -> httpStatus) (\s@GetServiceSettingsResponse' {} a -> s {httpStatus = a} :: GetServiceSettingsResponse)
+
+instance Prelude.NFData GetServiceSettingsResponse where
+  rnf GetServiceSettingsResponse' {..} =
+    Prelude.rnf enableCrossAccountsDiscovery
+      `Prelude.seq` Prelude.rnf licenseManagerResourceShareArn
+      `Prelude.seq` Prelude.rnf organizationConfiguration
+      `Prelude.seq` Prelude.rnf s3BucketArn
+      `Prelude.seq` Prelude.rnf snsTopicArn
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/Lens.hs b/gen/Amazonka/LicenseManager/Lens.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Lens.hs
@@ -0,0 +1,795 @@
+{-# 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.LicenseManager.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.LicenseManager.Lens
+  ( -- * Operations
+
+    -- ** AcceptGrant
+    acceptGrant_grantArn,
+    acceptGrantResponse_grantArn,
+    acceptGrantResponse_status,
+    acceptGrantResponse_version,
+    acceptGrantResponse_httpStatus,
+
+    -- ** CheckInLicense
+    checkInLicense_beneficiary,
+    checkInLicense_licenseConsumptionToken,
+    checkInLicenseResponse_httpStatus,
+
+    -- ** CheckoutBorrowLicense
+    checkoutBorrowLicense_checkoutMetadata,
+    checkoutBorrowLicense_nodeId,
+    checkoutBorrowLicense_licenseArn,
+    checkoutBorrowLicense_entitlements,
+    checkoutBorrowLicense_digitalSignatureMethod,
+    checkoutBorrowLicense_clientToken,
+    checkoutBorrowLicenseResponse_checkoutMetadata,
+    checkoutBorrowLicenseResponse_entitlementsAllowed,
+    checkoutBorrowLicenseResponse_expiration,
+    checkoutBorrowLicenseResponse_issuedAt,
+    checkoutBorrowLicenseResponse_licenseArn,
+    checkoutBorrowLicenseResponse_licenseConsumptionToken,
+    checkoutBorrowLicenseResponse_nodeId,
+    checkoutBorrowLicenseResponse_signedToken,
+    checkoutBorrowLicenseResponse_httpStatus,
+
+    -- ** CheckoutLicense
+    checkoutLicense_beneficiary,
+    checkoutLicense_nodeId,
+    checkoutLicense_productSKU,
+    checkoutLicense_checkoutType,
+    checkoutLicense_keyFingerprint,
+    checkoutLicense_entitlements,
+    checkoutLicense_clientToken,
+    checkoutLicenseResponse_checkoutType,
+    checkoutLicenseResponse_entitlementsAllowed,
+    checkoutLicenseResponse_expiration,
+    checkoutLicenseResponse_issuedAt,
+    checkoutLicenseResponse_licenseArn,
+    checkoutLicenseResponse_licenseConsumptionToken,
+    checkoutLicenseResponse_nodeId,
+    checkoutLicenseResponse_signedToken,
+    checkoutLicenseResponse_httpStatus,
+
+    -- ** CreateGrant
+    createGrant_clientToken,
+    createGrant_grantName,
+    createGrant_licenseArn,
+    createGrant_principals,
+    createGrant_homeRegion,
+    createGrant_allowedOperations,
+    createGrantResponse_grantArn,
+    createGrantResponse_status,
+    createGrantResponse_version,
+    createGrantResponse_httpStatus,
+
+    -- ** CreateGrantVersion
+    createGrantVersion_allowedOperations,
+    createGrantVersion_grantName,
+    createGrantVersion_sourceVersion,
+    createGrantVersion_status,
+    createGrantVersion_statusReason,
+    createGrantVersion_clientToken,
+    createGrantVersion_grantArn,
+    createGrantVersionResponse_grantArn,
+    createGrantVersionResponse_status,
+    createGrantVersionResponse_version,
+    createGrantVersionResponse_httpStatus,
+
+    -- ** CreateLicense
+    createLicense_licenseMetadata,
+    createLicense_licenseName,
+    createLicense_productName,
+    createLicense_productSKU,
+    createLicense_issuer,
+    createLicense_homeRegion,
+    createLicense_validity,
+    createLicense_entitlements,
+    createLicense_beneficiary,
+    createLicense_consumptionConfiguration,
+    createLicense_clientToken,
+    createLicenseResponse_licenseArn,
+    createLicenseResponse_status,
+    createLicenseResponse_version,
+    createLicenseResponse_httpStatus,
+
+    -- ** CreateLicenseConfiguration
+    createLicenseConfiguration_description,
+    createLicenseConfiguration_disassociateWhenNotFound,
+    createLicenseConfiguration_licenseCount,
+    createLicenseConfiguration_licenseCountHardLimit,
+    createLicenseConfiguration_licenseRules,
+    createLicenseConfiguration_productInformationList,
+    createLicenseConfiguration_tags,
+    createLicenseConfiguration_name,
+    createLicenseConfiguration_licenseCountingType,
+    createLicenseConfigurationResponse_licenseConfigurationArn,
+    createLicenseConfigurationResponse_httpStatus,
+
+    -- ** CreateLicenseConversionTaskForResource
+    createLicenseConversionTaskForResource_resourceArn,
+    createLicenseConversionTaskForResource_sourceLicenseContext,
+    createLicenseConversionTaskForResource_destinationLicenseContext,
+    createLicenseConversionTaskForResourceResponse_licenseConversionTaskId,
+    createLicenseConversionTaskForResourceResponse_httpStatus,
+
+    -- ** CreateLicenseManagerReportGenerator
+    createLicenseManagerReportGenerator_description,
+    createLicenseManagerReportGenerator_tags,
+    createLicenseManagerReportGenerator_reportGeneratorName,
+    createLicenseManagerReportGenerator_type,
+    createLicenseManagerReportGenerator_reportContext,
+    createLicenseManagerReportGenerator_reportFrequency,
+    createLicenseManagerReportGenerator_clientToken,
+    createLicenseManagerReportGeneratorResponse_licenseManagerReportGeneratorArn,
+    createLicenseManagerReportGeneratorResponse_httpStatus,
+
+    -- ** CreateLicenseVersion
+    createLicenseVersion_licenseMetadata,
+    createLicenseVersion_sourceVersion,
+    createLicenseVersion_licenseArn,
+    createLicenseVersion_licenseName,
+    createLicenseVersion_productName,
+    createLicenseVersion_issuer,
+    createLicenseVersion_homeRegion,
+    createLicenseVersion_validity,
+    createLicenseVersion_entitlements,
+    createLicenseVersion_consumptionConfiguration,
+    createLicenseVersion_status,
+    createLicenseVersion_clientToken,
+    createLicenseVersionResponse_licenseArn,
+    createLicenseVersionResponse_status,
+    createLicenseVersionResponse_version,
+    createLicenseVersionResponse_httpStatus,
+
+    -- ** CreateToken
+    createToken_expirationInDays,
+    createToken_roleArns,
+    createToken_tokenProperties,
+    createToken_licenseArn,
+    createToken_clientToken,
+    createTokenResponse_token,
+    createTokenResponse_tokenId,
+    createTokenResponse_tokenType,
+    createTokenResponse_httpStatus,
+
+    -- ** DeleteGrant
+    deleteGrant_statusReason,
+    deleteGrant_grantArn,
+    deleteGrant_version,
+    deleteGrantResponse_grantArn,
+    deleteGrantResponse_status,
+    deleteGrantResponse_version,
+    deleteGrantResponse_httpStatus,
+
+    -- ** DeleteLicense
+    deleteLicense_licenseArn,
+    deleteLicense_sourceVersion,
+    deleteLicenseResponse_deletionDate,
+    deleteLicenseResponse_status,
+    deleteLicenseResponse_httpStatus,
+
+    -- ** DeleteLicenseConfiguration
+    deleteLicenseConfiguration_licenseConfigurationArn,
+    deleteLicenseConfigurationResponse_httpStatus,
+
+    -- ** DeleteLicenseManagerReportGenerator
+    deleteLicenseManagerReportGenerator_licenseManagerReportGeneratorArn,
+    deleteLicenseManagerReportGeneratorResponse_httpStatus,
+
+    -- ** DeleteToken
+    deleteToken_tokenId,
+    deleteTokenResponse_httpStatus,
+
+    -- ** ExtendLicenseConsumption
+    extendLicenseConsumption_dryRun,
+    extendLicenseConsumption_licenseConsumptionToken,
+    extendLicenseConsumptionResponse_expiration,
+    extendLicenseConsumptionResponse_licenseConsumptionToken,
+    extendLicenseConsumptionResponse_httpStatus,
+
+    -- ** GetAccessToken
+    getAccessToken_tokenProperties,
+    getAccessToken_token,
+    getAccessTokenResponse_accessToken,
+    getAccessTokenResponse_httpStatus,
+
+    -- ** GetGrant
+    getGrant_version,
+    getGrant_grantArn,
+    getGrantResponse_grant,
+    getGrantResponse_httpStatus,
+
+    -- ** GetLicense
+    getLicense_version,
+    getLicense_licenseArn,
+    getLicenseResponse_license,
+    getLicenseResponse_httpStatus,
+
+    -- ** GetLicenseConfiguration
+    getLicenseConfiguration_licenseConfigurationArn,
+    getLicenseConfigurationResponse_automatedDiscoveryInformation,
+    getLicenseConfigurationResponse_consumedLicenseSummaryList,
+    getLicenseConfigurationResponse_consumedLicenses,
+    getLicenseConfigurationResponse_description,
+    getLicenseConfigurationResponse_disassociateWhenNotFound,
+    getLicenseConfigurationResponse_licenseConfigurationArn,
+    getLicenseConfigurationResponse_licenseConfigurationId,
+    getLicenseConfigurationResponse_licenseCount,
+    getLicenseConfigurationResponse_licenseCountHardLimit,
+    getLicenseConfigurationResponse_licenseCountingType,
+    getLicenseConfigurationResponse_licenseRules,
+    getLicenseConfigurationResponse_managedResourceSummaryList,
+    getLicenseConfigurationResponse_name,
+    getLicenseConfigurationResponse_ownerAccountId,
+    getLicenseConfigurationResponse_productInformationList,
+    getLicenseConfigurationResponse_status,
+    getLicenseConfigurationResponse_tags,
+    getLicenseConfigurationResponse_httpStatus,
+
+    -- ** GetLicenseConversionTask
+    getLicenseConversionTask_licenseConversionTaskId,
+    getLicenseConversionTaskResponse_destinationLicenseContext,
+    getLicenseConversionTaskResponse_endTime,
+    getLicenseConversionTaskResponse_licenseConversionTaskId,
+    getLicenseConversionTaskResponse_licenseConversionTime,
+    getLicenseConversionTaskResponse_resourceArn,
+    getLicenseConversionTaskResponse_sourceLicenseContext,
+    getLicenseConversionTaskResponse_startTime,
+    getLicenseConversionTaskResponse_status,
+    getLicenseConversionTaskResponse_statusMessage,
+    getLicenseConversionTaskResponse_httpStatus,
+
+    -- ** GetLicenseManagerReportGenerator
+    getLicenseManagerReportGenerator_licenseManagerReportGeneratorArn,
+    getLicenseManagerReportGeneratorResponse_reportGenerator,
+    getLicenseManagerReportGeneratorResponse_httpStatus,
+
+    -- ** GetLicenseUsage
+    getLicenseUsage_licenseArn,
+    getLicenseUsageResponse_licenseUsage,
+    getLicenseUsageResponse_httpStatus,
+
+    -- ** GetServiceSettings
+    getServiceSettingsResponse_enableCrossAccountsDiscovery,
+    getServiceSettingsResponse_licenseManagerResourceShareArn,
+    getServiceSettingsResponse_organizationConfiguration,
+    getServiceSettingsResponse_s3BucketArn,
+    getServiceSettingsResponse_snsTopicArn,
+    getServiceSettingsResponse_httpStatus,
+
+    -- ** ListAssociationsForLicenseConfiguration
+    listAssociationsForLicenseConfiguration_maxResults,
+    listAssociationsForLicenseConfiguration_nextToken,
+    listAssociationsForLicenseConfiguration_licenseConfigurationArn,
+    listAssociationsForLicenseConfigurationResponse_licenseConfigurationAssociations,
+    listAssociationsForLicenseConfigurationResponse_nextToken,
+    listAssociationsForLicenseConfigurationResponse_httpStatus,
+
+    -- ** ListDistributedGrants
+    listDistributedGrants_filters,
+    listDistributedGrants_grantArns,
+    listDistributedGrants_maxResults,
+    listDistributedGrants_nextToken,
+    listDistributedGrantsResponse_grants,
+    listDistributedGrantsResponse_nextToken,
+    listDistributedGrantsResponse_httpStatus,
+
+    -- ** ListFailuresForLicenseConfigurationOperations
+    listFailuresForLicenseConfigurationOperations_maxResults,
+    listFailuresForLicenseConfigurationOperations_nextToken,
+    listFailuresForLicenseConfigurationOperations_licenseConfigurationArn,
+    listFailuresForLicenseConfigurationOperationsResponse_licenseOperationFailureList,
+    listFailuresForLicenseConfigurationOperationsResponse_nextToken,
+    listFailuresForLicenseConfigurationOperationsResponse_httpStatus,
+
+    -- ** ListLicenseConfigurations
+    listLicenseConfigurations_filters,
+    listLicenseConfigurations_licenseConfigurationArns,
+    listLicenseConfigurations_maxResults,
+    listLicenseConfigurations_nextToken,
+    listLicenseConfigurationsResponse_licenseConfigurations,
+    listLicenseConfigurationsResponse_nextToken,
+    listLicenseConfigurationsResponse_httpStatus,
+
+    -- ** ListLicenseConversionTasks
+    listLicenseConversionTasks_filters,
+    listLicenseConversionTasks_maxResults,
+    listLicenseConversionTasks_nextToken,
+    listLicenseConversionTasksResponse_licenseConversionTasks,
+    listLicenseConversionTasksResponse_nextToken,
+    listLicenseConversionTasksResponse_httpStatus,
+
+    -- ** ListLicenseManagerReportGenerators
+    listLicenseManagerReportGenerators_filters,
+    listLicenseManagerReportGenerators_maxResults,
+    listLicenseManagerReportGenerators_nextToken,
+    listLicenseManagerReportGeneratorsResponse_nextToken,
+    listLicenseManagerReportGeneratorsResponse_reportGenerators,
+    listLicenseManagerReportGeneratorsResponse_httpStatus,
+
+    -- ** ListLicenseSpecificationsForResource
+    listLicenseSpecificationsForResource_maxResults,
+    listLicenseSpecificationsForResource_nextToken,
+    listLicenseSpecificationsForResource_resourceArn,
+    listLicenseSpecificationsForResourceResponse_licenseSpecifications,
+    listLicenseSpecificationsForResourceResponse_nextToken,
+    listLicenseSpecificationsForResourceResponse_httpStatus,
+
+    -- ** ListLicenseVersions
+    listLicenseVersions_maxResults,
+    listLicenseVersions_nextToken,
+    listLicenseVersions_licenseArn,
+    listLicenseVersionsResponse_licenses,
+    listLicenseVersionsResponse_nextToken,
+    listLicenseVersionsResponse_httpStatus,
+
+    -- ** ListLicenses
+    listLicenses_filters,
+    listLicenses_licenseArns,
+    listLicenses_maxResults,
+    listLicenses_nextToken,
+    listLicensesResponse_licenses,
+    listLicensesResponse_nextToken,
+    listLicensesResponse_httpStatus,
+
+    -- ** ListReceivedGrants
+    listReceivedGrants_filters,
+    listReceivedGrants_grantArns,
+    listReceivedGrants_maxResults,
+    listReceivedGrants_nextToken,
+    listReceivedGrantsResponse_grants,
+    listReceivedGrantsResponse_nextToken,
+    listReceivedGrantsResponse_httpStatus,
+
+    -- ** ListReceivedGrantsForOrganization
+    listReceivedGrantsForOrganization_filters,
+    listReceivedGrantsForOrganization_maxResults,
+    listReceivedGrantsForOrganization_nextToken,
+    listReceivedGrantsForOrganization_licenseArn,
+    listReceivedGrantsForOrganizationResponse_grants,
+    listReceivedGrantsForOrganizationResponse_nextToken,
+    listReceivedGrantsForOrganizationResponse_httpStatus,
+
+    -- ** ListReceivedLicenses
+    listReceivedLicenses_filters,
+    listReceivedLicenses_licenseArns,
+    listReceivedLicenses_maxResults,
+    listReceivedLicenses_nextToken,
+    listReceivedLicensesResponse_licenses,
+    listReceivedLicensesResponse_nextToken,
+    listReceivedLicensesResponse_httpStatus,
+
+    -- ** ListReceivedLicensesForOrganization
+    listReceivedLicensesForOrganization_filters,
+    listReceivedLicensesForOrganization_maxResults,
+    listReceivedLicensesForOrganization_nextToken,
+    listReceivedLicensesForOrganizationResponse_licenses,
+    listReceivedLicensesForOrganizationResponse_nextToken,
+    listReceivedLicensesForOrganizationResponse_httpStatus,
+
+    -- ** ListResourceInventory
+    listResourceInventory_filters,
+    listResourceInventory_maxResults,
+    listResourceInventory_nextToken,
+    listResourceInventoryResponse_nextToken,
+    listResourceInventoryResponse_resourceInventoryList,
+    listResourceInventoryResponse_httpStatus,
+
+    -- ** ListTagsForResource
+    listTagsForResource_resourceArn,
+    listTagsForResourceResponse_tags,
+    listTagsForResourceResponse_httpStatus,
+
+    -- ** ListTokens
+    listTokens_filters,
+    listTokens_maxResults,
+    listTokens_nextToken,
+    listTokens_tokenIds,
+    listTokensResponse_nextToken,
+    listTokensResponse_tokens,
+    listTokensResponse_httpStatus,
+
+    -- ** ListUsageForLicenseConfiguration
+    listUsageForLicenseConfiguration_filters,
+    listUsageForLicenseConfiguration_maxResults,
+    listUsageForLicenseConfiguration_nextToken,
+    listUsageForLicenseConfiguration_licenseConfigurationArn,
+    listUsageForLicenseConfigurationResponse_licenseConfigurationUsageList,
+    listUsageForLicenseConfigurationResponse_nextToken,
+    listUsageForLicenseConfigurationResponse_httpStatus,
+
+    -- ** RejectGrant
+    rejectGrant_grantArn,
+    rejectGrantResponse_grantArn,
+    rejectGrantResponse_status,
+    rejectGrantResponse_version,
+    rejectGrantResponse_httpStatus,
+
+    -- ** TagResource
+    tagResource_resourceArn,
+    tagResource_tags,
+    tagResourceResponse_httpStatus,
+
+    -- ** UntagResource
+    untagResource_resourceArn,
+    untagResource_tagKeys,
+    untagResourceResponse_httpStatus,
+
+    -- ** UpdateLicenseConfiguration
+    updateLicenseConfiguration_description,
+    updateLicenseConfiguration_disassociateWhenNotFound,
+    updateLicenseConfiguration_licenseConfigurationStatus,
+    updateLicenseConfiguration_licenseCount,
+    updateLicenseConfiguration_licenseCountHardLimit,
+    updateLicenseConfiguration_licenseRules,
+    updateLicenseConfiguration_name,
+    updateLicenseConfiguration_productInformationList,
+    updateLicenseConfiguration_licenseConfigurationArn,
+    updateLicenseConfigurationResponse_httpStatus,
+
+    -- ** UpdateLicenseManagerReportGenerator
+    updateLicenseManagerReportGenerator_description,
+    updateLicenseManagerReportGenerator_licenseManagerReportGeneratorArn,
+    updateLicenseManagerReportGenerator_reportGeneratorName,
+    updateLicenseManagerReportGenerator_type,
+    updateLicenseManagerReportGenerator_reportContext,
+    updateLicenseManagerReportGenerator_reportFrequency,
+    updateLicenseManagerReportGenerator_clientToken,
+    updateLicenseManagerReportGeneratorResponse_httpStatus,
+
+    -- ** UpdateLicenseSpecificationsForResource
+    updateLicenseSpecificationsForResource_addLicenseSpecifications,
+    updateLicenseSpecificationsForResource_removeLicenseSpecifications,
+    updateLicenseSpecificationsForResource_resourceArn,
+    updateLicenseSpecificationsForResourceResponse_httpStatus,
+
+    -- ** UpdateServiceSettings
+    updateServiceSettings_enableCrossAccountsDiscovery,
+    updateServiceSettings_organizationConfiguration,
+    updateServiceSettings_s3BucketArn,
+    updateServiceSettings_snsTopicArn,
+    updateServiceSettingsResponse_httpStatus,
+
+    -- * Types
+
+    -- ** AutomatedDiscoveryInformation
+    automatedDiscoveryInformation_lastRunTime,
+
+    -- ** BorrowConfiguration
+    borrowConfiguration_allowEarlyCheckIn,
+    borrowConfiguration_maxTimeToLiveInMinutes,
+
+    -- ** ConsumedLicenseSummary
+    consumedLicenseSummary_consumedLicenses,
+    consumedLicenseSummary_resourceType,
+
+    -- ** ConsumptionConfiguration
+    consumptionConfiguration_borrowConfiguration,
+    consumptionConfiguration_provisionalConfiguration,
+    consumptionConfiguration_renewType,
+
+    -- ** DatetimeRange
+    datetimeRange_end,
+    datetimeRange_begin,
+
+    -- ** Entitlement
+    entitlement_allowCheckIn,
+    entitlement_maxCount,
+    entitlement_overage,
+    entitlement_value,
+    entitlement_name,
+    entitlement_unit,
+
+    -- ** EntitlementData
+    entitlementData_value,
+    entitlementData_name,
+    entitlementData_unit,
+
+    -- ** EntitlementUsage
+    entitlementUsage_maxCount,
+    entitlementUsage_name,
+    entitlementUsage_consumedValue,
+    entitlementUsage_unit,
+
+    -- ** Filter
+    filter_name,
+    filter_values,
+
+    -- ** Grant
+    grant_statusReason,
+    grant_grantArn,
+    grant_grantName,
+    grant_parentArn,
+    grant_licenseArn,
+    grant_granteePrincipalArn,
+    grant_homeRegion,
+    grant_grantStatus,
+    grant_version,
+    grant_grantedOperations,
+
+    -- ** GrantedLicense
+    grantedLicense_beneficiary,
+    grantedLicense_consumptionConfiguration,
+    grantedLicense_createTime,
+    grantedLicense_entitlements,
+    grantedLicense_homeRegion,
+    grantedLicense_issuer,
+    grantedLicense_licenseArn,
+    grantedLicense_licenseMetadata,
+    grantedLicense_licenseName,
+    grantedLicense_productName,
+    grantedLicense_productSKU,
+    grantedLicense_receivedMetadata,
+    grantedLicense_status,
+    grantedLicense_validity,
+    grantedLicense_version,
+
+    -- ** InventoryFilter
+    inventoryFilter_value,
+    inventoryFilter_name,
+    inventoryFilter_condition,
+
+    -- ** Issuer
+    issuer_signKey,
+    issuer_name,
+
+    -- ** IssuerDetails
+    issuerDetails_keyFingerprint,
+    issuerDetails_name,
+    issuerDetails_signKey,
+
+    -- ** License
+    license_beneficiary,
+    license_consumptionConfiguration,
+    license_createTime,
+    license_entitlements,
+    license_homeRegion,
+    license_issuer,
+    license_licenseArn,
+    license_licenseMetadata,
+    license_licenseName,
+    license_productName,
+    license_productSKU,
+    license_status,
+    license_validity,
+    license_version,
+
+    -- ** LicenseConfiguration
+    licenseConfiguration_automatedDiscoveryInformation,
+    licenseConfiguration_consumedLicenseSummaryList,
+    licenseConfiguration_consumedLicenses,
+    licenseConfiguration_description,
+    licenseConfiguration_disassociateWhenNotFound,
+    licenseConfiguration_licenseConfigurationArn,
+    licenseConfiguration_licenseConfigurationId,
+    licenseConfiguration_licenseCount,
+    licenseConfiguration_licenseCountHardLimit,
+    licenseConfiguration_licenseCountingType,
+    licenseConfiguration_licenseRules,
+    licenseConfiguration_managedResourceSummaryList,
+    licenseConfiguration_name,
+    licenseConfiguration_ownerAccountId,
+    licenseConfiguration_productInformationList,
+    licenseConfiguration_status,
+
+    -- ** LicenseConfigurationAssociation
+    licenseConfigurationAssociation_amiAssociationScope,
+    licenseConfigurationAssociation_associationTime,
+    licenseConfigurationAssociation_resourceArn,
+    licenseConfigurationAssociation_resourceOwnerId,
+    licenseConfigurationAssociation_resourceType,
+
+    -- ** LicenseConfigurationUsage
+    licenseConfigurationUsage_associationTime,
+    licenseConfigurationUsage_consumedLicenses,
+    licenseConfigurationUsage_resourceArn,
+    licenseConfigurationUsage_resourceOwnerId,
+    licenseConfigurationUsage_resourceStatus,
+    licenseConfigurationUsage_resourceType,
+
+    -- ** LicenseConversionContext
+    licenseConversionContext_usageOperation,
+
+    -- ** LicenseConversionTask
+    licenseConversionTask_destinationLicenseContext,
+    licenseConversionTask_endTime,
+    licenseConversionTask_licenseConversionTaskId,
+    licenseConversionTask_licenseConversionTime,
+    licenseConversionTask_resourceArn,
+    licenseConversionTask_sourceLicenseContext,
+    licenseConversionTask_startTime,
+    licenseConversionTask_status,
+    licenseConversionTask_statusMessage,
+
+    -- ** LicenseOperationFailure
+    licenseOperationFailure_errorMessage,
+    licenseOperationFailure_failureTime,
+    licenseOperationFailure_metadataList,
+    licenseOperationFailure_operationName,
+    licenseOperationFailure_operationRequestedBy,
+    licenseOperationFailure_resourceArn,
+    licenseOperationFailure_resourceOwnerId,
+    licenseOperationFailure_resourceType,
+
+    -- ** LicenseSpecification
+    licenseSpecification_amiAssociationScope,
+    licenseSpecification_licenseConfigurationArn,
+
+    -- ** LicenseUsage
+    licenseUsage_entitlementUsages,
+
+    -- ** ManagedResourceSummary
+    managedResourceSummary_associationCount,
+    managedResourceSummary_resourceType,
+
+    -- ** Metadata
+    metadata_name,
+    metadata_value,
+
+    -- ** OrganizationConfiguration
+    organizationConfiguration_enableIntegration,
+
+    -- ** ProductInformation
+    productInformation_resourceType,
+    productInformation_productInformationFilterList,
+
+    -- ** ProductInformationFilter
+    productInformationFilter_productInformationFilterValue,
+    productInformationFilter_productInformationFilterName,
+    productInformationFilter_productInformationFilterComparator,
+
+    -- ** ProvisionalConfiguration
+    provisionalConfiguration_maxTimeToLiveInMinutes,
+
+    -- ** ReceivedMetadata
+    receivedMetadata_allowedOperations,
+    receivedMetadata_receivedStatus,
+    receivedMetadata_receivedStatusReason,
+
+    -- ** ReportContext
+    reportContext_licenseConfigurationArns,
+
+    -- ** ReportFrequency
+    reportFrequency_period,
+    reportFrequency_value,
+
+    -- ** ReportGenerator
+    reportGenerator_createTime,
+    reportGenerator_description,
+    reportGenerator_lastReportGenerationTime,
+    reportGenerator_lastRunFailureReason,
+    reportGenerator_lastRunStatus,
+    reportGenerator_licenseManagerReportGeneratorArn,
+    reportGenerator_reportContext,
+    reportGenerator_reportCreatorAccount,
+    reportGenerator_reportFrequency,
+    reportGenerator_reportGeneratorName,
+    reportGenerator_reportType,
+    reportGenerator_s3Location,
+    reportGenerator_tags,
+
+    -- ** ResourceInventory
+    resourceInventory_platform,
+    resourceInventory_platformVersion,
+    resourceInventory_resourceArn,
+    resourceInventory_resourceId,
+    resourceInventory_resourceOwningAccountId,
+    resourceInventory_resourceType,
+
+    -- ** S3Location
+    s3Location_bucket,
+    s3Location_keyPrefix,
+
+    -- ** Tag
+    tag_key,
+    tag_value,
+
+    -- ** TokenData
+    tokenData_expirationTime,
+    tokenData_licenseArn,
+    tokenData_roleArns,
+    tokenData_status,
+    tokenData_tokenId,
+    tokenData_tokenProperties,
+    tokenData_tokenType,
+  )
+where
+
+import Amazonka.LicenseManager.AcceptGrant
+import Amazonka.LicenseManager.CheckInLicense
+import Amazonka.LicenseManager.CheckoutBorrowLicense
+import Amazonka.LicenseManager.CheckoutLicense
+import Amazonka.LicenseManager.CreateGrant
+import Amazonka.LicenseManager.CreateGrantVersion
+import Amazonka.LicenseManager.CreateLicense
+import Amazonka.LicenseManager.CreateLicenseConfiguration
+import Amazonka.LicenseManager.CreateLicenseConversionTaskForResource
+import Amazonka.LicenseManager.CreateLicenseManagerReportGenerator
+import Amazonka.LicenseManager.CreateLicenseVersion
+import Amazonka.LicenseManager.CreateToken
+import Amazonka.LicenseManager.DeleteGrant
+import Amazonka.LicenseManager.DeleteLicense
+import Amazonka.LicenseManager.DeleteLicenseConfiguration
+import Amazonka.LicenseManager.DeleteLicenseManagerReportGenerator
+import Amazonka.LicenseManager.DeleteToken
+import Amazonka.LicenseManager.ExtendLicenseConsumption
+import Amazonka.LicenseManager.GetAccessToken
+import Amazonka.LicenseManager.GetGrant
+import Amazonka.LicenseManager.GetLicense
+import Amazonka.LicenseManager.GetLicenseConfiguration
+import Amazonka.LicenseManager.GetLicenseConversionTask
+import Amazonka.LicenseManager.GetLicenseManagerReportGenerator
+import Amazonka.LicenseManager.GetLicenseUsage
+import Amazonka.LicenseManager.GetServiceSettings
+import Amazonka.LicenseManager.ListAssociationsForLicenseConfiguration
+import Amazonka.LicenseManager.ListDistributedGrants
+import Amazonka.LicenseManager.ListFailuresForLicenseConfigurationOperations
+import Amazonka.LicenseManager.ListLicenseConfigurations
+import Amazonka.LicenseManager.ListLicenseConversionTasks
+import Amazonka.LicenseManager.ListLicenseManagerReportGenerators
+import Amazonka.LicenseManager.ListLicenseSpecificationsForResource
+import Amazonka.LicenseManager.ListLicenseVersions
+import Amazonka.LicenseManager.ListLicenses
+import Amazonka.LicenseManager.ListReceivedGrants
+import Amazonka.LicenseManager.ListReceivedGrantsForOrganization
+import Amazonka.LicenseManager.ListReceivedLicenses
+import Amazonka.LicenseManager.ListReceivedLicensesForOrganization
+import Amazonka.LicenseManager.ListResourceInventory
+import Amazonka.LicenseManager.ListTagsForResource
+import Amazonka.LicenseManager.ListTokens
+import Amazonka.LicenseManager.ListUsageForLicenseConfiguration
+import Amazonka.LicenseManager.RejectGrant
+import Amazonka.LicenseManager.TagResource
+import Amazonka.LicenseManager.Types.AutomatedDiscoveryInformation
+import Amazonka.LicenseManager.Types.BorrowConfiguration
+import Amazonka.LicenseManager.Types.ConsumedLicenseSummary
+import Amazonka.LicenseManager.Types.ConsumptionConfiguration
+import Amazonka.LicenseManager.Types.DatetimeRange
+import Amazonka.LicenseManager.Types.Entitlement
+import Amazonka.LicenseManager.Types.EntitlementData
+import Amazonka.LicenseManager.Types.EntitlementUsage
+import Amazonka.LicenseManager.Types.Filter
+import Amazonka.LicenseManager.Types.Grant
+import Amazonka.LicenseManager.Types.GrantedLicense
+import Amazonka.LicenseManager.Types.InventoryFilter
+import Amazonka.LicenseManager.Types.Issuer
+import Amazonka.LicenseManager.Types.IssuerDetails
+import Amazonka.LicenseManager.Types.License
+import Amazonka.LicenseManager.Types.LicenseConfiguration
+import Amazonka.LicenseManager.Types.LicenseConfigurationAssociation
+import Amazonka.LicenseManager.Types.LicenseConfigurationUsage
+import Amazonka.LicenseManager.Types.LicenseConversionContext
+import Amazonka.LicenseManager.Types.LicenseConversionTask
+import Amazonka.LicenseManager.Types.LicenseOperationFailure
+import Amazonka.LicenseManager.Types.LicenseSpecification
+import Amazonka.LicenseManager.Types.LicenseUsage
+import Amazonka.LicenseManager.Types.ManagedResourceSummary
+import Amazonka.LicenseManager.Types.Metadata
+import Amazonka.LicenseManager.Types.OrganizationConfiguration
+import Amazonka.LicenseManager.Types.ProductInformation
+import Amazonka.LicenseManager.Types.ProductInformationFilter
+import Amazonka.LicenseManager.Types.ProvisionalConfiguration
+import Amazonka.LicenseManager.Types.ReceivedMetadata
+import Amazonka.LicenseManager.Types.ReportContext
+import Amazonka.LicenseManager.Types.ReportFrequency
+import Amazonka.LicenseManager.Types.ReportGenerator
+import Amazonka.LicenseManager.Types.ResourceInventory
+import Amazonka.LicenseManager.Types.S3Location
+import Amazonka.LicenseManager.Types.Tag
+import Amazonka.LicenseManager.Types.TokenData
+import Amazonka.LicenseManager.UntagResource
+import Amazonka.LicenseManager.UpdateLicenseConfiguration
+import Amazonka.LicenseManager.UpdateLicenseManagerReportGenerator
+import Amazonka.LicenseManager.UpdateLicenseSpecificationsForResource
+import Amazonka.LicenseManager.UpdateServiceSettings
diff --git a/gen/Amazonka/LicenseManager/ListAssociationsForLicenseConfiguration.hs b/gen/Amazonka/LicenseManager/ListAssociationsForLicenseConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/ListAssociationsForLicenseConfiguration.hs
@@ -0,0 +1,281 @@
+{-# 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.LicenseManager.ListAssociationsForLicenseConfiguration
+-- 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 the resource associations for the specified license configuration.
+--
+-- Resource associations need not consume licenses from a license
+-- configuration. For example, an AMI or a stopped instance might not
+-- consume a license (depending on the license rules).
+--
+-- This operation returns paginated results.
+module Amazonka.LicenseManager.ListAssociationsForLicenseConfiguration
+  ( -- * Creating a Request
+    ListAssociationsForLicenseConfiguration (..),
+    newListAssociationsForLicenseConfiguration,
+
+    -- * Request Lenses
+    listAssociationsForLicenseConfiguration_maxResults,
+    listAssociationsForLicenseConfiguration_nextToken,
+    listAssociationsForLicenseConfiguration_licenseConfigurationArn,
+
+    -- * Destructuring the Response
+    ListAssociationsForLicenseConfigurationResponse (..),
+    newListAssociationsForLicenseConfigurationResponse,
+
+    -- * Response Lenses
+    listAssociationsForLicenseConfigurationResponse_licenseConfigurationAssociations,
+    listAssociationsForLicenseConfigurationResponse_nextToken,
+    listAssociationsForLicenseConfigurationResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newListAssociationsForLicenseConfiguration' smart constructor.
+data ListAssociationsForLicenseConfiguration = ListAssociationsForLicenseConfiguration'
+  { -- | Maximum number of results to return in a single call.
+    maxResults :: Prelude.Maybe Prelude.Int,
+    -- | Token for the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | Amazon Resource Name (ARN) of a license configuration.
+    licenseConfigurationArn :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListAssociationsForLicenseConfiguration' 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', 'listAssociationsForLicenseConfiguration_maxResults' - Maximum number of results to return in a single call.
+--
+-- 'nextToken', 'listAssociationsForLicenseConfiguration_nextToken' - Token for the next set of results.
+--
+-- 'licenseConfigurationArn', 'listAssociationsForLicenseConfiguration_licenseConfigurationArn' - Amazon Resource Name (ARN) of a license configuration.
+newListAssociationsForLicenseConfiguration ::
+  -- | 'licenseConfigurationArn'
+  Prelude.Text ->
+  ListAssociationsForLicenseConfiguration
+newListAssociationsForLicenseConfiguration
+  pLicenseConfigurationArn_ =
+    ListAssociationsForLicenseConfiguration'
+      { maxResults =
+          Prelude.Nothing,
+        nextToken = Prelude.Nothing,
+        licenseConfigurationArn =
+          pLicenseConfigurationArn_
+      }
+
+-- | Maximum number of results to return in a single call.
+listAssociationsForLicenseConfiguration_maxResults :: Lens.Lens' ListAssociationsForLicenseConfiguration (Prelude.Maybe Prelude.Int)
+listAssociationsForLicenseConfiguration_maxResults = Lens.lens (\ListAssociationsForLicenseConfiguration' {maxResults} -> maxResults) (\s@ListAssociationsForLicenseConfiguration' {} a -> s {maxResults = a} :: ListAssociationsForLicenseConfiguration)
+
+-- | Token for the next set of results.
+listAssociationsForLicenseConfiguration_nextToken :: Lens.Lens' ListAssociationsForLicenseConfiguration (Prelude.Maybe Prelude.Text)
+listAssociationsForLicenseConfiguration_nextToken = Lens.lens (\ListAssociationsForLicenseConfiguration' {nextToken} -> nextToken) (\s@ListAssociationsForLicenseConfiguration' {} a -> s {nextToken = a} :: ListAssociationsForLicenseConfiguration)
+
+-- | Amazon Resource Name (ARN) of a license configuration.
+listAssociationsForLicenseConfiguration_licenseConfigurationArn :: Lens.Lens' ListAssociationsForLicenseConfiguration Prelude.Text
+listAssociationsForLicenseConfiguration_licenseConfigurationArn = Lens.lens (\ListAssociationsForLicenseConfiguration' {licenseConfigurationArn} -> licenseConfigurationArn) (\s@ListAssociationsForLicenseConfiguration' {} a -> s {licenseConfigurationArn = a} :: ListAssociationsForLicenseConfiguration)
+
+instance
+  Core.AWSPager
+    ListAssociationsForLicenseConfiguration
+  where
+  page rq rs
+    | Core.stop
+        ( rs
+            Lens.^? listAssociationsForLicenseConfigurationResponse_nextToken
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Core.stop
+        ( rs
+            Lens.^? listAssociationsForLicenseConfigurationResponse_licenseConfigurationAssociations
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Prelude.otherwise =
+        Prelude.Just
+          Prelude.$ rq
+          Prelude.& listAssociationsForLicenseConfiguration_nextToken
+          Lens..~ rs
+          Lens.^? listAssociationsForLicenseConfigurationResponse_nextToken
+          Prelude.. Lens._Just
+
+instance
+  Core.AWSRequest
+    ListAssociationsForLicenseConfiguration
+  where
+  type
+    AWSResponse
+      ListAssociationsForLicenseConfiguration =
+      ListAssociationsForLicenseConfigurationResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListAssociationsForLicenseConfigurationResponse'
+            Prelude.<$> ( x
+                            Data..?> "LicenseConfigurationAssociations"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "NextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    ListAssociationsForLicenseConfiguration
+  where
+  hashWithSalt
+    _salt
+    ListAssociationsForLicenseConfiguration' {..} =
+      _salt
+        `Prelude.hashWithSalt` maxResults
+        `Prelude.hashWithSalt` nextToken
+        `Prelude.hashWithSalt` licenseConfigurationArn
+
+instance
+  Prelude.NFData
+    ListAssociationsForLicenseConfiguration
+  where
+  rnf ListAssociationsForLicenseConfiguration' {..} =
+    Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf licenseConfigurationArn
+
+instance
+  Data.ToHeaders
+    ListAssociationsForLicenseConfiguration
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.ListAssociationsForLicenseConfiguration" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    ListAssociationsForLicenseConfiguration
+  where
+  toJSON ListAssociationsForLicenseConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,
+            ("NextToken" Data..=) Prelude.<$> nextToken,
+            Prelude.Just
+              ( "LicenseConfigurationArn"
+                  Data..= licenseConfigurationArn
+              )
+          ]
+      )
+
+instance
+  Data.ToPath
+    ListAssociationsForLicenseConfiguration
+  where
+  toPath = Prelude.const "/"
+
+instance
+  Data.ToQuery
+    ListAssociationsForLicenseConfiguration
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newListAssociationsForLicenseConfigurationResponse' smart constructor.
+data ListAssociationsForLicenseConfigurationResponse = ListAssociationsForLicenseConfigurationResponse'
+  { -- | Information about the associations for the license configuration.
+    licenseConfigurationAssociations :: Prelude.Maybe [LicenseConfigurationAssociation],
+    -- | Token for the next set of results.
+    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 'ListAssociationsForLicenseConfigurationResponse' 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:
+--
+-- 'licenseConfigurationAssociations', 'listAssociationsForLicenseConfigurationResponse_licenseConfigurationAssociations' - Information about the associations for the license configuration.
+--
+-- 'nextToken', 'listAssociationsForLicenseConfigurationResponse_nextToken' - Token for the next set of results.
+--
+-- 'httpStatus', 'listAssociationsForLicenseConfigurationResponse_httpStatus' - The response's http status code.
+newListAssociationsForLicenseConfigurationResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListAssociationsForLicenseConfigurationResponse
+newListAssociationsForLicenseConfigurationResponse
+  pHttpStatus_ =
+    ListAssociationsForLicenseConfigurationResponse'
+      { licenseConfigurationAssociations =
+          Prelude.Nothing,
+        nextToken =
+          Prelude.Nothing,
+        httpStatus = pHttpStatus_
+      }
+
+-- | Information about the associations for the license configuration.
+listAssociationsForLicenseConfigurationResponse_licenseConfigurationAssociations :: Lens.Lens' ListAssociationsForLicenseConfigurationResponse (Prelude.Maybe [LicenseConfigurationAssociation])
+listAssociationsForLicenseConfigurationResponse_licenseConfigurationAssociations = Lens.lens (\ListAssociationsForLicenseConfigurationResponse' {licenseConfigurationAssociations} -> licenseConfigurationAssociations) (\s@ListAssociationsForLicenseConfigurationResponse' {} a -> s {licenseConfigurationAssociations = a} :: ListAssociationsForLicenseConfigurationResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | Token for the next set of results.
+listAssociationsForLicenseConfigurationResponse_nextToken :: Lens.Lens' ListAssociationsForLicenseConfigurationResponse (Prelude.Maybe Prelude.Text)
+listAssociationsForLicenseConfigurationResponse_nextToken = Lens.lens (\ListAssociationsForLicenseConfigurationResponse' {nextToken} -> nextToken) (\s@ListAssociationsForLicenseConfigurationResponse' {} a -> s {nextToken = a} :: ListAssociationsForLicenseConfigurationResponse)
+
+-- | The response's http status code.
+listAssociationsForLicenseConfigurationResponse_httpStatus :: Lens.Lens' ListAssociationsForLicenseConfigurationResponse Prelude.Int
+listAssociationsForLicenseConfigurationResponse_httpStatus = Lens.lens (\ListAssociationsForLicenseConfigurationResponse' {httpStatus} -> httpStatus) (\s@ListAssociationsForLicenseConfigurationResponse' {} a -> s {httpStatus = a} :: ListAssociationsForLicenseConfigurationResponse)
+
+instance
+  Prelude.NFData
+    ListAssociationsForLicenseConfigurationResponse
+  where
+  rnf
+    ListAssociationsForLicenseConfigurationResponse' {..} =
+      Prelude.rnf licenseConfigurationAssociations
+        `Prelude.seq` Prelude.rnf nextToken
+        `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/ListDistributedGrants.hs b/gen/Amazonka/LicenseManager/ListDistributedGrants.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/ListDistributedGrants.hs
@@ -0,0 +1,252 @@
+{-# 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.LicenseManager.ListDistributedGrants
+-- 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 the grants distributed for the specified license.
+module Amazonka.LicenseManager.ListDistributedGrants
+  ( -- * Creating a Request
+    ListDistributedGrants (..),
+    newListDistributedGrants,
+
+    -- * Request Lenses
+    listDistributedGrants_filters,
+    listDistributedGrants_grantArns,
+    listDistributedGrants_maxResults,
+    listDistributedGrants_nextToken,
+
+    -- * Destructuring the Response
+    ListDistributedGrantsResponse (..),
+    newListDistributedGrantsResponse,
+
+    -- * Response Lenses
+    listDistributedGrantsResponse_grants,
+    listDistributedGrantsResponse_nextToken,
+    listDistributedGrantsResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newListDistributedGrants' smart constructor.
+data ListDistributedGrants = ListDistributedGrants'
+  { -- | Filters to scope the results. The following filters are supported:
+    --
+    -- -   @LicenseArn@
+    --
+    -- -   @GrantStatus@
+    --
+    -- -   @GranteePrincipalARN@
+    --
+    -- -   @ProductSKU@
+    --
+    -- -   @LicenseIssuerName@
+    filters :: Prelude.Maybe [Filter],
+    -- | Amazon Resource Names (ARNs) of the grants.
+    grantArns :: Prelude.Maybe [Prelude.Text],
+    -- | Maximum number of results to return in a single call.
+    maxResults :: Prelude.Maybe Prelude.Natural,
+    -- | Token for the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListDistributedGrants' 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:
+--
+-- 'filters', 'listDistributedGrants_filters' - Filters to scope the results. The following filters are supported:
+--
+-- -   @LicenseArn@
+--
+-- -   @GrantStatus@
+--
+-- -   @GranteePrincipalARN@
+--
+-- -   @ProductSKU@
+--
+-- -   @LicenseIssuerName@
+--
+-- 'grantArns', 'listDistributedGrants_grantArns' - Amazon Resource Names (ARNs) of the grants.
+--
+-- 'maxResults', 'listDistributedGrants_maxResults' - Maximum number of results to return in a single call.
+--
+-- 'nextToken', 'listDistributedGrants_nextToken' - Token for the next set of results.
+newListDistributedGrants ::
+  ListDistributedGrants
+newListDistributedGrants =
+  ListDistributedGrants'
+    { filters = Prelude.Nothing,
+      grantArns = Prelude.Nothing,
+      maxResults = Prelude.Nothing,
+      nextToken = Prelude.Nothing
+    }
+
+-- | Filters to scope the results. The following filters are supported:
+--
+-- -   @LicenseArn@
+--
+-- -   @GrantStatus@
+--
+-- -   @GranteePrincipalARN@
+--
+-- -   @ProductSKU@
+--
+-- -   @LicenseIssuerName@
+listDistributedGrants_filters :: Lens.Lens' ListDistributedGrants (Prelude.Maybe [Filter])
+listDistributedGrants_filters = Lens.lens (\ListDistributedGrants' {filters} -> filters) (\s@ListDistributedGrants' {} a -> s {filters = a} :: ListDistributedGrants) Prelude.. Lens.mapping Lens.coerced
+
+-- | Amazon Resource Names (ARNs) of the grants.
+listDistributedGrants_grantArns :: Lens.Lens' ListDistributedGrants (Prelude.Maybe [Prelude.Text])
+listDistributedGrants_grantArns = Lens.lens (\ListDistributedGrants' {grantArns} -> grantArns) (\s@ListDistributedGrants' {} a -> s {grantArns = a} :: ListDistributedGrants) Prelude.. Lens.mapping Lens.coerced
+
+-- | Maximum number of results to return in a single call.
+listDistributedGrants_maxResults :: Lens.Lens' ListDistributedGrants (Prelude.Maybe Prelude.Natural)
+listDistributedGrants_maxResults = Lens.lens (\ListDistributedGrants' {maxResults} -> maxResults) (\s@ListDistributedGrants' {} a -> s {maxResults = a} :: ListDistributedGrants)
+
+-- | Token for the next set of results.
+listDistributedGrants_nextToken :: Lens.Lens' ListDistributedGrants (Prelude.Maybe Prelude.Text)
+listDistributedGrants_nextToken = Lens.lens (\ListDistributedGrants' {nextToken} -> nextToken) (\s@ListDistributedGrants' {} a -> s {nextToken = a} :: ListDistributedGrants)
+
+instance Core.AWSRequest ListDistributedGrants where
+  type
+    AWSResponse ListDistributedGrants =
+      ListDistributedGrantsResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListDistributedGrantsResponse'
+            Prelude.<$> (x Data..?> "Grants" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..?> "NextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable ListDistributedGrants where
+  hashWithSalt _salt ListDistributedGrants' {..} =
+    _salt
+      `Prelude.hashWithSalt` filters
+      `Prelude.hashWithSalt` grantArns
+      `Prelude.hashWithSalt` maxResults
+      `Prelude.hashWithSalt` nextToken
+
+instance Prelude.NFData ListDistributedGrants where
+  rnf ListDistributedGrants' {..} =
+    Prelude.rnf filters
+      `Prelude.seq` Prelude.rnf grantArns
+      `Prelude.seq` Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+
+instance Data.ToHeaders ListDistributedGrants where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.ListDistributedGrants" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON ListDistributedGrants where
+  toJSON ListDistributedGrants' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("Filters" Data..=) Prelude.<$> filters,
+            ("GrantArns" Data..=) Prelude.<$> grantArns,
+            ("MaxResults" Data..=) Prelude.<$> maxResults,
+            ("NextToken" Data..=) Prelude.<$> nextToken
+          ]
+      )
+
+instance Data.ToPath ListDistributedGrants where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery ListDistributedGrants where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newListDistributedGrantsResponse' smart constructor.
+data ListDistributedGrantsResponse = ListDistributedGrantsResponse'
+  { -- | Distributed grant details.
+    grants :: Prelude.Maybe [Grant],
+    -- | Token for the next set of results.
+    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 'ListDistributedGrantsResponse' 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:
+--
+-- 'grants', 'listDistributedGrantsResponse_grants' - Distributed grant details.
+--
+-- 'nextToken', 'listDistributedGrantsResponse_nextToken' - Token for the next set of results.
+--
+-- 'httpStatus', 'listDistributedGrantsResponse_httpStatus' - The response's http status code.
+newListDistributedGrantsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListDistributedGrantsResponse
+newListDistributedGrantsResponse pHttpStatus_ =
+  ListDistributedGrantsResponse'
+    { grants =
+        Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Distributed grant details.
+listDistributedGrantsResponse_grants :: Lens.Lens' ListDistributedGrantsResponse (Prelude.Maybe [Grant])
+listDistributedGrantsResponse_grants = Lens.lens (\ListDistributedGrantsResponse' {grants} -> grants) (\s@ListDistributedGrantsResponse' {} a -> s {grants = a} :: ListDistributedGrantsResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | Token for the next set of results.
+listDistributedGrantsResponse_nextToken :: Lens.Lens' ListDistributedGrantsResponse (Prelude.Maybe Prelude.Text)
+listDistributedGrantsResponse_nextToken = Lens.lens (\ListDistributedGrantsResponse' {nextToken} -> nextToken) (\s@ListDistributedGrantsResponse' {} a -> s {nextToken = a} :: ListDistributedGrantsResponse)
+
+-- | The response's http status code.
+listDistributedGrantsResponse_httpStatus :: Lens.Lens' ListDistributedGrantsResponse Prelude.Int
+listDistributedGrantsResponse_httpStatus = Lens.lens (\ListDistributedGrantsResponse' {httpStatus} -> httpStatus) (\s@ListDistributedGrantsResponse' {} a -> s {httpStatus = a} :: ListDistributedGrantsResponse)
+
+instance Prelude.NFData ListDistributedGrantsResponse where
+  rnf ListDistributedGrantsResponse' {..} =
+    Prelude.rnf grants
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/ListFailuresForLicenseConfigurationOperations.hs b/gen/Amazonka/LicenseManager/ListFailuresForLicenseConfigurationOperations.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/ListFailuresForLicenseConfigurationOperations.hs
@@ -0,0 +1,253 @@
+{-# 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.LicenseManager.ListFailuresForLicenseConfigurationOperations
+-- 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 the license configuration operations that failed.
+module Amazonka.LicenseManager.ListFailuresForLicenseConfigurationOperations
+  ( -- * Creating a Request
+    ListFailuresForLicenseConfigurationOperations (..),
+    newListFailuresForLicenseConfigurationOperations,
+
+    -- * Request Lenses
+    listFailuresForLicenseConfigurationOperations_maxResults,
+    listFailuresForLicenseConfigurationOperations_nextToken,
+    listFailuresForLicenseConfigurationOperations_licenseConfigurationArn,
+
+    -- * Destructuring the Response
+    ListFailuresForLicenseConfigurationOperationsResponse (..),
+    newListFailuresForLicenseConfigurationOperationsResponse,
+
+    -- * Response Lenses
+    listFailuresForLicenseConfigurationOperationsResponse_licenseOperationFailureList,
+    listFailuresForLicenseConfigurationOperationsResponse_nextToken,
+    listFailuresForLicenseConfigurationOperationsResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newListFailuresForLicenseConfigurationOperations' smart constructor.
+data ListFailuresForLicenseConfigurationOperations = ListFailuresForLicenseConfigurationOperations'
+  { -- | Maximum number of results to return in a single call.
+    maxResults :: Prelude.Maybe Prelude.Int,
+    -- | Token for the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | Amazon Resource Name of the license configuration.
+    licenseConfigurationArn :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListFailuresForLicenseConfigurationOperations' 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', 'listFailuresForLicenseConfigurationOperations_maxResults' - Maximum number of results to return in a single call.
+--
+-- 'nextToken', 'listFailuresForLicenseConfigurationOperations_nextToken' - Token for the next set of results.
+--
+-- 'licenseConfigurationArn', 'listFailuresForLicenseConfigurationOperations_licenseConfigurationArn' - Amazon Resource Name of the license configuration.
+newListFailuresForLicenseConfigurationOperations ::
+  -- | 'licenseConfigurationArn'
+  Prelude.Text ->
+  ListFailuresForLicenseConfigurationOperations
+newListFailuresForLicenseConfigurationOperations
+  pLicenseConfigurationArn_ =
+    ListFailuresForLicenseConfigurationOperations'
+      { maxResults =
+          Prelude.Nothing,
+        nextToken = Prelude.Nothing,
+        licenseConfigurationArn =
+          pLicenseConfigurationArn_
+      }
+
+-- | Maximum number of results to return in a single call.
+listFailuresForLicenseConfigurationOperations_maxResults :: Lens.Lens' ListFailuresForLicenseConfigurationOperations (Prelude.Maybe Prelude.Int)
+listFailuresForLicenseConfigurationOperations_maxResults = Lens.lens (\ListFailuresForLicenseConfigurationOperations' {maxResults} -> maxResults) (\s@ListFailuresForLicenseConfigurationOperations' {} a -> s {maxResults = a} :: ListFailuresForLicenseConfigurationOperations)
+
+-- | Token for the next set of results.
+listFailuresForLicenseConfigurationOperations_nextToken :: Lens.Lens' ListFailuresForLicenseConfigurationOperations (Prelude.Maybe Prelude.Text)
+listFailuresForLicenseConfigurationOperations_nextToken = Lens.lens (\ListFailuresForLicenseConfigurationOperations' {nextToken} -> nextToken) (\s@ListFailuresForLicenseConfigurationOperations' {} a -> s {nextToken = a} :: ListFailuresForLicenseConfigurationOperations)
+
+-- | Amazon Resource Name of the license configuration.
+listFailuresForLicenseConfigurationOperations_licenseConfigurationArn :: Lens.Lens' ListFailuresForLicenseConfigurationOperations Prelude.Text
+listFailuresForLicenseConfigurationOperations_licenseConfigurationArn = Lens.lens (\ListFailuresForLicenseConfigurationOperations' {licenseConfigurationArn} -> licenseConfigurationArn) (\s@ListFailuresForLicenseConfigurationOperations' {} a -> s {licenseConfigurationArn = a} :: ListFailuresForLicenseConfigurationOperations)
+
+instance
+  Core.AWSRequest
+    ListFailuresForLicenseConfigurationOperations
+  where
+  type
+    AWSResponse
+      ListFailuresForLicenseConfigurationOperations =
+      ListFailuresForLicenseConfigurationOperationsResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListFailuresForLicenseConfigurationOperationsResponse'
+            Prelude.<$> ( x
+                            Data..?> "LicenseOperationFailureList"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "NextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    ListFailuresForLicenseConfigurationOperations
+  where
+  hashWithSalt
+    _salt
+    ListFailuresForLicenseConfigurationOperations' {..} =
+      _salt
+        `Prelude.hashWithSalt` maxResults
+        `Prelude.hashWithSalt` nextToken
+        `Prelude.hashWithSalt` licenseConfigurationArn
+
+instance
+  Prelude.NFData
+    ListFailuresForLicenseConfigurationOperations
+  where
+  rnf
+    ListFailuresForLicenseConfigurationOperations' {..} =
+      Prelude.rnf maxResults
+        `Prelude.seq` Prelude.rnf nextToken
+        `Prelude.seq` Prelude.rnf licenseConfigurationArn
+
+instance
+  Data.ToHeaders
+    ListFailuresForLicenseConfigurationOperations
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.ListFailuresForLicenseConfigurationOperations" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    ListFailuresForLicenseConfigurationOperations
+  where
+  toJSON
+    ListFailuresForLicenseConfigurationOperations' {..} =
+      Data.object
+        ( Prelude.catMaybes
+            [ ("MaxResults" Data..=) Prelude.<$> maxResults,
+              ("NextToken" Data..=) Prelude.<$> nextToken,
+              Prelude.Just
+                ( "LicenseConfigurationArn"
+                    Data..= licenseConfigurationArn
+                )
+            ]
+        )
+
+instance
+  Data.ToPath
+    ListFailuresForLicenseConfigurationOperations
+  where
+  toPath = Prelude.const "/"
+
+instance
+  Data.ToQuery
+    ListFailuresForLicenseConfigurationOperations
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newListFailuresForLicenseConfigurationOperationsResponse' smart constructor.
+data ListFailuresForLicenseConfigurationOperationsResponse = ListFailuresForLicenseConfigurationOperationsResponse'
+  { -- | License configuration operations that failed.
+    licenseOperationFailureList :: Prelude.Maybe [LicenseOperationFailure],
+    -- | Token for the next set of results.
+    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 'ListFailuresForLicenseConfigurationOperationsResponse' 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:
+--
+-- 'licenseOperationFailureList', 'listFailuresForLicenseConfigurationOperationsResponse_licenseOperationFailureList' - License configuration operations that failed.
+--
+-- 'nextToken', 'listFailuresForLicenseConfigurationOperationsResponse_nextToken' - Token for the next set of results.
+--
+-- 'httpStatus', 'listFailuresForLicenseConfigurationOperationsResponse_httpStatus' - The response's http status code.
+newListFailuresForLicenseConfigurationOperationsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListFailuresForLicenseConfigurationOperationsResponse
+newListFailuresForLicenseConfigurationOperationsResponse
+  pHttpStatus_ =
+    ListFailuresForLicenseConfigurationOperationsResponse'
+      { licenseOperationFailureList =
+          Prelude.Nothing,
+        nextToken =
+          Prelude.Nothing,
+        httpStatus =
+          pHttpStatus_
+      }
+
+-- | License configuration operations that failed.
+listFailuresForLicenseConfigurationOperationsResponse_licenseOperationFailureList :: Lens.Lens' ListFailuresForLicenseConfigurationOperationsResponse (Prelude.Maybe [LicenseOperationFailure])
+listFailuresForLicenseConfigurationOperationsResponse_licenseOperationFailureList = Lens.lens (\ListFailuresForLicenseConfigurationOperationsResponse' {licenseOperationFailureList} -> licenseOperationFailureList) (\s@ListFailuresForLicenseConfigurationOperationsResponse' {} a -> s {licenseOperationFailureList = a} :: ListFailuresForLicenseConfigurationOperationsResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | Token for the next set of results.
+listFailuresForLicenseConfigurationOperationsResponse_nextToken :: Lens.Lens' ListFailuresForLicenseConfigurationOperationsResponse (Prelude.Maybe Prelude.Text)
+listFailuresForLicenseConfigurationOperationsResponse_nextToken = Lens.lens (\ListFailuresForLicenseConfigurationOperationsResponse' {nextToken} -> nextToken) (\s@ListFailuresForLicenseConfigurationOperationsResponse' {} a -> s {nextToken = a} :: ListFailuresForLicenseConfigurationOperationsResponse)
+
+-- | The response's http status code.
+listFailuresForLicenseConfigurationOperationsResponse_httpStatus :: Lens.Lens' ListFailuresForLicenseConfigurationOperationsResponse Prelude.Int
+listFailuresForLicenseConfigurationOperationsResponse_httpStatus = Lens.lens (\ListFailuresForLicenseConfigurationOperationsResponse' {httpStatus} -> httpStatus) (\s@ListFailuresForLicenseConfigurationOperationsResponse' {} a -> s {httpStatus = a} :: ListFailuresForLicenseConfigurationOperationsResponse)
+
+instance
+  Prelude.NFData
+    ListFailuresForLicenseConfigurationOperationsResponse
+  where
+  rnf
+    ListFailuresForLicenseConfigurationOperationsResponse' {..} =
+      Prelude.rnf licenseOperationFailureList
+        `Prelude.seq` Prelude.rnf nextToken
+        `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/ListLicenseConfigurations.hs b/gen/Amazonka/LicenseManager/ListLicenseConfigurations.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/ListLicenseConfigurations.hs
@@ -0,0 +1,293 @@
+{-# 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.LicenseManager.ListLicenseConfigurations
+-- 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 the license configurations for your account.
+--
+-- This operation returns paginated results.
+module Amazonka.LicenseManager.ListLicenseConfigurations
+  ( -- * Creating a Request
+    ListLicenseConfigurations (..),
+    newListLicenseConfigurations,
+
+    -- * Request Lenses
+    listLicenseConfigurations_filters,
+    listLicenseConfigurations_licenseConfigurationArns,
+    listLicenseConfigurations_maxResults,
+    listLicenseConfigurations_nextToken,
+
+    -- * Destructuring the Response
+    ListLicenseConfigurationsResponse (..),
+    newListLicenseConfigurationsResponse,
+
+    -- * Response Lenses
+    listLicenseConfigurationsResponse_licenseConfigurations,
+    listLicenseConfigurationsResponse_nextToken,
+    listLicenseConfigurationsResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newListLicenseConfigurations' smart constructor.
+data ListLicenseConfigurations = ListLicenseConfigurations'
+  { -- | Filters to scope the results. The following filters and logical
+    -- operators are supported:
+    --
+    -- -   @licenseCountingType@ - The dimension for which licenses are
+    --     counted. Possible values are @vCPU@ | @Instance@ | @Core@ |
+    --     @Socket@. Logical operators are @EQUALS@ | @NOT_EQUALS@.
+    --
+    -- -   @enforceLicenseCount@ - A Boolean value that indicates whether hard
+    --     license enforcement is used. Logical operators are @EQUALS@ |
+    --     @NOT_EQUALS@.
+    --
+    -- -   @usagelimitExceeded@ - A Boolean value that indicates whether the
+    --     available licenses have been exceeded. Logical operators are
+    --     @EQUALS@ | @NOT_EQUALS@.
+    filters :: Prelude.Maybe [Filter],
+    -- | Amazon Resource Names (ARN) of the license configurations.
+    licenseConfigurationArns :: Prelude.Maybe [Prelude.Text],
+    -- | Maximum number of results to return in a single call.
+    maxResults :: Prelude.Maybe Prelude.Int,
+    -- | Token for the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListLicenseConfigurations' 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:
+--
+-- 'filters', 'listLicenseConfigurations_filters' - Filters to scope the results. The following filters and logical
+-- operators are supported:
+--
+-- -   @licenseCountingType@ - The dimension for which licenses are
+--     counted. Possible values are @vCPU@ | @Instance@ | @Core@ |
+--     @Socket@. Logical operators are @EQUALS@ | @NOT_EQUALS@.
+--
+-- -   @enforceLicenseCount@ - A Boolean value that indicates whether hard
+--     license enforcement is used. Logical operators are @EQUALS@ |
+--     @NOT_EQUALS@.
+--
+-- -   @usagelimitExceeded@ - A Boolean value that indicates whether the
+--     available licenses have been exceeded. Logical operators are
+--     @EQUALS@ | @NOT_EQUALS@.
+--
+-- 'licenseConfigurationArns', 'listLicenseConfigurations_licenseConfigurationArns' - Amazon Resource Names (ARN) of the license configurations.
+--
+-- 'maxResults', 'listLicenseConfigurations_maxResults' - Maximum number of results to return in a single call.
+--
+-- 'nextToken', 'listLicenseConfigurations_nextToken' - Token for the next set of results.
+newListLicenseConfigurations ::
+  ListLicenseConfigurations
+newListLicenseConfigurations =
+  ListLicenseConfigurations'
+    { filters =
+        Prelude.Nothing,
+      licenseConfigurationArns = Prelude.Nothing,
+      maxResults = Prelude.Nothing,
+      nextToken = Prelude.Nothing
+    }
+
+-- | Filters to scope the results. The following filters and logical
+-- operators are supported:
+--
+-- -   @licenseCountingType@ - The dimension for which licenses are
+--     counted. Possible values are @vCPU@ | @Instance@ | @Core@ |
+--     @Socket@. Logical operators are @EQUALS@ | @NOT_EQUALS@.
+--
+-- -   @enforceLicenseCount@ - A Boolean value that indicates whether hard
+--     license enforcement is used. Logical operators are @EQUALS@ |
+--     @NOT_EQUALS@.
+--
+-- -   @usagelimitExceeded@ - A Boolean value that indicates whether the
+--     available licenses have been exceeded. Logical operators are
+--     @EQUALS@ | @NOT_EQUALS@.
+listLicenseConfigurations_filters :: Lens.Lens' ListLicenseConfigurations (Prelude.Maybe [Filter])
+listLicenseConfigurations_filters = Lens.lens (\ListLicenseConfigurations' {filters} -> filters) (\s@ListLicenseConfigurations' {} a -> s {filters = a} :: ListLicenseConfigurations) Prelude.. Lens.mapping Lens.coerced
+
+-- | Amazon Resource Names (ARN) of the license configurations.
+listLicenseConfigurations_licenseConfigurationArns :: Lens.Lens' ListLicenseConfigurations (Prelude.Maybe [Prelude.Text])
+listLicenseConfigurations_licenseConfigurationArns = Lens.lens (\ListLicenseConfigurations' {licenseConfigurationArns} -> licenseConfigurationArns) (\s@ListLicenseConfigurations' {} a -> s {licenseConfigurationArns = a} :: ListLicenseConfigurations) Prelude.. Lens.mapping Lens.coerced
+
+-- | Maximum number of results to return in a single call.
+listLicenseConfigurations_maxResults :: Lens.Lens' ListLicenseConfigurations (Prelude.Maybe Prelude.Int)
+listLicenseConfigurations_maxResults = Lens.lens (\ListLicenseConfigurations' {maxResults} -> maxResults) (\s@ListLicenseConfigurations' {} a -> s {maxResults = a} :: ListLicenseConfigurations)
+
+-- | Token for the next set of results.
+listLicenseConfigurations_nextToken :: Lens.Lens' ListLicenseConfigurations (Prelude.Maybe Prelude.Text)
+listLicenseConfigurations_nextToken = Lens.lens (\ListLicenseConfigurations' {nextToken} -> nextToken) (\s@ListLicenseConfigurations' {} a -> s {nextToken = a} :: ListLicenseConfigurations)
+
+instance Core.AWSPager ListLicenseConfigurations where
+  page rq rs
+    | Core.stop
+        ( rs
+            Lens.^? listLicenseConfigurationsResponse_nextToken
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Core.stop
+        ( rs
+            Lens.^? listLicenseConfigurationsResponse_licenseConfigurations
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Prelude.otherwise =
+        Prelude.Just
+          Prelude.$ rq
+          Prelude.& listLicenseConfigurations_nextToken
+          Lens..~ rs
+          Lens.^? listLicenseConfigurationsResponse_nextToken
+          Prelude.. Lens._Just
+
+instance Core.AWSRequest ListLicenseConfigurations where
+  type
+    AWSResponse ListLicenseConfigurations =
+      ListLicenseConfigurationsResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListLicenseConfigurationsResponse'
+            Prelude.<$> ( x
+                            Data..?> "LicenseConfigurations"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "NextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable ListLicenseConfigurations where
+  hashWithSalt _salt ListLicenseConfigurations' {..} =
+    _salt
+      `Prelude.hashWithSalt` filters
+      `Prelude.hashWithSalt` licenseConfigurationArns
+      `Prelude.hashWithSalt` maxResults
+      `Prelude.hashWithSalt` nextToken
+
+instance Prelude.NFData ListLicenseConfigurations where
+  rnf ListLicenseConfigurations' {..} =
+    Prelude.rnf filters
+      `Prelude.seq` Prelude.rnf licenseConfigurationArns
+      `Prelude.seq` Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+
+instance Data.ToHeaders ListLicenseConfigurations where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.ListLicenseConfigurations" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON ListLicenseConfigurations where
+  toJSON ListLicenseConfigurations' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("Filters" Data..=) Prelude.<$> filters,
+            ("LicenseConfigurationArns" Data..=)
+              Prelude.<$> licenseConfigurationArns,
+            ("MaxResults" Data..=) Prelude.<$> maxResults,
+            ("NextToken" Data..=) Prelude.<$> nextToken
+          ]
+      )
+
+instance Data.ToPath ListLicenseConfigurations where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery ListLicenseConfigurations where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newListLicenseConfigurationsResponse' smart constructor.
+data ListLicenseConfigurationsResponse = ListLicenseConfigurationsResponse'
+  { -- | Information about the license configurations.
+    licenseConfigurations :: Prelude.Maybe [LicenseConfiguration],
+    -- | Token for the next set of results.
+    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 'ListLicenseConfigurationsResponse' 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:
+--
+-- 'licenseConfigurations', 'listLicenseConfigurationsResponse_licenseConfigurations' - Information about the license configurations.
+--
+-- 'nextToken', 'listLicenseConfigurationsResponse_nextToken' - Token for the next set of results.
+--
+-- 'httpStatus', 'listLicenseConfigurationsResponse_httpStatus' - The response's http status code.
+newListLicenseConfigurationsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListLicenseConfigurationsResponse
+newListLicenseConfigurationsResponse pHttpStatus_ =
+  ListLicenseConfigurationsResponse'
+    { licenseConfigurations =
+        Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Information about the license configurations.
+listLicenseConfigurationsResponse_licenseConfigurations :: Lens.Lens' ListLicenseConfigurationsResponse (Prelude.Maybe [LicenseConfiguration])
+listLicenseConfigurationsResponse_licenseConfigurations = Lens.lens (\ListLicenseConfigurationsResponse' {licenseConfigurations} -> licenseConfigurations) (\s@ListLicenseConfigurationsResponse' {} a -> s {licenseConfigurations = a} :: ListLicenseConfigurationsResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | Token for the next set of results.
+listLicenseConfigurationsResponse_nextToken :: Lens.Lens' ListLicenseConfigurationsResponse (Prelude.Maybe Prelude.Text)
+listLicenseConfigurationsResponse_nextToken = Lens.lens (\ListLicenseConfigurationsResponse' {nextToken} -> nextToken) (\s@ListLicenseConfigurationsResponse' {} a -> s {nextToken = a} :: ListLicenseConfigurationsResponse)
+
+-- | The response's http status code.
+listLicenseConfigurationsResponse_httpStatus :: Lens.Lens' ListLicenseConfigurationsResponse Prelude.Int
+listLicenseConfigurationsResponse_httpStatus = Lens.lens (\ListLicenseConfigurationsResponse' {httpStatus} -> httpStatus) (\s@ListLicenseConfigurationsResponse' {} a -> s {httpStatus = a} :: ListLicenseConfigurationsResponse)
+
+instance
+  Prelude.NFData
+    ListLicenseConfigurationsResponse
+  where
+  rnf ListLicenseConfigurationsResponse' {..} =
+    Prelude.rnf licenseConfigurations
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/ListLicenseConversionTasks.hs b/gen/Amazonka/LicenseManager/ListLicenseConversionTasks.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/ListLicenseConversionTasks.hs
@@ -0,0 +1,219 @@
+{-# 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.LicenseManager.ListLicenseConversionTasks
+-- 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 the license type conversion tasks for your account.
+module Amazonka.LicenseManager.ListLicenseConversionTasks
+  ( -- * Creating a Request
+    ListLicenseConversionTasks (..),
+    newListLicenseConversionTasks,
+
+    -- * Request Lenses
+    listLicenseConversionTasks_filters,
+    listLicenseConversionTasks_maxResults,
+    listLicenseConversionTasks_nextToken,
+
+    -- * Destructuring the Response
+    ListLicenseConversionTasksResponse (..),
+    newListLicenseConversionTasksResponse,
+
+    -- * Response Lenses
+    listLicenseConversionTasksResponse_licenseConversionTasks,
+    listLicenseConversionTasksResponse_nextToken,
+    listLicenseConversionTasksResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newListLicenseConversionTasks' smart constructor.
+data ListLicenseConversionTasks = ListLicenseConversionTasks'
+  { -- | Filters to scope the results. Valid filters are @ResourceArns@ and
+    -- @Status@.
+    filters :: Prelude.Maybe [Filter],
+    -- | Maximum number of results to return in a single call.
+    maxResults :: Prelude.Maybe Prelude.Int,
+    -- | Token for the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListLicenseConversionTasks' 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:
+--
+-- 'filters', 'listLicenseConversionTasks_filters' - Filters to scope the results. Valid filters are @ResourceArns@ and
+-- @Status@.
+--
+-- 'maxResults', 'listLicenseConversionTasks_maxResults' - Maximum number of results to return in a single call.
+--
+-- 'nextToken', 'listLicenseConversionTasks_nextToken' - Token for the next set of results.
+newListLicenseConversionTasks ::
+  ListLicenseConversionTasks
+newListLicenseConversionTasks =
+  ListLicenseConversionTasks'
+    { filters =
+        Prelude.Nothing,
+      maxResults = Prelude.Nothing,
+      nextToken = Prelude.Nothing
+    }
+
+-- | Filters to scope the results. Valid filters are @ResourceArns@ and
+-- @Status@.
+listLicenseConversionTasks_filters :: Lens.Lens' ListLicenseConversionTasks (Prelude.Maybe [Filter])
+listLicenseConversionTasks_filters = Lens.lens (\ListLicenseConversionTasks' {filters} -> filters) (\s@ListLicenseConversionTasks' {} a -> s {filters = a} :: ListLicenseConversionTasks) Prelude.. Lens.mapping Lens.coerced
+
+-- | Maximum number of results to return in a single call.
+listLicenseConversionTasks_maxResults :: Lens.Lens' ListLicenseConversionTasks (Prelude.Maybe Prelude.Int)
+listLicenseConversionTasks_maxResults = Lens.lens (\ListLicenseConversionTasks' {maxResults} -> maxResults) (\s@ListLicenseConversionTasks' {} a -> s {maxResults = a} :: ListLicenseConversionTasks)
+
+-- | Token for the next set of results.
+listLicenseConversionTasks_nextToken :: Lens.Lens' ListLicenseConversionTasks (Prelude.Maybe Prelude.Text)
+listLicenseConversionTasks_nextToken = Lens.lens (\ListLicenseConversionTasks' {nextToken} -> nextToken) (\s@ListLicenseConversionTasks' {} a -> s {nextToken = a} :: ListLicenseConversionTasks)
+
+instance Core.AWSRequest ListLicenseConversionTasks where
+  type
+    AWSResponse ListLicenseConversionTasks =
+      ListLicenseConversionTasksResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListLicenseConversionTasksResponse'
+            Prelude.<$> ( x
+                            Data..?> "LicenseConversionTasks"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "NextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable ListLicenseConversionTasks where
+  hashWithSalt _salt ListLicenseConversionTasks' {..} =
+    _salt
+      `Prelude.hashWithSalt` filters
+      `Prelude.hashWithSalt` maxResults
+      `Prelude.hashWithSalt` nextToken
+
+instance Prelude.NFData ListLicenseConversionTasks where
+  rnf ListLicenseConversionTasks' {..} =
+    Prelude.rnf filters
+      `Prelude.seq` Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+
+instance Data.ToHeaders ListLicenseConversionTasks where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.ListLicenseConversionTasks" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON ListLicenseConversionTasks where
+  toJSON ListLicenseConversionTasks' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("Filters" Data..=) Prelude.<$> filters,
+            ("MaxResults" Data..=) Prelude.<$> maxResults,
+            ("NextToken" Data..=) Prelude.<$> nextToken
+          ]
+      )
+
+instance Data.ToPath ListLicenseConversionTasks where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery ListLicenseConversionTasks where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newListLicenseConversionTasksResponse' smart constructor.
+data ListLicenseConversionTasksResponse = ListLicenseConversionTasksResponse'
+  { -- | Information about the license configuration tasks for your account.
+    licenseConversionTasks :: Prelude.Maybe [LicenseConversionTask],
+    -- | Token for the next set of results.
+    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 'ListLicenseConversionTasksResponse' 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:
+--
+-- 'licenseConversionTasks', 'listLicenseConversionTasksResponse_licenseConversionTasks' - Information about the license configuration tasks for your account.
+--
+-- 'nextToken', 'listLicenseConversionTasksResponse_nextToken' - Token for the next set of results.
+--
+-- 'httpStatus', 'listLicenseConversionTasksResponse_httpStatus' - The response's http status code.
+newListLicenseConversionTasksResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListLicenseConversionTasksResponse
+newListLicenseConversionTasksResponse pHttpStatus_ =
+  ListLicenseConversionTasksResponse'
+    { licenseConversionTasks =
+        Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Information about the license configuration tasks for your account.
+listLicenseConversionTasksResponse_licenseConversionTasks :: Lens.Lens' ListLicenseConversionTasksResponse (Prelude.Maybe [LicenseConversionTask])
+listLicenseConversionTasksResponse_licenseConversionTasks = Lens.lens (\ListLicenseConversionTasksResponse' {licenseConversionTasks} -> licenseConversionTasks) (\s@ListLicenseConversionTasksResponse' {} a -> s {licenseConversionTasks = a} :: ListLicenseConversionTasksResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | Token for the next set of results.
+listLicenseConversionTasksResponse_nextToken :: Lens.Lens' ListLicenseConversionTasksResponse (Prelude.Maybe Prelude.Text)
+listLicenseConversionTasksResponse_nextToken = Lens.lens (\ListLicenseConversionTasksResponse' {nextToken} -> nextToken) (\s@ListLicenseConversionTasksResponse' {} a -> s {nextToken = a} :: ListLicenseConversionTasksResponse)
+
+-- | The response's http status code.
+listLicenseConversionTasksResponse_httpStatus :: Lens.Lens' ListLicenseConversionTasksResponse Prelude.Int
+listLicenseConversionTasksResponse_httpStatus = Lens.lens (\ListLicenseConversionTasksResponse' {httpStatus} -> httpStatus) (\s@ListLicenseConversionTasksResponse' {} a -> s {httpStatus = a} :: ListLicenseConversionTasksResponse)
+
+instance
+  Prelude.NFData
+    ListLicenseConversionTasksResponse
+  where
+  rnf ListLicenseConversionTasksResponse' {..} =
+    Prelude.rnf licenseConversionTasks
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/ListLicenseManagerReportGenerators.hs b/gen/Amazonka/LicenseManager/ListLicenseManagerReportGenerators.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/ListLicenseManagerReportGenerators.hs
@@ -0,0 +1,250 @@
+{-# 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.LicenseManager.ListLicenseManagerReportGenerators
+-- 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 the report generators for your account.
+module Amazonka.LicenseManager.ListLicenseManagerReportGenerators
+  ( -- * Creating a Request
+    ListLicenseManagerReportGenerators (..),
+    newListLicenseManagerReportGenerators,
+
+    -- * Request Lenses
+    listLicenseManagerReportGenerators_filters,
+    listLicenseManagerReportGenerators_maxResults,
+    listLicenseManagerReportGenerators_nextToken,
+
+    -- * Destructuring the Response
+    ListLicenseManagerReportGeneratorsResponse (..),
+    newListLicenseManagerReportGeneratorsResponse,
+
+    -- * Response Lenses
+    listLicenseManagerReportGeneratorsResponse_nextToken,
+    listLicenseManagerReportGeneratorsResponse_reportGenerators,
+    listLicenseManagerReportGeneratorsResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newListLicenseManagerReportGenerators' smart constructor.
+data ListLicenseManagerReportGenerators = ListLicenseManagerReportGenerators'
+  { -- | Filters to scope the results. The following filters are supported:
+    --
+    -- -   @LicenseConfigurationArn@
+    filters :: Prelude.Maybe [Filter],
+    -- | Maximum number of results to return in a single call.
+    maxResults :: Prelude.Maybe Prelude.Natural,
+    -- | Token for the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListLicenseManagerReportGenerators' 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:
+--
+-- 'filters', 'listLicenseManagerReportGenerators_filters' - Filters to scope the results. The following filters are supported:
+--
+-- -   @LicenseConfigurationArn@
+--
+-- 'maxResults', 'listLicenseManagerReportGenerators_maxResults' - Maximum number of results to return in a single call.
+--
+-- 'nextToken', 'listLicenseManagerReportGenerators_nextToken' - Token for the next set of results.
+newListLicenseManagerReportGenerators ::
+  ListLicenseManagerReportGenerators
+newListLicenseManagerReportGenerators =
+  ListLicenseManagerReportGenerators'
+    { filters =
+        Prelude.Nothing,
+      maxResults = Prelude.Nothing,
+      nextToken = Prelude.Nothing
+    }
+
+-- | Filters to scope the results. The following filters are supported:
+--
+-- -   @LicenseConfigurationArn@
+listLicenseManagerReportGenerators_filters :: Lens.Lens' ListLicenseManagerReportGenerators (Prelude.Maybe [Filter])
+listLicenseManagerReportGenerators_filters = Lens.lens (\ListLicenseManagerReportGenerators' {filters} -> filters) (\s@ListLicenseManagerReportGenerators' {} a -> s {filters = a} :: ListLicenseManagerReportGenerators) Prelude.. Lens.mapping Lens.coerced
+
+-- | Maximum number of results to return in a single call.
+listLicenseManagerReportGenerators_maxResults :: Lens.Lens' ListLicenseManagerReportGenerators (Prelude.Maybe Prelude.Natural)
+listLicenseManagerReportGenerators_maxResults = Lens.lens (\ListLicenseManagerReportGenerators' {maxResults} -> maxResults) (\s@ListLicenseManagerReportGenerators' {} a -> s {maxResults = a} :: ListLicenseManagerReportGenerators)
+
+-- | Token for the next set of results.
+listLicenseManagerReportGenerators_nextToken :: Lens.Lens' ListLicenseManagerReportGenerators (Prelude.Maybe Prelude.Text)
+listLicenseManagerReportGenerators_nextToken = Lens.lens (\ListLicenseManagerReportGenerators' {nextToken} -> nextToken) (\s@ListLicenseManagerReportGenerators' {} a -> s {nextToken = a} :: ListLicenseManagerReportGenerators)
+
+instance
+  Core.AWSRequest
+    ListLicenseManagerReportGenerators
+  where
+  type
+    AWSResponse ListLicenseManagerReportGenerators =
+      ListLicenseManagerReportGeneratorsResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListLicenseManagerReportGeneratorsResponse'
+            Prelude.<$> (x Data..?> "NextToken")
+            Prelude.<*> ( x
+                            Data..?> "ReportGenerators"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    ListLicenseManagerReportGenerators
+  where
+  hashWithSalt
+    _salt
+    ListLicenseManagerReportGenerators' {..} =
+      _salt
+        `Prelude.hashWithSalt` filters
+        `Prelude.hashWithSalt` maxResults
+        `Prelude.hashWithSalt` nextToken
+
+instance
+  Prelude.NFData
+    ListLicenseManagerReportGenerators
+  where
+  rnf ListLicenseManagerReportGenerators' {..} =
+    Prelude.rnf filters
+      `Prelude.seq` Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+
+instance
+  Data.ToHeaders
+    ListLicenseManagerReportGenerators
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.ListLicenseManagerReportGenerators" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    ListLicenseManagerReportGenerators
+  where
+  toJSON ListLicenseManagerReportGenerators' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("Filters" Data..=) Prelude.<$> filters,
+            ("MaxResults" Data..=) Prelude.<$> maxResults,
+            ("NextToken" Data..=) Prelude.<$> nextToken
+          ]
+      )
+
+instance
+  Data.ToPath
+    ListLicenseManagerReportGenerators
+  where
+  toPath = Prelude.const "/"
+
+instance
+  Data.ToQuery
+    ListLicenseManagerReportGenerators
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newListLicenseManagerReportGeneratorsResponse' smart constructor.
+data ListLicenseManagerReportGeneratorsResponse = ListLicenseManagerReportGeneratorsResponse'
+  { -- | Token for the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | A report generator that creates periodic reports about your license
+    -- configurations.
+    reportGenerators :: Prelude.Maybe [ReportGenerator],
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListLicenseManagerReportGeneratorsResponse' 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:
+--
+-- 'nextToken', 'listLicenseManagerReportGeneratorsResponse_nextToken' - Token for the next set of results.
+--
+-- 'reportGenerators', 'listLicenseManagerReportGeneratorsResponse_reportGenerators' - A report generator that creates periodic reports about your license
+-- configurations.
+--
+-- 'httpStatus', 'listLicenseManagerReportGeneratorsResponse_httpStatus' - The response's http status code.
+newListLicenseManagerReportGeneratorsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListLicenseManagerReportGeneratorsResponse
+newListLicenseManagerReportGeneratorsResponse
+  pHttpStatus_ =
+    ListLicenseManagerReportGeneratorsResponse'
+      { nextToken =
+          Prelude.Nothing,
+        reportGenerators =
+          Prelude.Nothing,
+        httpStatus = pHttpStatus_
+      }
+
+-- | Token for the next set of results.
+listLicenseManagerReportGeneratorsResponse_nextToken :: Lens.Lens' ListLicenseManagerReportGeneratorsResponse (Prelude.Maybe Prelude.Text)
+listLicenseManagerReportGeneratorsResponse_nextToken = Lens.lens (\ListLicenseManagerReportGeneratorsResponse' {nextToken} -> nextToken) (\s@ListLicenseManagerReportGeneratorsResponse' {} a -> s {nextToken = a} :: ListLicenseManagerReportGeneratorsResponse)
+
+-- | A report generator that creates periodic reports about your license
+-- configurations.
+listLicenseManagerReportGeneratorsResponse_reportGenerators :: Lens.Lens' ListLicenseManagerReportGeneratorsResponse (Prelude.Maybe [ReportGenerator])
+listLicenseManagerReportGeneratorsResponse_reportGenerators = Lens.lens (\ListLicenseManagerReportGeneratorsResponse' {reportGenerators} -> reportGenerators) (\s@ListLicenseManagerReportGeneratorsResponse' {} a -> s {reportGenerators = a} :: ListLicenseManagerReportGeneratorsResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+listLicenseManagerReportGeneratorsResponse_httpStatus :: Lens.Lens' ListLicenseManagerReportGeneratorsResponse Prelude.Int
+listLicenseManagerReportGeneratorsResponse_httpStatus = Lens.lens (\ListLicenseManagerReportGeneratorsResponse' {httpStatus} -> httpStatus) (\s@ListLicenseManagerReportGeneratorsResponse' {} a -> s {httpStatus = a} :: ListLicenseManagerReportGeneratorsResponse)
+
+instance
+  Prelude.NFData
+    ListLicenseManagerReportGeneratorsResponse
+  where
+  rnf ListLicenseManagerReportGeneratorsResponse' {..} =
+    Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf reportGenerators
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/ListLicenseSpecificationsForResource.hs b/gen/Amazonka/LicenseManager/ListLicenseSpecificationsForResource.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/ListLicenseSpecificationsForResource.hs
@@ -0,0 +1,272 @@
+{-# 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.LicenseManager.ListLicenseSpecificationsForResource
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Describes the license configurations for the specified resource.
+--
+-- This operation returns paginated results.
+module Amazonka.LicenseManager.ListLicenseSpecificationsForResource
+  ( -- * Creating a Request
+    ListLicenseSpecificationsForResource (..),
+    newListLicenseSpecificationsForResource,
+
+    -- * Request Lenses
+    listLicenseSpecificationsForResource_maxResults,
+    listLicenseSpecificationsForResource_nextToken,
+    listLicenseSpecificationsForResource_resourceArn,
+
+    -- * Destructuring the Response
+    ListLicenseSpecificationsForResourceResponse (..),
+    newListLicenseSpecificationsForResourceResponse,
+
+    -- * Response Lenses
+    listLicenseSpecificationsForResourceResponse_licenseSpecifications,
+    listLicenseSpecificationsForResourceResponse_nextToken,
+    listLicenseSpecificationsForResourceResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newListLicenseSpecificationsForResource' smart constructor.
+data ListLicenseSpecificationsForResource = ListLicenseSpecificationsForResource'
+  { -- | Maximum number of results to return in a single call.
+    maxResults :: Prelude.Maybe Prelude.Int,
+    -- | Token for the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | Amazon Resource Name (ARN) of a resource that has an associated license
+    -- configuration.
+    resourceArn :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListLicenseSpecificationsForResource' 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', 'listLicenseSpecificationsForResource_maxResults' - Maximum number of results to return in a single call.
+--
+-- 'nextToken', 'listLicenseSpecificationsForResource_nextToken' - Token for the next set of results.
+--
+-- 'resourceArn', 'listLicenseSpecificationsForResource_resourceArn' - Amazon Resource Name (ARN) of a resource that has an associated license
+-- configuration.
+newListLicenseSpecificationsForResource ::
+  -- | 'resourceArn'
+  Prelude.Text ->
+  ListLicenseSpecificationsForResource
+newListLicenseSpecificationsForResource pResourceArn_ =
+  ListLicenseSpecificationsForResource'
+    { maxResults =
+        Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      resourceArn = pResourceArn_
+    }
+
+-- | Maximum number of results to return in a single call.
+listLicenseSpecificationsForResource_maxResults :: Lens.Lens' ListLicenseSpecificationsForResource (Prelude.Maybe Prelude.Int)
+listLicenseSpecificationsForResource_maxResults = Lens.lens (\ListLicenseSpecificationsForResource' {maxResults} -> maxResults) (\s@ListLicenseSpecificationsForResource' {} a -> s {maxResults = a} :: ListLicenseSpecificationsForResource)
+
+-- | Token for the next set of results.
+listLicenseSpecificationsForResource_nextToken :: Lens.Lens' ListLicenseSpecificationsForResource (Prelude.Maybe Prelude.Text)
+listLicenseSpecificationsForResource_nextToken = Lens.lens (\ListLicenseSpecificationsForResource' {nextToken} -> nextToken) (\s@ListLicenseSpecificationsForResource' {} a -> s {nextToken = a} :: ListLicenseSpecificationsForResource)
+
+-- | Amazon Resource Name (ARN) of a resource that has an associated license
+-- configuration.
+listLicenseSpecificationsForResource_resourceArn :: Lens.Lens' ListLicenseSpecificationsForResource Prelude.Text
+listLicenseSpecificationsForResource_resourceArn = Lens.lens (\ListLicenseSpecificationsForResource' {resourceArn} -> resourceArn) (\s@ListLicenseSpecificationsForResource' {} a -> s {resourceArn = a} :: ListLicenseSpecificationsForResource)
+
+instance
+  Core.AWSPager
+    ListLicenseSpecificationsForResource
+  where
+  page rq rs
+    | Core.stop
+        ( rs
+            Lens.^? listLicenseSpecificationsForResourceResponse_nextToken
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Core.stop
+        ( rs
+            Lens.^? listLicenseSpecificationsForResourceResponse_licenseSpecifications
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Prelude.otherwise =
+        Prelude.Just
+          Prelude.$ rq
+          Prelude.& listLicenseSpecificationsForResource_nextToken
+          Lens..~ rs
+          Lens.^? listLicenseSpecificationsForResourceResponse_nextToken
+          Prelude.. Lens._Just
+
+instance
+  Core.AWSRequest
+    ListLicenseSpecificationsForResource
+  where
+  type
+    AWSResponse ListLicenseSpecificationsForResource =
+      ListLicenseSpecificationsForResourceResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListLicenseSpecificationsForResourceResponse'
+            Prelude.<$> ( x
+                            Data..?> "LicenseSpecifications"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "NextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    ListLicenseSpecificationsForResource
+  where
+  hashWithSalt
+    _salt
+    ListLicenseSpecificationsForResource' {..} =
+      _salt
+        `Prelude.hashWithSalt` maxResults
+        `Prelude.hashWithSalt` nextToken
+        `Prelude.hashWithSalt` resourceArn
+
+instance
+  Prelude.NFData
+    ListLicenseSpecificationsForResource
+  where
+  rnf ListLicenseSpecificationsForResource' {..} =
+    Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf resourceArn
+
+instance
+  Data.ToHeaders
+    ListLicenseSpecificationsForResource
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.ListLicenseSpecificationsForResource" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    ListLicenseSpecificationsForResource
+  where
+  toJSON ListLicenseSpecificationsForResource' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,
+            ("NextToken" Data..=) Prelude.<$> nextToken,
+            Prelude.Just ("ResourceArn" Data..= resourceArn)
+          ]
+      )
+
+instance
+  Data.ToPath
+    ListLicenseSpecificationsForResource
+  where
+  toPath = Prelude.const "/"
+
+instance
+  Data.ToQuery
+    ListLicenseSpecificationsForResource
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newListLicenseSpecificationsForResourceResponse' smart constructor.
+data ListLicenseSpecificationsForResourceResponse = ListLicenseSpecificationsForResourceResponse'
+  { -- | License configurations associated with a resource.
+    licenseSpecifications :: Prelude.Maybe [LicenseSpecification],
+    -- | Token for the next set of results.
+    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 'ListLicenseSpecificationsForResourceResponse' 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:
+--
+-- 'licenseSpecifications', 'listLicenseSpecificationsForResourceResponse_licenseSpecifications' - License configurations associated with a resource.
+--
+-- 'nextToken', 'listLicenseSpecificationsForResourceResponse_nextToken' - Token for the next set of results.
+--
+-- 'httpStatus', 'listLicenseSpecificationsForResourceResponse_httpStatus' - The response's http status code.
+newListLicenseSpecificationsForResourceResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListLicenseSpecificationsForResourceResponse
+newListLicenseSpecificationsForResourceResponse
+  pHttpStatus_ =
+    ListLicenseSpecificationsForResourceResponse'
+      { licenseSpecifications =
+          Prelude.Nothing,
+        nextToken = Prelude.Nothing,
+        httpStatus = pHttpStatus_
+      }
+
+-- | License configurations associated with a resource.
+listLicenseSpecificationsForResourceResponse_licenseSpecifications :: Lens.Lens' ListLicenseSpecificationsForResourceResponse (Prelude.Maybe [LicenseSpecification])
+listLicenseSpecificationsForResourceResponse_licenseSpecifications = Lens.lens (\ListLicenseSpecificationsForResourceResponse' {licenseSpecifications} -> licenseSpecifications) (\s@ListLicenseSpecificationsForResourceResponse' {} a -> s {licenseSpecifications = a} :: ListLicenseSpecificationsForResourceResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | Token for the next set of results.
+listLicenseSpecificationsForResourceResponse_nextToken :: Lens.Lens' ListLicenseSpecificationsForResourceResponse (Prelude.Maybe Prelude.Text)
+listLicenseSpecificationsForResourceResponse_nextToken = Lens.lens (\ListLicenseSpecificationsForResourceResponse' {nextToken} -> nextToken) (\s@ListLicenseSpecificationsForResourceResponse' {} a -> s {nextToken = a} :: ListLicenseSpecificationsForResourceResponse)
+
+-- | The response's http status code.
+listLicenseSpecificationsForResourceResponse_httpStatus :: Lens.Lens' ListLicenseSpecificationsForResourceResponse Prelude.Int
+listLicenseSpecificationsForResourceResponse_httpStatus = Lens.lens (\ListLicenseSpecificationsForResourceResponse' {httpStatus} -> httpStatus) (\s@ListLicenseSpecificationsForResourceResponse' {} a -> s {httpStatus = a} :: ListLicenseSpecificationsForResourceResponse)
+
+instance
+  Prelude.NFData
+    ListLicenseSpecificationsForResourceResponse
+  where
+  rnf ListLicenseSpecificationsForResourceResponse' {..} =
+    Prelude.rnf licenseSpecifications
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/ListLicenseVersions.hs b/gen/Amazonka/LicenseManager/ListLicenseVersions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/ListLicenseVersions.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.LicenseManager.ListLicenseVersions
+-- 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 all versions of the specified license.
+module Amazonka.LicenseManager.ListLicenseVersions
+  ( -- * Creating a Request
+    ListLicenseVersions (..),
+    newListLicenseVersions,
+
+    -- * Request Lenses
+    listLicenseVersions_maxResults,
+    listLicenseVersions_nextToken,
+    listLicenseVersions_licenseArn,
+
+    -- * Destructuring the Response
+    ListLicenseVersionsResponse (..),
+    newListLicenseVersionsResponse,
+
+    -- * Response Lenses
+    listLicenseVersionsResponse_licenses,
+    listLicenseVersionsResponse_nextToken,
+    listLicenseVersionsResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newListLicenseVersions' smart constructor.
+data ListLicenseVersions = ListLicenseVersions'
+  { -- | Maximum number of results to return in a single call.
+    maxResults :: Prelude.Maybe Prelude.Natural,
+    -- | Token for the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | Amazon Resource Name (ARN) of the license.
+    licenseArn :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListLicenseVersions' 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', 'listLicenseVersions_maxResults' - Maximum number of results to return in a single call.
+--
+-- 'nextToken', 'listLicenseVersions_nextToken' - Token for the next set of results.
+--
+-- 'licenseArn', 'listLicenseVersions_licenseArn' - Amazon Resource Name (ARN) of the license.
+newListLicenseVersions ::
+  -- | 'licenseArn'
+  Prelude.Text ->
+  ListLicenseVersions
+newListLicenseVersions pLicenseArn_ =
+  ListLicenseVersions'
+    { maxResults = Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      licenseArn = pLicenseArn_
+    }
+
+-- | Maximum number of results to return in a single call.
+listLicenseVersions_maxResults :: Lens.Lens' ListLicenseVersions (Prelude.Maybe Prelude.Natural)
+listLicenseVersions_maxResults = Lens.lens (\ListLicenseVersions' {maxResults} -> maxResults) (\s@ListLicenseVersions' {} a -> s {maxResults = a} :: ListLicenseVersions)
+
+-- | Token for the next set of results.
+listLicenseVersions_nextToken :: Lens.Lens' ListLicenseVersions (Prelude.Maybe Prelude.Text)
+listLicenseVersions_nextToken = Lens.lens (\ListLicenseVersions' {nextToken} -> nextToken) (\s@ListLicenseVersions' {} a -> s {nextToken = a} :: ListLicenseVersions)
+
+-- | Amazon Resource Name (ARN) of the license.
+listLicenseVersions_licenseArn :: Lens.Lens' ListLicenseVersions Prelude.Text
+listLicenseVersions_licenseArn = Lens.lens (\ListLicenseVersions' {licenseArn} -> licenseArn) (\s@ListLicenseVersions' {} a -> s {licenseArn = a} :: ListLicenseVersions)
+
+instance Core.AWSRequest ListLicenseVersions where
+  type
+    AWSResponse ListLicenseVersions =
+      ListLicenseVersionsResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListLicenseVersionsResponse'
+            Prelude.<$> (x Data..?> "Licenses" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..?> "NextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable ListLicenseVersions where
+  hashWithSalt _salt ListLicenseVersions' {..} =
+    _salt
+      `Prelude.hashWithSalt` maxResults
+      `Prelude.hashWithSalt` nextToken
+      `Prelude.hashWithSalt` licenseArn
+
+instance Prelude.NFData ListLicenseVersions where
+  rnf ListLicenseVersions' {..} =
+    Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf licenseArn
+
+instance Data.ToHeaders ListLicenseVersions where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.ListLicenseVersions" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON ListLicenseVersions where
+  toJSON ListLicenseVersions' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,
+            ("NextToken" Data..=) Prelude.<$> nextToken,
+            Prelude.Just ("LicenseArn" Data..= licenseArn)
+          ]
+      )
+
+instance Data.ToPath ListLicenseVersions where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery ListLicenseVersions where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newListLicenseVersionsResponse' smart constructor.
+data ListLicenseVersionsResponse = ListLicenseVersionsResponse'
+  { -- | License details.
+    licenses :: Prelude.Maybe [License],
+    -- | Token for the next set of results.
+    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 'ListLicenseVersionsResponse' 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:
+--
+-- 'licenses', 'listLicenseVersionsResponse_licenses' - License details.
+--
+-- 'nextToken', 'listLicenseVersionsResponse_nextToken' - Token for the next set of results.
+--
+-- 'httpStatus', 'listLicenseVersionsResponse_httpStatus' - The response's http status code.
+newListLicenseVersionsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListLicenseVersionsResponse
+newListLicenseVersionsResponse pHttpStatus_ =
+  ListLicenseVersionsResponse'
+    { licenses =
+        Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | License details.
+listLicenseVersionsResponse_licenses :: Lens.Lens' ListLicenseVersionsResponse (Prelude.Maybe [License])
+listLicenseVersionsResponse_licenses = Lens.lens (\ListLicenseVersionsResponse' {licenses} -> licenses) (\s@ListLicenseVersionsResponse' {} a -> s {licenses = a} :: ListLicenseVersionsResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | Token for the next set of results.
+listLicenseVersionsResponse_nextToken :: Lens.Lens' ListLicenseVersionsResponse (Prelude.Maybe Prelude.Text)
+listLicenseVersionsResponse_nextToken = Lens.lens (\ListLicenseVersionsResponse' {nextToken} -> nextToken) (\s@ListLicenseVersionsResponse' {} a -> s {nextToken = a} :: ListLicenseVersionsResponse)
+
+-- | The response's http status code.
+listLicenseVersionsResponse_httpStatus :: Lens.Lens' ListLicenseVersionsResponse Prelude.Int
+listLicenseVersionsResponse_httpStatus = Lens.lens (\ListLicenseVersionsResponse' {httpStatus} -> httpStatus) (\s@ListLicenseVersionsResponse' {} a -> s {httpStatus = a} :: ListLicenseVersionsResponse)
+
+instance Prelude.NFData ListLicenseVersionsResponse where
+  rnf ListLicenseVersionsResponse' {..} =
+    Prelude.rnf licenses
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/ListLicenses.hs b/gen/Amazonka/LicenseManager/ListLicenses.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/ListLicenses.hs
@@ -0,0 +1,243 @@
+{-# 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.LicenseManager.ListLicenses
+-- 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 the licenses for your account.
+module Amazonka.LicenseManager.ListLicenses
+  ( -- * Creating a Request
+    ListLicenses (..),
+    newListLicenses,
+
+    -- * Request Lenses
+    listLicenses_filters,
+    listLicenses_licenseArns,
+    listLicenses_maxResults,
+    listLicenses_nextToken,
+
+    -- * Destructuring the Response
+    ListLicensesResponse (..),
+    newListLicensesResponse,
+
+    -- * Response Lenses
+    listLicensesResponse_licenses,
+    listLicensesResponse_nextToken,
+    listLicensesResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newListLicenses' smart constructor.
+data ListLicenses = ListLicenses'
+  { -- | Filters to scope the results. The following filters are supported:
+    --
+    -- -   @Beneficiary@
+    --
+    -- -   @ProductSKU@
+    --
+    -- -   @Fingerprint@
+    --
+    -- -   @Status@
+    filters :: Prelude.Maybe [Filter],
+    -- | Amazon Resource Names (ARNs) of the licenses.
+    licenseArns :: Prelude.Maybe [Prelude.Text],
+    -- | Maximum number of results to return in a single call.
+    maxResults :: Prelude.Maybe Prelude.Natural,
+    -- | Token for the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListLicenses' 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:
+--
+-- 'filters', 'listLicenses_filters' - Filters to scope the results. The following filters are supported:
+--
+-- -   @Beneficiary@
+--
+-- -   @ProductSKU@
+--
+-- -   @Fingerprint@
+--
+-- -   @Status@
+--
+-- 'licenseArns', 'listLicenses_licenseArns' - Amazon Resource Names (ARNs) of the licenses.
+--
+-- 'maxResults', 'listLicenses_maxResults' - Maximum number of results to return in a single call.
+--
+-- 'nextToken', 'listLicenses_nextToken' - Token for the next set of results.
+newListLicenses ::
+  ListLicenses
+newListLicenses =
+  ListLicenses'
+    { filters = Prelude.Nothing,
+      licenseArns = Prelude.Nothing,
+      maxResults = Prelude.Nothing,
+      nextToken = Prelude.Nothing
+    }
+
+-- | Filters to scope the results. The following filters are supported:
+--
+-- -   @Beneficiary@
+--
+-- -   @ProductSKU@
+--
+-- -   @Fingerprint@
+--
+-- -   @Status@
+listLicenses_filters :: Lens.Lens' ListLicenses (Prelude.Maybe [Filter])
+listLicenses_filters = Lens.lens (\ListLicenses' {filters} -> filters) (\s@ListLicenses' {} a -> s {filters = a} :: ListLicenses) Prelude.. Lens.mapping Lens.coerced
+
+-- | Amazon Resource Names (ARNs) of the licenses.
+listLicenses_licenseArns :: Lens.Lens' ListLicenses (Prelude.Maybe [Prelude.Text])
+listLicenses_licenseArns = Lens.lens (\ListLicenses' {licenseArns} -> licenseArns) (\s@ListLicenses' {} a -> s {licenseArns = a} :: ListLicenses) Prelude.. Lens.mapping Lens.coerced
+
+-- | Maximum number of results to return in a single call.
+listLicenses_maxResults :: Lens.Lens' ListLicenses (Prelude.Maybe Prelude.Natural)
+listLicenses_maxResults = Lens.lens (\ListLicenses' {maxResults} -> maxResults) (\s@ListLicenses' {} a -> s {maxResults = a} :: ListLicenses)
+
+-- | Token for the next set of results.
+listLicenses_nextToken :: Lens.Lens' ListLicenses (Prelude.Maybe Prelude.Text)
+listLicenses_nextToken = Lens.lens (\ListLicenses' {nextToken} -> nextToken) (\s@ListLicenses' {} a -> s {nextToken = a} :: ListLicenses)
+
+instance Core.AWSRequest ListLicenses where
+  type AWSResponse ListLicenses = ListLicensesResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListLicensesResponse'
+            Prelude.<$> (x Data..?> "Licenses" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..?> "NextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable ListLicenses where
+  hashWithSalt _salt ListLicenses' {..} =
+    _salt
+      `Prelude.hashWithSalt` filters
+      `Prelude.hashWithSalt` licenseArns
+      `Prelude.hashWithSalt` maxResults
+      `Prelude.hashWithSalt` nextToken
+
+instance Prelude.NFData ListLicenses where
+  rnf ListLicenses' {..} =
+    Prelude.rnf filters
+      `Prelude.seq` Prelude.rnf licenseArns
+      `Prelude.seq` Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+
+instance Data.ToHeaders ListLicenses where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.ListLicenses" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON ListLicenses where
+  toJSON ListLicenses' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("Filters" Data..=) Prelude.<$> filters,
+            ("LicenseArns" Data..=) Prelude.<$> licenseArns,
+            ("MaxResults" Data..=) Prelude.<$> maxResults,
+            ("NextToken" Data..=) Prelude.<$> nextToken
+          ]
+      )
+
+instance Data.ToPath ListLicenses where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery ListLicenses where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newListLicensesResponse' smart constructor.
+data ListLicensesResponse = ListLicensesResponse'
+  { -- | License details.
+    licenses :: Prelude.Maybe [License],
+    -- | Token for the next set of results.
+    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 'ListLicensesResponse' 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:
+--
+-- 'licenses', 'listLicensesResponse_licenses' - License details.
+--
+-- 'nextToken', 'listLicensesResponse_nextToken' - Token for the next set of results.
+--
+-- 'httpStatus', 'listLicensesResponse_httpStatus' - The response's http status code.
+newListLicensesResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListLicensesResponse
+newListLicensesResponse pHttpStatus_ =
+  ListLicensesResponse'
+    { licenses = Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | License details.
+listLicensesResponse_licenses :: Lens.Lens' ListLicensesResponse (Prelude.Maybe [License])
+listLicensesResponse_licenses = Lens.lens (\ListLicensesResponse' {licenses} -> licenses) (\s@ListLicensesResponse' {} a -> s {licenses = a} :: ListLicensesResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | Token for the next set of results.
+listLicensesResponse_nextToken :: Lens.Lens' ListLicensesResponse (Prelude.Maybe Prelude.Text)
+listLicensesResponse_nextToken = Lens.lens (\ListLicensesResponse' {nextToken} -> nextToken) (\s@ListLicensesResponse' {} a -> s {nextToken = a} :: ListLicensesResponse)
+
+-- | The response's http status code.
+listLicensesResponse_httpStatus :: Lens.Lens' ListLicensesResponse Prelude.Int
+listLicensesResponse_httpStatus = Lens.lens (\ListLicensesResponse' {httpStatus} -> httpStatus) (\s@ListLicensesResponse' {} a -> s {httpStatus = a} :: ListLicensesResponse)
+
+instance Prelude.NFData ListLicensesResponse where
+  rnf ListLicensesResponse' {..} =
+    Prelude.rnf licenses
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/ListReceivedGrants.hs b/gen/Amazonka/LicenseManager/ListReceivedGrants.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/ListReceivedGrants.hs
@@ -0,0 +1,252 @@
+{-# 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.LicenseManager.ListReceivedGrants
+-- 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 grants that are received but not accepted.
+module Amazonka.LicenseManager.ListReceivedGrants
+  ( -- * Creating a Request
+    ListReceivedGrants (..),
+    newListReceivedGrants,
+
+    -- * Request Lenses
+    listReceivedGrants_filters,
+    listReceivedGrants_grantArns,
+    listReceivedGrants_maxResults,
+    listReceivedGrants_nextToken,
+
+    -- * Destructuring the Response
+    ListReceivedGrantsResponse (..),
+    newListReceivedGrantsResponse,
+
+    -- * Response Lenses
+    listReceivedGrantsResponse_grants,
+    listReceivedGrantsResponse_nextToken,
+    listReceivedGrantsResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newListReceivedGrants' smart constructor.
+data ListReceivedGrants = ListReceivedGrants'
+  { -- | Filters to scope the results. The following filters are supported:
+    --
+    -- -   @ProductSKU@
+    --
+    -- -   @LicenseIssuerName@
+    --
+    -- -   @LicenseArn@
+    --
+    -- -   @GrantStatus@
+    --
+    -- -   @GranterAccountId@
+    filters :: Prelude.Maybe [Filter],
+    -- | Amazon Resource Names (ARNs) of the grants.
+    grantArns :: Prelude.Maybe [Prelude.Text],
+    -- | Maximum number of results to return in a single call.
+    maxResults :: Prelude.Maybe Prelude.Natural,
+    -- | Token for the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListReceivedGrants' 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:
+--
+-- 'filters', 'listReceivedGrants_filters' - Filters to scope the results. The following filters are supported:
+--
+-- -   @ProductSKU@
+--
+-- -   @LicenseIssuerName@
+--
+-- -   @LicenseArn@
+--
+-- -   @GrantStatus@
+--
+-- -   @GranterAccountId@
+--
+-- 'grantArns', 'listReceivedGrants_grantArns' - Amazon Resource Names (ARNs) of the grants.
+--
+-- 'maxResults', 'listReceivedGrants_maxResults' - Maximum number of results to return in a single call.
+--
+-- 'nextToken', 'listReceivedGrants_nextToken' - Token for the next set of results.
+newListReceivedGrants ::
+  ListReceivedGrants
+newListReceivedGrants =
+  ListReceivedGrants'
+    { filters = Prelude.Nothing,
+      grantArns = Prelude.Nothing,
+      maxResults = Prelude.Nothing,
+      nextToken = Prelude.Nothing
+    }
+
+-- | Filters to scope the results. The following filters are supported:
+--
+-- -   @ProductSKU@
+--
+-- -   @LicenseIssuerName@
+--
+-- -   @LicenseArn@
+--
+-- -   @GrantStatus@
+--
+-- -   @GranterAccountId@
+listReceivedGrants_filters :: Lens.Lens' ListReceivedGrants (Prelude.Maybe [Filter])
+listReceivedGrants_filters = Lens.lens (\ListReceivedGrants' {filters} -> filters) (\s@ListReceivedGrants' {} a -> s {filters = a} :: ListReceivedGrants) Prelude.. Lens.mapping Lens.coerced
+
+-- | Amazon Resource Names (ARNs) of the grants.
+listReceivedGrants_grantArns :: Lens.Lens' ListReceivedGrants (Prelude.Maybe [Prelude.Text])
+listReceivedGrants_grantArns = Lens.lens (\ListReceivedGrants' {grantArns} -> grantArns) (\s@ListReceivedGrants' {} a -> s {grantArns = a} :: ListReceivedGrants) Prelude.. Lens.mapping Lens.coerced
+
+-- | Maximum number of results to return in a single call.
+listReceivedGrants_maxResults :: Lens.Lens' ListReceivedGrants (Prelude.Maybe Prelude.Natural)
+listReceivedGrants_maxResults = Lens.lens (\ListReceivedGrants' {maxResults} -> maxResults) (\s@ListReceivedGrants' {} a -> s {maxResults = a} :: ListReceivedGrants)
+
+-- | Token for the next set of results.
+listReceivedGrants_nextToken :: Lens.Lens' ListReceivedGrants (Prelude.Maybe Prelude.Text)
+listReceivedGrants_nextToken = Lens.lens (\ListReceivedGrants' {nextToken} -> nextToken) (\s@ListReceivedGrants' {} a -> s {nextToken = a} :: ListReceivedGrants)
+
+instance Core.AWSRequest ListReceivedGrants where
+  type
+    AWSResponse ListReceivedGrants =
+      ListReceivedGrantsResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListReceivedGrantsResponse'
+            Prelude.<$> (x Data..?> "Grants" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..?> "NextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable ListReceivedGrants where
+  hashWithSalt _salt ListReceivedGrants' {..} =
+    _salt
+      `Prelude.hashWithSalt` filters
+      `Prelude.hashWithSalt` grantArns
+      `Prelude.hashWithSalt` maxResults
+      `Prelude.hashWithSalt` nextToken
+
+instance Prelude.NFData ListReceivedGrants where
+  rnf ListReceivedGrants' {..} =
+    Prelude.rnf filters
+      `Prelude.seq` Prelude.rnf grantArns
+      `Prelude.seq` Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+
+instance Data.ToHeaders ListReceivedGrants where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.ListReceivedGrants" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON ListReceivedGrants where
+  toJSON ListReceivedGrants' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("Filters" Data..=) Prelude.<$> filters,
+            ("GrantArns" Data..=) Prelude.<$> grantArns,
+            ("MaxResults" Data..=) Prelude.<$> maxResults,
+            ("NextToken" Data..=) Prelude.<$> nextToken
+          ]
+      )
+
+instance Data.ToPath ListReceivedGrants where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery ListReceivedGrants where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newListReceivedGrantsResponse' smart constructor.
+data ListReceivedGrantsResponse = ListReceivedGrantsResponse'
+  { -- | Received grant details.
+    grants :: Prelude.Maybe [Grant],
+    -- | Token for the next set of results.
+    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 'ListReceivedGrantsResponse' 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:
+--
+-- 'grants', 'listReceivedGrantsResponse_grants' - Received grant details.
+--
+-- 'nextToken', 'listReceivedGrantsResponse_nextToken' - Token for the next set of results.
+--
+-- 'httpStatus', 'listReceivedGrantsResponse_httpStatus' - The response's http status code.
+newListReceivedGrantsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListReceivedGrantsResponse
+newListReceivedGrantsResponse pHttpStatus_ =
+  ListReceivedGrantsResponse'
+    { grants =
+        Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Received grant details.
+listReceivedGrantsResponse_grants :: Lens.Lens' ListReceivedGrantsResponse (Prelude.Maybe [Grant])
+listReceivedGrantsResponse_grants = Lens.lens (\ListReceivedGrantsResponse' {grants} -> grants) (\s@ListReceivedGrantsResponse' {} a -> s {grants = a} :: ListReceivedGrantsResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | Token for the next set of results.
+listReceivedGrantsResponse_nextToken :: Lens.Lens' ListReceivedGrantsResponse (Prelude.Maybe Prelude.Text)
+listReceivedGrantsResponse_nextToken = Lens.lens (\ListReceivedGrantsResponse' {nextToken} -> nextToken) (\s@ListReceivedGrantsResponse' {} a -> s {nextToken = a} :: ListReceivedGrantsResponse)
+
+-- | The response's http status code.
+listReceivedGrantsResponse_httpStatus :: Lens.Lens' ListReceivedGrantsResponse Prelude.Int
+listReceivedGrantsResponse_httpStatus = Lens.lens (\ListReceivedGrantsResponse' {httpStatus} -> httpStatus) (\s@ListReceivedGrantsResponse' {} a -> s {httpStatus = a} :: ListReceivedGrantsResponse)
+
+instance Prelude.NFData ListReceivedGrantsResponse where
+  rnf ListReceivedGrantsResponse' {..} =
+    Prelude.rnf grants
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/ListReceivedGrantsForOrganization.hs b/gen/Amazonka/LicenseManager/ListReceivedGrantsForOrganization.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/ListReceivedGrantsForOrganization.hs
@@ -0,0 +1,264 @@
+{-# 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.LicenseManager.ListReceivedGrantsForOrganization
+-- 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 the grants received for all accounts in the organization.
+module Amazonka.LicenseManager.ListReceivedGrantsForOrganization
+  ( -- * Creating a Request
+    ListReceivedGrantsForOrganization (..),
+    newListReceivedGrantsForOrganization,
+
+    -- * Request Lenses
+    listReceivedGrantsForOrganization_filters,
+    listReceivedGrantsForOrganization_maxResults,
+    listReceivedGrantsForOrganization_nextToken,
+    listReceivedGrantsForOrganization_licenseArn,
+
+    -- * Destructuring the Response
+    ListReceivedGrantsForOrganizationResponse (..),
+    newListReceivedGrantsForOrganizationResponse,
+
+    -- * Response Lenses
+    listReceivedGrantsForOrganizationResponse_grants,
+    listReceivedGrantsForOrganizationResponse_nextToken,
+    listReceivedGrantsForOrganizationResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newListReceivedGrantsForOrganization' smart constructor.
+data ListReceivedGrantsForOrganization = ListReceivedGrantsForOrganization'
+  { -- | Filters to scope the results. The following filters are supported:
+    --
+    -- -   @ParentArn@
+    --
+    -- -   @GranteePrincipalArn@
+    filters :: Prelude.Maybe [Filter],
+    -- | Maximum number of results to return in a single call.
+    maxResults :: Prelude.Maybe Prelude.Natural,
+    -- | Token for the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Resource Name (ARN) of the received license.
+    licenseArn :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListReceivedGrantsForOrganization' 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:
+--
+-- 'filters', 'listReceivedGrantsForOrganization_filters' - Filters to scope the results. The following filters are supported:
+--
+-- -   @ParentArn@
+--
+-- -   @GranteePrincipalArn@
+--
+-- 'maxResults', 'listReceivedGrantsForOrganization_maxResults' - Maximum number of results to return in a single call.
+--
+-- 'nextToken', 'listReceivedGrantsForOrganization_nextToken' - Token for the next set of results.
+--
+-- 'licenseArn', 'listReceivedGrantsForOrganization_licenseArn' - The Amazon Resource Name (ARN) of the received license.
+newListReceivedGrantsForOrganization ::
+  -- | 'licenseArn'
+  Prelude.Text ->
+  ListReceivedGrantsForOrganization
+newListReceivedGrantsForOrganization pLicenseArn_ =
+  ListReceivedGrantsForOrganization'
+    { filters =
+        Prelude.Nothing,
+      maxResults = Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      licenseArn = pLicenseArn_
+    }
+
+-- | Filters to scope the results. The following filters are supported:
+--
+-- -   @ParentArn@
+--
+-- -   @GranteePrincipalArn@
+listReceivedGrantsForOrganization_filters :: Lens.Lens' ListReceivedGrantsForOrganization (Prelude.Maybe [Filter])
+listReceivedGrantsForOrganization_filters = Lens.lens (\ListReceivedGrantsForOrganization' {filters} -> filters) (\s@ListReceivedGrantsForOrganization' {} a -> s {filters = a} :: ListReceivedGrantsForOrganization) Prelude.. Lens.mapping Lens.coerced
+
+-- | Maximum number of results to return in a single call.
+listReceivedGrantsForOrganization_maxResults :: Lens.Lens' ListReceivedGrantsForOrganization (Prelude.Maybe Prelude.Natural)
+listReceivedGrantsForOrganization_maxResults = Lens.lens (\ListReceivedGrantsForOrganization' {maxResults} -> maxResults) (\s@ListReceivedGrantsForOrganization' {} a -> s {maxResults = a} :: ListReceivedGrantsForOrganization)
+
+-- | Token for the next set of results.
+listReceivedGrantsForOrganization_nextToken :: Lens.Lens' ListReceivedGrantsForOrganization (Prelude.Maybe Prelude.Text)
+listReceivedGrantsForOrganization_nextToken = Lens.lens (\ListReceivedGrantsForOrganization' {nextToken} -> nextToken) (\s@ListReceivedGrantsForOrganization' {} a -> s {nextToken = a} :: ListReceivedGrantsForOrganization)
+
+-- | The Amazon Resource Name (ARN) of the received license.
+listReceivedGrantsForOrganization_licenseArn :: Lens.Lens' ListReceivedGrantsForOrganization Prelude.Text
+listReceivedGrantsForOrganization_licenseArn = Lens.lens (\ListReceivedGrantsForOrganization' {licenseArn} -> licenseArn) (\s@ListReceivedGrantsForOrganization' {} a -> s {licenseArn = a} :: ListReceivedGrantsForOrganization)
+
+instance
+  Core.AWSRequest
+    ListReceivedGrantsForOrganization
+  where
+  type
+    AWSResponse ListReceivedGrantsForOrganization =
+      ListReceivedGrantsForOrganizationResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListReceivedGrantsForOrganizationResponse'
+            Prelude.<$> (x Data..?> "Grants" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..?> "NextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    ListReceivedGrantsForOrganization
+  where
+  hashWithSalt
+    _salt
+    ListReceivedGrantsForOrganization' {..} =
+      _salt
+        `Prelude.hashWithSalt` filters
+        `Prelude.hashWithSalt` maxResults
+        `Prelude.hashWithSalt` nextToken
+        `Prelude.hashWithSalt` licenseArn
+
+instance
+  Prelude.NFData
+    ListReceivedGrantsForOrganization
+  where
+  rnf ListReceivedGrantsForOrganization' {..} =
+    Prelude.rnf filters
+      `Prelude.seq` Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf licenseArn
+
+instance
+  Data.ToHeaders
+    ListReceivedGrantsForOrganization
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.ListReceivedGrantsForOrganization" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    ListReceivedGrantsForOrganization
+  where
+  toJSON ListReceivedGrantsForOrganization' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("Filters" Data..=) Prelude.<$> filters,
+            ("MaxResults" Data..=) Prelude.<$> maxResults,
+            ("NextToken" Data..=) Prelude.<$> nextToken,
+            Prelude.Just ("LicenseArn" Data..= licenseArn)
+          ]
+      )
+
+instance
+  Data.ToPath
+    ListReceivedGrantsForOrganization
+  where
+  toPath = Prelude.const "/"
+
+instance
+  Data.ToQuery
+    ListReceivedGrantsForOrganization
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newListReceivedGrantsForOrganizationResponse' smart constructor.
+data ListReceivedGrantsForOrganizationResponse = ListReceivedGrantsForOrganizationResponse'
+  { -- | Lists the grants the organization has received.
+    grants :: Prelude.Maybe [Grant],
+    -- | Token for the next set of results.
+    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 'ListReceivedGrantsForOrganizationResponse' 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:
+--
+-- 'grants', 'listReceivedGrantsForOrganizationResponse_grants' - Lists the grants the organization has received.
+--
+-- 'nextToken', 'listReceivedGrantsForOrganizationResponse_nextToken' - Token for the next set of results.
+--
+-- 'httpStatus', 'listReceivedGrantsForOrganizationResponse_httpStatus' - The response's http status code.
+newListReceivedGrantsForOrganizationResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListReceivedGrantsForOrganizationResponse
+newListReceivedGrantsForOrganizationResponse
+  pHttpStatus_ =
+    ListReceivedGrantsForOrganizationResponse'
+      { grants =
+          Prelude.Nothing,
+        nextToken = Prelude.Nothing,
+        httpStatus = pHttpStatus_
+      }
+
+-- | Lists the grants the organization has received.
+listReceivedGrantsForOrganizationResponse_grants :: Lens.Lens' ListReceivedGrantsForOrganizationResponse (Prelude.Maybe [Grant])
+listReceivedGrantsForOrganizationResponse_grants = Lens.lens (\ListReceivedGrantsForOrganizationResponse' {grants} -> grants) (\s@ListReceivedGrantsForOrganizationResponse' {} a -> s {grants = a} :: ListReceivedGrantsForOrganizationResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | Token for the next set of results.
+listReceivedGrantsForOrganizationResponse_nextToken :: Lens.Lens' ListReceivedGrantsForOrganizationResponse (Prelude.Maybe Prelude.Text)
+listReceivedGrantsForOrganizationResponse_nextToken = Lens.lens (\ListReceivedGrantsForOrganizationResponse' {nextToken} -> nextToken) (\s@ListReceivedGrantsForOrganizationResponse' {} a -> s {nextToken = a} :: ListReceivedGrantsForOrganizationResponse)
+
+-- | The response's http status code.
+listReceivedGrantsForOrganizationResponse_httpStatus :: Lens.Lens' ListReceivedGrantsForOrganizationResponse Prelude.Int
+listReceivedGrantsForOrganizationResponse_httpStatus = Lens.lens (\ListReceivedGrantsForOrganizationResponse' {httpStatus} -> httpStatus) (\s@ListReceivedGrantsForOrganizationResponse' {} a -> s {httpStatus = a} :: ListReceivedGrantsForOrganizationResponse)
+
+instance
+  Prelude.NFData
+    ListReceivedGrantsForOrganizationResponse
+  where
+  rnf ListReceivedGrantsForOrganizationResponse' {..} =
+    Prelude.rnf grants
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/ListReceivedLicenses.hs b/gen/Amazonka/LicenseManager/ListReceivedLicenses.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/ListReceivedLicenses.hs
@@ -0,0 +1,252 @@
+{-# 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.LicenseManager.ListReceivedLicenses
+-- 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 received licenses.
+module Amazonka.LicenseManager.ListReceivedLicenses
+  ( -- * Creating a Request
+    ListReceivedLicenses (..),
+    newListReceivedLicenses,
+
+    -- * Request Lenses
+    listReceivedLicenses_filters,
+    listReceivedLicenses_licenseArns,
+    listReceivedLicenses_maxResults,
+    listReceivedLicenses_nextToken,
+
+    -- * Destructuring the Response
+    ListReceivedLicensesResponse (..),
+    newListReceivedLicensesResponse,
+
+    -- * Response Lenses
+    listReceivedLicensesResponse_licenses,
+    listReceivedLicensesResponse_nextToken,
+    listReceivedLicensesResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newListReceivedLicenses' smart constructor.
+data ListReceivedLicenses = ListReceivedLicenses'
+  { -- | Filters to scope the results. The following filters are supported:
+    --
+    -- -   @ProductSKU@
+    --
+    -- -   @Status@
+    --
+    -- -   @Fingerprint@
+    --
+    -- -   @IssuerName@
+    --
+    -- -   @Beneficiary@
+    filters :: Prelude.Maybe [Filter],
+    -- | Amazon Resource Names (ARNs) of the licenses.
+    licenseArns :: Prelude.Maybe [Prelude.Text],
+    -- | Maximum number of results to return in a single call.
+    maxResults :: Prelude.Maybe Prelude.Natural,
+    -- | Token for the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListReceivedLicenses' 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:
+--
+-- 'filters', 'listReceivedLicenses_filters' - Filters to scope the results. The following filters are supported:
+--
+-- -   @ProductSKU@
+--
+-- -   @Status@
+--
+-- -   @Fingerprint@
+--
+-- -   @IssuerName@
+--
+-- -   @Beneficiary@
+--
+-- 'licenseArns', 'listReceivedLicenses_licenseArns' - Amazon Resource Names (ARNs) of the licenses.
+--
+-- 'maxResults', 'listReceivedLicenses_maxResults' - Maximum number of results to return in a single call.
+--
+-- 'nextToken', 'listReceivedLicenses_nextToken' - Token for the next set of results.
+newListReceivedLicenses ::
+  ListReceivedLicenses
+newListReceivedLicenses =
+  ListReceivedLicenses'
+    { filters = Prelude.Nothing,
+      licenseArns = Prelude.Nothing,
+      maxResults = Prelude.Nothing,
+      nextToken = Prelude.Nothing
+    }
+
+-- | Filters to scope the results. The following filters are supported:
+--
+-- -   @ProductSKU@
+--
+-- -   @Status@
+--
+-- -   @Fingerprint@
+--
+-- -   @IssuerName@
+--
+-- -   @Beneficiary@
+listReceivedLicenses_filters :: Lens.Lens' ListReceivedLicenses (Prelude.Maybe [Filter])
+listReceivedLicenses_filters = Lens.lens (\ListReceivedLicenses' {filters} -> filters) (\s@ListReceivedLicenses' {} a -> s {filters = a} :: ListReceivedLicenses) Prelude.. Lens.mapping Lens.coerced
+
+-- | Amazon Resource Names (ARNs) of the licenses.
+listReceivedLicenses_licenseArns :: Lens.Lens' ListReceivedLicenses (Prelude.Maybe [Prelude.Text])
+listReceivedLicenses_licenseArns = Lens.lens (\ListReceivedLicenses' {licenseArns} -> licenseArns) (\s@ListReceivedLicenses' {} a -> s {licenseArns = a} :: ListReceivedLicenses) Prelude.. Lens.mapping Lens.coerced
+
+-- | Maximum number of results to return in a single call.
+listReceivedLicenses_maxResults :: Lens.Lens' ListReceivedLicenses (Prelude.Maybe Prelude.Natural)
+listReceivedLicenses_maxResults = Lens.lens (\ListReceivedLicenses' {maxResults} -> maxResults) (\s@ListReceivedLicenses' {} a -> s {maxResults = a} :: ListReceivedLicenses)
+
+-- | Token for the next set of results.
+listReceivedLicenses_nextToken :: Lens.Lens' ListReceivedLicenses (Prelude.Maybe Prelude.Text)
+listReceivedLicenses_nextToken = Lens.lens (\ListReceivedLicenses' {nextToken} -> nextToken) (\s@ListReceivedLicenses' {} a -> s {nextToken = a} :: ListReceivedLicenses)
+
+instance Core.AWSRequest ListReceivedLicenses where
+  type
+    AWSResponse ListReceivedLicenses =
+      ListReceivedLicensesResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListReceivedLicensesResponse'
+            Prelude.<$> (x Data..?> "Licenses" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..?> "NextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable ListReceivedLicenses where
+  hashWithSalt _salt ListReceivedLicenses' {..} =
+    _salt
+      `Prelude.hashWithSalt` filters
+      `Prelude.hashWithSalt` licenseArns
+      `Prelude.hashWithSalt` maxResults
+      `Prelude.hashWithSalt` nextToken
+
+instance Prelude.NFData ListReceivedLicenses where
+  rnf ListReceivedLicenses' {..} =
+    Prelude.rnf filters
+      `Prelude.seq` Prelude.rnf licenseArns
+      `Prelude.seq` Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+
+instance Data.ToHeaders ListReceivedLicenses where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.ListReceivedLicenses" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON ListReceivedLicenses where
+  toJSON ListReceivedLicenses' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("Filters" Data..=) Prelude.<$> filters,
+            ("LicenseArns" Data..=) Prelude.<$> licenseArns,
+            ("MaxResults" Data..=) Prelude.<$> maxResults,
+            ("NextToken" Data..=) Prelude.<$> nextToken
+          ]
+      )
+
+instance Data.ToPath ListReceivedLicenses where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery ListReceivedLicenses where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newListReceivedLicensesResponse' smart constructor.
+data ListReceivedLicensesResponse = ListReceivedLicensesResponse'
+  { -- | Received license details.
+    licenses :: Prelude.Maybe [GrantedLicense],
+    -- | Token for the next set of results.
+    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 'ListReceivedLicensesResponse' 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:
+--
+-- 'licenses', 'listReceivedLicensesResponse_licenses' - Received license details.
+--
+-- 'nextToken', 'listReceivedLicensesResponse_nextToken' - Token for the next set of results.
+--
+-- 'httpStatus', 'listReceivedLicensesResponse_httpStatus' - The response's http status code.
+newListReceivedLicensesResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListReceivedLicensesResponse
+newListReceivedLicensesResponse pHttpStatus_ =
+  ListReceivedLicensesResponse'
+    { licenses =
+        Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Received license details.
+listReceivedLicensesResponse_licenses :: Lens.Lens' ListReceivedLicensesResponse (Prelude.Maybe [GrantedLicense])
+listReceivedLicensesResponse_licenses = Lens.lens (\ListReceivedLicensesResponse' {licenses} -> licenses) (\s@ListReceivedLicensesResponse' {} a -> s {licenses = a} :: ListReceivedLicensesResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | Token for the next set of results.
+listReceivedLicensesResponse_nextToken :: Lens.Lens' ListReceivedLicensesResponse (Prelude.Maybe Prelude.Text)
+listReceivedLicensesResponse_nextToken = Lens.lens (\ListReceivedLicensesResponse' {nextToken} -> nextToken) (\s@ListReceivedLicensesResponse' {} a -> s {nextToken = a} :: ListReceivedLicensesResponse)
+
+-- | The response's http status code.
+listReceivedLicensesResponse_httpStatus :: Lens.Lens' ListReceivedLicensesResponse Prelude.Int
+listReceivedLicensesResponse_httpStatus = Lens.lens (\ListReceivedLicensesResponse' {httpStatus} -> httpStatus) (\s@ListReceivedLicensesResponse' {} a -> s {httpStatus = a} :: ListReceivedLicensesResponse)
+
+instance Prelude.NFData ListReceivedLicensesResponse where
+  rnf ListReceivedLicensesResponse' {..} =
+    Prelude.rnf licenses
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/ListReceivedLicensesForOrganization.hs b/gen/Amazonka/LicenseManager/ListReceivedLicensesForOrganization.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/ListReceivedLicensesForOrganization.hs
@@ -0,0 +1,249 @@
+{-# 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.LicenseManager.ListReceivedLicensesForOrganization
+-- 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 the licenses received for all accounts in the organization.
+module Amazonka.LicenseManager.ListReceivedLicensesForOrganization
+  ( -- * Creating a Request
+    ListReceivedLicensesForOrganization (..),
+    newListReceivedLicensesForOrganization,
+
+    -- * Request Lenses
+    listReceivedLicensesForOrganization_filters,
+    listReceivedLicensesForOrganization_maxResults,
+    listReceivedLicensesForOrganization_nextToken,
+
+    -- * Destructuring the Response
+    ListReceivedLicensesForOrganizationResponse (..),
+    newListReceivedLicensesForOrganizationResponse,
+
+    -- * Response Lenses
+    listReceivedLicensesForOrganizationResponse_licenses,
+    listReceivedLicensesForOrganizationResponse_nextToken,
+    listReceivedLicensesForOrganizationResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newListReceivedLicensesForOrganization' smart constructor.
+data ListReceivedLicensesForOrganization = ListReceivedLicensesForOrganization'
+  { -- | Filters to scope the results. The following filters are supported:
+    --
+    -- -   @Beneficiary@
+    --
+    -- -   @ProductSKU@
+    filters :: Prelude.Maybe [Filter],
+    -- | Maximum number of results to return in a single call.
+    maxResults :: Prelude.Maybe Prelude.Natural,
+    -- | Token for the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListReceivedLicensesForOrganization' 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:
+--
+-- 'filters', 'listReceivedLicensesForOrganization_filters' - Filters to scope the results. The following filters are supported:
+--
+-- -   @Beneficiary@
+--
+-- -   @ProductSKU@
+--
+-- 'maxResults', 'listReceivedLicensesForOrganization_maxResults' - Maximum number of results to return in a single call.
+--
+-- 'nextToken', 'listReceivedLicensesForOrganization_nextToken' - Token for the next set of results.
+newListReceivedLicensesForOrganization ::
+  ListReceivedLicensesForOrganization
+newListReceivedLicensesForOrganization =
+  ListReceivedLicensesForOrganization'
+    { filters =
+        Prelude.Nothing,
+      maxResults = Prelude.Nothing,
+      nextToken = Prelude.Nothing
+    }
+
+-- | Filters to scope the results. The following filters are supported:
+--
+-- -   @Beneficiary@
+--
+-- -   @ProductSKU@
+listReceivedLicensesForOrganization_filters :: Lens.Lens' ListReceivedLicensesForOrganization (Prelude.Maybe [Filter])
+listReceivedLicensesForOrganization_filters = Lens.lens (\ListReceivedLicensesForOrganization' {filters} -> filters) (\s@ListReceivedLicensesForOrganization' {} a -> s {filters = a} :: ListReceivedLicensesForOrganization) Prelude.. Lens.mapping Lens.coerced
+
+-- | Maximum number of results to return in a single call.
+listReceivedLicensesForOrganization_maxResults :: Lens.Lens' ListReceivedLicensesForOrganization (Prelude.Maybe Prelude.Natural)
+listReceivedLicensesForOrganization_maxResults = Lens.lens (\ListReceivedLicensesForOrganization' {maxResults} -> maxResults) (\s@ListReceivedLicensesForOrganization' {} a -> s {maxResults = a} :: ListReceivedLicensesForOrganization)
+
+-- | Token for the next set of results.
+listReceivedLicensesForOrganization_nextToken :: Lens.Lens' ListReceivedLicensesForOrganization (Prelude.Maybe Prelude.Text)
+listReceivedLicensesForOrganization_nextToken = Lens.lens (\ListReceivedLicensesForOrganization' {nextToken} -> nextToken) (\s@ListReceivedLicensesForOrganization' {} a -> s {nextToken = a} :: ListReceivedLicensesForOrganization)
+
+instance
+  Core.AWSRequest
+    ListReceivedLicensesForOrganization
+  where
+  type
+    AWSResponse ListReceivedLicensesForOrganization =
+      ListReceivedLicensesForOrganizationResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListReceivedLicensesForOrganizationResponse'
+            Prelude.<$> (x Data..?> "Licenses" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..?> "NextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    ListReceivedLicensesForOrganization
+  where
+  hashWithSalt
+    _salt
+    ListReceivedLicensesForOrganization' {..} =
+      _salt
+        `Prelude.hashWithSalt` filters
+        `Prelude.hashWithSalt` maxResults
+        `Prelude.hashWithSalt` nextToken
+
+instance
+  Prelude.NFData
+    ListReceivedLicensesForOrganization
+  where
+  rnf ListReceivedLicensesForOrganization' {..} =
+    Prelude.rnf filters
+      `Prelude.seq` Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+
+instance
+  Data.ToHeaders
+    ListReceivedLicensesForOrganization
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.ListReceivedLicensesForOrganization" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    ListReceivedLicensesForOrganization
+  where
+  toJSON ListReceivedLicensesForOrganization' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("Filters" Data..=) Prelude.<$> filters,
+            ("MaxResults" Data..=) Prelude.<$> maxResults,
+            ("NextToken" Data..=) Prelude.<$> nextToken
+          ]
+      )
+
+instance
+  Data.ToPath
+    ListReceivedLicensesForOrganization
+  where
+  toPath = Prelude.const "/"
+
+instance
+  Data.ToQuery
+    ListReceivedLicensesForOrganization
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newListReceivedLicensesForOrganizationResponse' smart constructor.
+data ListReceivedLicensesForOrganizationResponse = ListReceivedLicensesForOrganizationResponse'
+  { -- | Lists the licenses the organization has received.
+    licenses :: Prelude.Maybe [GrantedLicense],
+    -- | Token for the next set of results.
+    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 'ListReceivedLicensesForOrganizationResponse' 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:
+--
+-- 'licenses', 'listReceivedLicensesForOrganizationResponse_licenses' - Lists the licenses the organization has received.
+--
+-- 'nextToken', 'listReceivedLicensesForOrganizationResponse_nextToken' - Token for the next set of results.
+--
+-- 'httpStatus', 'listReceivedLicensesForOrganizationResponse_httpStatus' - The response's http status code.
+newListReceivedLicensesForOrganizationResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListReceivedLicensesForOrganizationResponse
+newListReceivedLicensesForOrganizationResponse
+  pHttpStatus_ =
+    ListReceivedLicensesForOrganizationResponse'
+      { licenses =
+          Prelude.Nothing,
+        nextToken = Prelude.Nothing,
+        httpStatus = pHttpStatus_
+      }
+
+-- | Lists the licenses the organization has received.
+listReceivedLicensesForOrganizationResponse_licenses :: Lens.Lens' ListReceivedLicensesForOrganizationResponse (Prelude.Maybe [GrantedLicense])
+listReceivedLicensesForOrganizationResponse_licenses = Lens.lens (\ListReceivedLicensesForOrganizationResponse' {licenses} -> licenses) (\s@ListReceivedLicensesForOrganizationResponse' {} a -> s {licenses = a} :: ListReceivedLicensesForOrganizationResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | Token for the next set of results.
+listReceivedLicensesForOrganizationResponse_nextToken :: Lens.Lens' ListReceivedLicensesForOrganizationResponse (Prelude.Maybe Prelude.Text)
+listReceivedLicensesForOrganizationResponse_nextToken = Lens.lens (\ListReceivedLicensesForOrganizationResponse' {nextToken} -> nextToken) (\s@ListReceivedLicensesForOrganizationResponse' {} a -> s {nextToken = a} :: ListReceivedLicensesForOrganizationResponse)
+
+-- | The response's http status code.
+listReceivedLicensesForOrganizationResponse_httpStatus :: Lens.Lens' ListReceivedLicensesForOrganizationResponse Prelude.Int
+listReceivedLicensesForOrganizationResponse_httpStatus = Lens.lens (\ListReceivedLicensesForOrganizationResponse' {httpStatus} -> httpStatus) (\s@ListReceivedLicensesForOrganizationResponse' {} a -> s {httpStatus = a} :: ListReceivedLicensesForOrganizationResponse)
+
+instance
+  Prelude.NFData
+    ListReceivedLicensesForOrganizationResponse
+  where
+  rnf ListReceivedLicensesForOrganizationResponse' {..} =
+    Prelude.rnf licenses
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/ListResourceInventory.hs b/gen/Amazonka/LicenseManager/ListResourceInventory.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/ListResourceInventory.hs
@@ -0,0 +1,302 @@
+{-# 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.LicenseManager.ListResourceInventory
+-- 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 resources managed using Systems Manager inventory.
+--
+-- This operation returns paginated results.
+module Amazonka.LicenseManager.ListResourceInventory
+  ( -- * Creating a Request
+    ListResourceInventory (..),
+    newListResourceInventory,
+
+    -- * Request Lenses
+    listResourceInventory_filters,
+    listResourceInventory_maxResults,
+    listResourceInventory_nextToken,
+
+    -- * Destructuring the Response
+    ListResourceInventoryResponse (..),
+    newListResourceInventoryResponse,
+
+    -- * Response Lenses
+    listResourceInventoryResponse_nextToken,
+    listResourceInventoryResponse_resourceInventoryList,
+    listResourceInventoryResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newListResourceInventory' smart constructor.
+data ListResourceInventory = ListResourceInventory'
+  { -- | Filters to scope the results. The following filters and logical
+    -- operators are supported:
+    --
+    -- -   @account_id@ - The ID of the Amazon Web Services account that owns
+    --     the resource. Logical operators are @EQUALS@ | @NOT_EQUALS@.
+    --
+    -- -   @application_name@ - The name of the application. Logical operators
+    --     are @EQUALS@ | @BEGINS_WITH@.
+    --
+    -- -   @license_included@ - The type of license included. Logical operators
+    --     are @EQUALS@ | @NOT_EQUALS@. Possible values are
+    --     @sql-server-enterprise@ | @sql-server-standard@ | @sql-server-web@ |
+    --     @windows-server-datacenter@.
+    --
+    -- -   @platform@ - The platform of the resource. Logical operators are
+    --     @EQUALS@ | @BEGINS_WITH@.
+    --
+    -- -   @resource_id@ - The ID of the resource. Logical operators are
+    --     @EQUALS@ | @NOT_EQUALS@.
+    --
+    -- -   @tag:\<key>@ - The key\/value combination of a tag assigned to the
+    --     resource. Logical operators are @EQUALS@ (single account) or
+    --     @EQUALS@ | @NOT_EQUALS@ (cross account).
+    filters :: Prelude.Maybe [InventoryFilter],
+    -- | Maximum number of results to return in a single call.
+    maxResults :: Prelude.Maybe Prelude.Int,
+    -- | Token for the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListResourceInventory' 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:
+--
+-- 'filters', 'listResourceInventory_filters' - Filters to scope the results. The following filters and logical
+-- operators are supported:
+--
+-- -   @account_id@ - The ID of the Amazon Web Services account that owns
+--     the resource. Logical operators are @EQUALS@ | @NOT_EQUALS@.
+--
+-- -   @application_name@ - The name of the application. Logical operators
+--     are @EQUALS@ | @BEGINS_WITH@.
+--
+-- -   @license_included@ - The type of license included. Logical operators
+--     are @EQUALS@ | @NOT_EQUALS@. Possible values are
+--     @sql-server-enterprise@ | @sql-server-standard@ | @sql-server-web@ |
+--     @windows-server-datacenter@.
+--
+-- -   @platform@ - The platform of the resource. Logical operators are
+--     @EQUALS@ | @BEGINS_WITH@.
+--
+-- -   @resource_id@ - The ID of the resource. Logical operators are
+--     @EQUALS@ | @NOT_EQUALS@.
+--
+-- -   @tag:\<key>@ - The key\/value combination of a tag assigned to the
+--     resource. Logical operators are @EQUALS@ (single account) or
+--     @EQUALS@ | @NOT_EQUALS@ (cross account).
+--
+-- 'maxResults', 'listResourceInventory_maxResults' - Maximum number of results to return in a single call.
+--
+-- 'nextToken', 'listResourceInventory_nextToken' - Token for the next set of results.
+newListResourceInventory ::
+  ListResourceInventory
+newListResourceInventory =
+  ListResourceInventory'
+    { filters = Prelude.Nothing,
+      maxResults = Prelude.Nothing,
+      nextToken = Prelude.Nothing
+    }
+
+-- | Filters to scope the results. The following filters and logical
+-- operators are supported:
+--
+-- -   @account_id@ - The ID of the Amazon Web Services account that owns
+--     the resource. Logical operators are @EQUALS@ | @NOT_EQUALS@.
+--
+-- -   @application_name@ - The name of the application. Logical operators
+--     are @EQUALS@ | @BEGINS_WITH@.
+--
+-- -   @license_included@ - The type of license included. Logical operators
+--     are @EQUALS@ | @NOT_EQUALS@. Possible values are
+--     @sql-server-enterprise@ | @sql-server-standard@ | @sql-server-web@ |
+--     @windows-server-datacenter@.
+--
+-- -   @platform@ - The platform of the resource. Logical operators are
+--     @EQUALS@ | @BEGINS_WITH@.
+--
+-- -   @resource_id@ - The ID of the resource. Logical operators are
+--     @EQUALS@ | @NOT_EQUALS@.
+--
+-- -   @tag:\<key>@ - The key\/value combination of a tag assigned to the
+--     resource. Logical operators are @EQUALS@ (single account) or
+--     @EQUALS@ | @NOT_EQUALS@ (cross account).
+listResourceInventory_filters :: Lens.Lens' ListResourceInventory (Prelude.Maybe [InventoryFilter])
+listResourceInventory_filters = Lens.lens (\ListResourceInventory' {filters} -> filters) (\s@ListResourceInventory' {} a -> s {filters = a} :: ListResourceInventory) Prelude.. Lens.mapping Lens.coerced
+
+-- | Maximum number of results to return in a single call.
+listResourceInventory_maxResults :: Lens.Lens' ListResourceInventory (Prelude.Maybe Prelude.Int)
+listResourceInventory_maxResults = Lens.lens (\ListResourceInventory' {maxResults} -> maxResults) (\s@ListResourceInventory' {} a -> s {maxResults = a} :: ListResourceInventory)
+
+-- | Token for the next set of results.
+listResourceInventory_nextToken :: Lens.Lens' ListResourceInventory (Prelude.Maybe Prelude.Text)
+listResourceInventory_nextToken = Lens.lens (\ListResourceInventory' {nextToken} -> nextToken) (\s@ListResourceInventory' {} a -> s {nextToken = a} :: ListResourceInventory)
+
+instance Core.AWSPager ListResourceInventory where
+  page rq rs
+    | Core.stop
+        ( rs
+            Lens.^? listResourceInventoryResponse_nextToken
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Core.stop
+        ( rs
+            Lens.^? listResourceInventoryResponse_resourceInventoryList
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Prelude.otherwise =
+        Prelude.Just
+          Prelude.$ rq
+          Prelude.& listResourceInventory_nextToken
+          Lens..~ rs
+          Lens.^? listResourceInventoryResponse_nextToken
+          Prelude.. Lens._Just
+
+instance Core.AWSRequest ListResourceInventory where
+  type
+    AWSResponse ListResourceInventory =
+      ListResourceInventoryResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListResourceInventoryResponse'
+            Prelude.<$> (x Data..?> "NextToken")
+            Prelude.<*> ( x
+                            Data..?> "ResourceInventoryList"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable ListResourceInventory where
+  hashWithSalt _salt ListResourceInventory' {..} =
+    _salt
+      `Prelude.hashWithSalt` filters
+      `Prelude.hashWithSalt` maxResults
+      `Prelude.hashWithSalt` nextToken
+
+instance Prelude.NFData ListResourceInventory where
+  rnf ListResourceInventory' {..} =
+    Prelude.rnf filters
+      `Prelude.seq` Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+
+instance Data.ToHeaders ListResourceInventory where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.ListResourceInventory" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON ListResourceInventory where
+  toJSON ListResourceInventory' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("Filters" Data..=) Prelude.<$> filters,
+            ("MaxResults" Data..=) Prelude.<$> maxResults,
+            ("NextToken" Data..=) Prelude.<$> nextToken
+          ]
+      )
+
+instance Data.ToPath ListResourceInventory where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery ListResourceInventory where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newListResourceInventoryResponse' smart constructor.
+data ListResourceInventoryResponse = ListResourceInventoryResponse'
+  { -- | Token for the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | Information about the resources.
+    resourceInventoryList :: Prelude.Maybe [ResourceInventory],
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListResourceInventoryResponse' 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:
+--
+-- 'nextToken', 'listResourceInventoryResponse_nextToken' - Token for the next set of results.
+--
+-- 'resourceInventoryList', 'listResourceInventoryResponse_resourceInventoryList' - Information about the resources.
+--
+-- 'httpStatus', 'listResourceInventoryResponse_httpStatus' - The response's http status code.
+newListResourceInventoryResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListResourceInventoryResponse
+newListResourceInventoryResponse pHttpStatus_ =
+  ListResourceInventoryResponse'
+    { nextToken =
+        Prelude.Nothing,
+      resourceInventoryList = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Token for the next set of results.
+listResourceInventoryResponse_nextToken :: Lens.Lens' ListResourceInventoryResponse (Prelude.Maybe Prelude.Text)
+listResourceInventoryResponse_nextToken = Lens.lens (\ListResourceInventoryResponse' {nextToken} -> nextToken) (\s@ListResourceInventoryResponse' {} a -> s {nextToken = a} :: ListResourceInventoryResponse)
+
+-- | Information about the resources.
+listResourceInventoryResponse_resourceInventoryList :: Lens.Lens' ListResourceInventoryResponse (Prelude.Maybe [ResourceInventory])
+listResourceInventoryResponse_resourceInventoryList = Lens.lens (\ListResourceInventoryResponse' {resourceInventoryList} -> resourceInventoryList) (\s@ListResourceInventoryResponse' {} a -> s {resourceInventoryList = a} :: ListResourceInventoryResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+listResourceInventoryResponse_httpStatus :: Lens.Lens' ListResourceInventoryResponse Prelude.Int
+listResourceInventoryResponse_httpStatus = Lens.lens (\ListResourceInventoryResponse' {httpStatus} -> httpStatus) (\s@ListResourceInventoryResponse' {} a -> s {httpStatus = a} :: ListResourceInventoryResponse)
+
+instance Prelude.NFData ListResourceInventoryResponse where
+  rnf ListResourceInventoryResponse' {..} =
+    Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf resourceInventoryList
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/ListTagsForResource.hs b/gen/Amazonka/LicenseManager/ListTagsForResource.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/ListTagsForResource.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.LicenseManager.ListTagsForResource
+-- 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 the tags for the specified license configuration.
+module Amazonka.LicenseManager.ListTagsForResource
+  ( -- * Creating a Request
+    ListTagsForResource (..),
+    newListTagsForResource,
+
+    -- * Request Lenses
+    listTagsForResource_resourceArn,
+
+    -- * Destructuring the Response
+    ListTagsForResourceResponse (..),
+    newListTagsForResourceResponse,
+
+    -- * Response Lenses
+    listTagsForResourceResponse_tags,
+    listTagsForResourceResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newListTagsForResource' smart constructor.
+data ListTagsForResource = ListTagsForResource'
+  { -- | Amazon Resource Name (ARN) of the license configuration.
+    resourceArn :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListTagsForResource' 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', 'listTagsForResource_resourceArn' - Amazon Resource Name (ARN) of the license configuration.
+newListTagsForResource ::
+  -- | 'resourceArn'
+  Prelude.Text ->
+  ListTagsForResource
+newListTagsForResource pResourceArn_ =
+  ListTagsForResource' {resourceArn = pResourceArn_}
+
+-- | Amazon Resource Name (ARN) of the license configuration.
+listTagsForResource_resourceArn :: Lens.Lens' ListTagsForResource Prelude.Text
+listTagsForResource_resourceArn = Lens.lens (\ListTagsForResource' {resourceArn} -> resourceArn) (\s@ListTagsForResource' {} a -> s {resourceArn = a} :: ListTagsForResource)
+
+instance Core.AWSRequest ListTagsForResource where
+  type
+    AWSResponse ListTagsForResource =
+      ListTagsForResourceResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListTagsForResourceResponse'
+            Prelude.<$> (x Data..?> "Tags" Core..!@ Prelude.mempty)
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable ListTagsForResource where
+  hashWithSalt _salt ListTagsForResource' {..} =
+    _salt `Prelude.hashWithSalt` resourceArn
+
+instance Prelude.NFData ListTagsForResource where
+  rnf ListTagsForResource' {..} =
+    Prelude.rnf resourceArn
+
+instance Data.ToHeaders ListTagsForResource where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.ListTagsForResource" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON ListTagsForResource where
+  toJSON ListTagsForResource' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [Prelude.Just ("ResourceArn" Data..= resourceArn)]
+      )
+
+instance Data.ToPath ListTagsForResource where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery ListTagsForResource where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newListTagsForResourceResponse' smart constructor.
+data ListTagsForResourceResponse = ListTagsForResourceResponse'
+  { -- | Information about the tags.
+    tags :: Prelude.Maybe [Tag],
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListTagsForResourceResponse' 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', 'listTagsForResourceResponse_tags' - Information about the tags.
+--
+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.
+newListTagsForResourceResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListTagsForResourceResponse
+newListTagsForResourceResponse pHttpStatus_ =
+  ListTagsForResourceResponse'
+    { tags =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Information about the tags.
+listTagsForResourceResponse_tags :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe [Tag])
+listTagsForResourceResponse_tags = Lens.lens (\ListTagsForResourceResponse' {tags} -> tags) (\s@ListTagsForResourceResponse' {} a -> s {tags = a} :: ListTagsForResourceResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+listTagsForResourceResponse_httpStatus :: Lens.Lens' ListTagsForResourceResponse Prelude.Int
+listTagsForResourceResponse_httpStatus = Lens.lens (\ListTagsForResourceResponse' {httpStatus} -> httpStatus) (\s@ListTagsForResourceResponse' {} a -> s {httpStatus = a} :: ListTagsForResourceResponse)
+
+instance Prelude.NFData ListTagsForResourceResponse where
+  rnf ListTagsForResourceResponse' {..} =
+    Prelude.rnf tags
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/ListTokens.hs b/gen/Amazonka/LicenseManager/ListTokens.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/ListTokens.hs
@@ -0,0 +1,225 @@
+{-# 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.LicenseManager.ListTokens
+-- 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 your tokens.
+module Amazonka.LicenseManager.ListTokens
+  ( -- * Creating a Request
+    ListTokens (..),
+    newListTokens,
+
+    -- * Request Lenses
+    listTokens_filters,
+    listTokens_maxResults,
+    listTokens_nextToken,
+    listTokens_tokenIds,
+
+    -- * Destructuring the Response
+    ListTokensResponse (..),
+    newListTokensResponse,
+
+    -- * Response Lenses
+    listTokensResponse_nextToken,
+    listTokensResponse_tokens,
+    listTokensResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newListTokens' smart constructor.
+data ListTokens = ListTokens'
+  { -- | Filters to scope the results. The following filter is supported:
+    --
+    -- -   @LicenseArns@
+    filters :: Prelude.Maybe [Filter],
+    -- | Maximum number of results to return in a single call.
+    maxResults :: Prelude.Maybe Prelude.Natural,
+    -- | Token for the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | Token IDs.
+    tokenIds :: Prelude.Maybe [Prelude.Text]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListTokens' 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:
+--
+-- 'filters', 'listTokens_filters' - Filters to scope the results. The following filter is supported:
+--
+-- -   @LicenseArns@
+--
+-- 'maxResults', 'listTokens_maxResults' - Maximum number of results to return in a single call.
+--
+-- 'nextToken', 'listTokens_nextToken' - Token for the next set of results.
+--
+-- 'tokenIds', 'listTokens_tokenIds' - Token IDs.
+newListTokens ::
+  ListTokens
+newListTokens =
+  ListTokens'
+    { filters = Prelude.Nothing,
+      maxResults = Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      tokenIds = Prelude.Nothing
+    }
+
+-- | Filters to scope the results. The following filter is supported:
+--
+-- -   @LicenseArns@
+listTokens_filters :: Lens.Lens' ListTokens (Prelude.Maybe [Filter])
+listTokens_filters = Lens.lens (\ListTokens' {filters} -> filters) (\s@ListTokens' {} a -> s {filters = a} :: ListTokens) Prelude.. Lens.mapping Lens.coerced
+
+-- | Maximum number of results to return in a single call.
+listTokens_maxResults :: Lens.Lens' ListTokens (Prelude.Maybe Prelude.Natural)
+listTokens_maxResults = Lens.lens (\ListTokens' {maxResults} -> maxResults) (\s@ListTokens' {} a -> s {maxResults = a} :: ListTokens)
+
+-- | Token for the next set of results.
+listTokens_nextToken :: Lens.Lens' ListTokens (Prelude.Maybe Prelude.Text)
+listTokens_nextToken = Lens.lens (\ListTokens' {nextToken} -> nextToken) (\s@ListTokens' {} a -> s {nextToken = a} :: ListTokens)
+
+-- | Token IDs.
+listTokens_tokenIds :: Lens.Lens' ListTokens (Prelude.Maybe [Prelude.Text])
+listTokens_tokenIds = Lens.lens (\ListTokens' {tokenIds} -> tokenIds) (\s@ListTokens' {} a -> s {tokenIds = a} :: ListTokens) Prelude.. Lens.mapping Lens.coerced
+
+instance Core.AWSRequest ListTokens where
+  type AWSResponse ListTokens = ListTokensResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListTokensResponse'
+            Prelude.<$> (x Data..?> "NextToken")
+            Prelude.<*> (x Data..?> "Tokens" Core..!@ Prelude.mempty)
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable ListTokens where
+  hashWithSalt _salt ListTokens' {..} =
+    _salt
+      `Prelude.hashWithSalt` filters
+      `Prelude.hashWithSalt` maxResults
+      `Prelude.hashWithSalt` nextToken
+      `Prelude.hashWithSalt` tokenIds
+
+instance Prelude.NFData ListTokens where
+  rnf ListTokens' {..} =
+    Prelude.rnf filters
+      `Prelude.seq` Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf tokenIds
+
+instance Data.ToHeaders ListTokens where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.ListTokens" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON ListTokens where
+  toJSON ListTokens' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("Filters" Data..=) Prelude.<$> filters,
+            ("MaxResults" Data..=) Prelude.<$> maxResults,
+            ("NextToken" Data..=) Prelude.<$> nextToken,
+            ("TokenIds" Data..=) Prelude.<$> tokenIds
+          ]
+      )
+
+instance Data.ToPath ListTokens where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery ListTokens where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newListTokensResponse' smart constructor.
+data ListTokensResponse = ListTokensResponse'
+  { -- | Token for the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | Received token details.
+    tokens :: Prelude.Maybe [TokenData],
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListTokensResponse' 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:
+--
+-- 'nextToken', 'listTokensResponse_nextToken' - Token for the next set of results.
+--
+-- 'tokens', 'listTokensResponse_tokens' - Received token details.
+--
+-- 'httpStatus', 'listTokensResponse_httpStatus' - The response's http status code.
+newListTokensResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListTokensResponse
+newListTokensResponse pHttpStatus_ =
+  ListTokensResponse'
+    { nextToken = Prelude.Nothing,
+      tokens = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Token for the next set of results.
+listTokensResponse_nextToken :: Lens.Lens' ListTokensResponse (Prelude.Maybe Prelude.Text)
+listTokensResponse_nextToken = Lens.lens (\ListTokensResponse' {nextToken} -> nextToken) (\s@ListTokensResponse' {} a -> s {nextToken = a} :: ListTokensResponse)
+
+-- | Received token details.
+listTokensResponse_tokens :: Lens.Lens' ListTokensResponse (Prelude.Maybe [TokenData])
+listTokensResponse_tokens = Lens.lens (\ListTokensResponse' {tokens} -> tokens) (\s@ListTokensResponse' {} a -> s {tokens = a} :: ListTokensResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+listTokensResponse_httpStatus :: Lens.Lens' ListTokensResponse Prelude.Int
+listTokensResponse_httpStatus = Lens.lens (\ListTokensResponse' {httpStatus} -> httpStatus) (\s@ListTokensResponse' {} a -> s {httpStatus = a} :: ListTokensResponse)
+
+instance Prelude.NFData ListTokensResponse where
+  rnf ListTokensResponse' {..} =
+    Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf tokens
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/ListUsageForLicenseConfiguration.hs b/gen/Amazonka/LicenseManager/ListUsageForLicenseConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/ListUsageForLicenseConfiguration.hs
@@ -0,0 +1,317 @@
+{-# 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.LicenseManager.ListUsageForLicenseConfiguration
+-- 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 all license usage records for a license configuration, displaying
+-- license consumption details by resource at a selected point in time. Use
+-- this action to audit the current license consumption for any license
+-- inventory and configuration.
+--
+-- This operation returns paginated results.
+module Amazonka.LicenseManager.ListUsageForLicenseConfiguration
+  ( -- * Creating a Request
+    ListUsageForLicenseConfiguration (..),
+    newListUsageForLicenseConfiguration,
+
+    -- * Request Lenses
+    listUsageForLicenseConfiguration_filters,
+    listUsageForLicenseConfiguration_maxResults,
+    listUsageForLicenseConfiguration_nextToken,
+    listUsageForLicenseConfiguration_licenseConfigurationArn,
+
+    -- * Destructuring the Response
+    ListUsageForLicenseConfigurationResponse (..),
+    newListUsageForLicenseConfigurationResponse,
+
+    -- * Response Lenses
+    listUsageForLicenseConfigurationResponse_licenseConfigurationUsageList,
+    listUsageForLicenseConfigurationResponse_nextToken,
+    listUsageForLicenseConfigurationResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newListUsageForLicenseConfiguration' smart constructor.
+data ListUsageForLicenseConfiguration = ListUsageForLicenseConfiguration'
+  { -- | Filters to scope the results. The following filters and logical
+    -- operators are supported:
+    --
+    -- -   @resourceArn@ - The ARN of the license configuration resource.
+    --     Logical operators are @EQUALS@ | @NOT_EQUALS@.
+    --
+    -- -   @resourceType@ - The resource type (@EC2_INSTANCE@ | @EC2_HOST@ |
+    --     @EC2_AMI@ | @SYSTEMS_MANAGER_MANAGED_INSTANCE@). Logical operators
+    --     are @EQUALS@ | @NOT_EQUALS@.
+    --
+    -- -   @resourceAccount@ - The ID of the account that owns the resource.
+    --     Logical operators are @EQUALS@ | @NOT_EQUALS@.
+    filters :: Prelude.Maybe [Filter],
+    -- | Maximum number of results to return in a single call.
+    maxResults :: Prelude.Maybe Prelude.Int,
+    -- | Token for the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | Amazon Resource Name (ARN) of the license configuration.
+    licenseConfigurationArn :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListUsageForLicenseConfiguration' 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:
+--
+-- 'filters', 'listUsageForLicenseConfiguration_filters' - Filters to scope the results. The following filters and logical
+-- operators are supported:
+--
+-- -   @resourceArn@ - The ARN of the license configuration resource.
+--     Logical operators are @EQUALS@ | @NOT_EQUALS@.
+--
+-- -   @resourceType@ - The resource type (@EC2_INSTANCE@ | @EC2_HOST@ |
+--     @EC2_AMI@ | @SYSTEMS_MANAGER_MANAGED_INSTANCE@). Logical operators
+--     are @EQUALS@ | @NOT_EQUALS@.
+--
+-- -   @resourceAccount@ - The ID of the account that owns the resource.
+--     Logical operators are @EQUALS@ | @NOT_EQUALS@.
+--
+-- 'maxResults', 'listUsageForLicenseConfiguration_maxResults' - Maximum number of results to return in a single call.
+--
+-- 'nextToken', 'listUsageForLicenseConfiguration_nextToken' - Token for the next set of results.
+--
+-- 'licenseConfigurationArn', 'listUsageForLicenseConfiguration_licenseConfigurationArn' - Amazon Resource Name (ARN) of the license configuration.
+newListUsageForLicenseConfiguration ::
+  -- | 'licenseConfigurationArn'
+  Prelude.Text ->
+  ListUsageForLicenseConfiguration
+newListUsageForLicenseConfiguration
+  pLicenseConfigurationArn_ =
+    ListUsageForLicenseConfiguration'
+      { filters =
+          Prelude.Nothing,
+        maxResults = Prelude.Nothing,
+        nextToken = Prelude.Nothing,
+        licenseConfigurationArn =
+          pLicenseConfigurationArn_
+      }
+
+-- | Filters to scope the results. The following filters and logical
+-- operators are supported:
+--
+-- -   @resourceArn@ - The ARN of the license configuration resource.
+--     Logical operators are @EQUALS@ | @NOT_EQUALS@.
+--
+-- -   @resourceType@ - The resource type (@EC2_INSTANCE@ | @EC2_HOST@ |
+--     @EC2_AMI@ | @SYSTEMS_MANAGER_MANAGED_INSTANCE@). Logical operators
+--     are @EQUALS@ | @NOT_EQUALS@.
+--
+-- -   @resourceAccount@ - The ID of the account that owns the resource.
+--     Logical operators are @EQUALS@ | @NOT_EQUALS@.
+listUsageForLicenseConfiguration_filters :: Lens.Lens' ListUsageForLicenseConfiguration (Prelude.Maybe [Filter])
+listUsageForLicenseConfiguration_filters = Lens.lens (\ListUsageForLicenseConfiguration' {filters} -> filters) (\s@ListUsageForLicenseConfiguration' {} a -> s {filters = a} :: ListUsageForLicenseConfiguration) Prelude.. Lens.mapping Lens.coerced
+
+-- | Maximum number of results to return in a single call.
+listUsageForLicenseConfiguration_maxResults :: Lens.Lens' ListUsageForLicenseConfiguration (Prelude.Maybe Prelude.Int)
+listUsageForLicenseConfiguration_maxResults = Lens.lens (\ListUsageForLicenseConfiguration' {maxResults} -> maxResults) (\s@ListUsageForLicenseConfiguration' {} a -> s {maxResults = a} :: ListUsageForLicenseConfiguration)
+
+-- | Token for the next set of results.
+listUsageForLicenseConfiguration_nextToken :: Lens.Lens' ListUsageForLicenseConfiguration (Prelude.Maybe Prelude.Text)
+listUsageForLicenseConfiguration_nextToken = Lens.lens (\ListUsageForLicenseConfiguration' {nextToken} -> nextToken) (\s@ListUsageForLicenseConfiguration' {} a -> s {nextToken = a} :: ListUsageForLicenseConfiguration)
+
+-- | Amazon Resource Name (ARN) of the license configuration.
+listUsageForLicenseConfiguration_licenseConfigurationArn :: Lens.Lens' ListUsageForLicenseConfiguration Prelude.Text
+listUsageForLicenseConfiguration_licenseConfigurationArn = Lens.lens (\ListUsageForLicenseConfiguration' {licenseConfigurationArn} -> licenseConfigurationArn) (\s@ListUsageForLicenseConfiguration' {} a -> s {licenseConfigurationArn = a} :: ListUsageForLicenseConfiguration)
+
+instance
+  Core.AWSPager
+    ListUsageForLicenseConfiguration
+  where
+  page rq rs
+    | Core.stop
+        ( rs
+            Lens.^? listUsageForLicenseConfigurationResponse_nextToken
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Core.stop
+        ( rs
+            Lens.^? listUsageForLicenseConfigurationResponse_licenseConfigurationUsageList
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Prelude.otherwise =
+        Prelude.Just
+          Prelude.$ rq
+          Prelude.& listUsageForLicenseConfiguration_nextToken
+          Lens..~ rs
+          Lens.^? listUsageForLicenseConfigurationResponse_nextToken
+          Prelude.. Lens._Just
+
+instance
+  Core.AWSRequest
+    ListUsageForLicenseConfiguration
+  where
+  type
+    AWSResponse ListUsageForLicenseConfiguration =
+      ListUsageForLicenseConfigurationResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListUsageForLicenseConfigurationResponse'
+            Prelude.<$> ( x
+                            Data..?> "LicenseConfigurationUsageList"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "NextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    ListUsageForLicenseConfiguration
+  where
+  hashWithSalt
+    _salt
+    ListUsageForLicenseConfiguration' {..} =
+      _salt
+        `Prelude.hashWithSalt` filters
+        `Prelude.hashWithSalt` maxResults
+        `Prelude.hashWithSalt` nextToken
+        `Prelude.hashWithSalt` licenseConfigurationArn
+
+instance
+  Prelude.NFData
+    ListUsageForLicenseConfiguration
+  where
+  rnf ListUsageForLicenseConfiguration' {..} =
+    Prelude.rnf filters
+      `Prelude.seq` Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf licenseConfigurationArn
+
+instance
+  Data.ToHeaders
+    ListUsageForLicenseConfiguration
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.ListUsageForLicenseConfiguration" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON ListUsageForLicenseConfiguration where
+  toJSON ListUsageForLicenseConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("Filters" Data..=) Prelude.<$> filters,
+            ("MaxResults" Data..=) Prelude.<$> maxResults,
+            ("NextToken" Data..=) Prelude.<$> nextToken,
+            Prelude.Just
+              ( "LicenseConfigurationArn"
+                  Data..= licenseConfigurationArn
+              )
+          ]
+      )
+
+instance Data.ToPath ListUsageForLicenseConfiguration where
+  toPath = Prelude.const "/"
+
+instance
+  Data.ToQuery
+    ListUsageForLicenseConfiguration
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newListUsageForLicenseConfigurationResponse' smart constructor.
+data ListUsageForLicenseConfigurationResponse = ListUsageForLicenseConfigurationResponse'
+  { -- | Information about the license configurations.
+    licenseConfigurationUsageList :: Prelude.Maybe [LicenseConfigurationUsage],
+    -- | Token for the next set of results.
+    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 'ListUsageForLicenseConfigurationResponse' 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:
+--
+-- 'licenseConfigurationUsageList', 'listUsageForLicenseConfigurationResponse_licenseConfigurationUsageList' - Information about the license configurations.
+--
+-- 'nextToken', 'listUsageForLicenseConfigurationResponse_nextToken' - Token for the next set of results.
+--
+-- 'httpStatus', 'listUsageForLicenseConfigurationResponse_httpStatus' - The response's http status code.
+newListUsageForLicenseConfigurationResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListUsageForLicenseConfigurationResponse
+newListUsageForLicenseConfigurationResponse
+  pHttpStatus_ =
+    ListUsageForLicenseConfigurationResponse'
+      { licenseConfigurationUsageList =
+          Prelude.Nothing,
+        nextToken = Prelude.Nothing,
+        httpStatus = pHttpStatus_
+      }
+
+-- | Information about the license configurations.
+listUsageForLicenseConfigurationResponse_licenseConfigurationUsageList :: Lens.Lens' ListUsageForLicenseConfigurationResponse (Prelude.Maybe [LicenseConfigurationUsage])
+listUsageForLicenseConfigurationResponse_licenseConfigurationUsageList = Lens.lens (\ListUsageForLicenseConfigurationResponse' {licenseConfigurationUsageList} -> licenseConfigurationUsageList) (\s@ListUsageForLicenseConfigurationResponse' {} a -> s {licenseConfigurationUsageList = a} :: ListUsageForLicenseConfigurationResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | Token for the next set of results.
+listUsageForLicenseConfigurationResponse_nextToken :: Lens.Lens' ListUsageForLicenseConfigurationResponse (Prelude.Maybe Prelude.Text)
+listUsageForLicenseConfigurationResponse_nextToken = Lens.lens (\ListUsageForLicenseConfigurationResponse' {nextToken} -> nextToken) (\s@ListUsageForLicenseConfigurationResponse' {} a -> s {nextToken = a} :: ListUsageForLicenseConfigurationResponse)
+
+-- | The response's http status code.
+listUsageForLicenseConfigurationResponse_httpStatus :: Lens.Lens' ListUsageForLicenseConfigurationResponse Prelude.Int
+listUsageForLicenseConfigurationResponse_httpStatus = Lens.lens (\ListUsageForLicenseConfigurationResponse' {httpStatus} -> httpStatus) (\s@ListUsageForLicenseConfigurationResponse' {} a -> s {httpStatus = a} :: ListUsageForLicenseConfigurationResponse)
+
+instance
+  Prelude.NFData
+    ListUsageForLicenseConfigurationResponse
+  where
+  rnf ListUsageForLicenseConfigurationResponse' {..} =
+    Prelude.rnf licenseConfigurationUsageList
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/RejectGrant.hs b/gen/Amazonka/LicenseManager/RejectGrant.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/RejectGrant.hs
@@ -0,0 +1,189 @@
+{-# 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.LicenseManager.RejectGrant
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Rejects the specified grant.
+module Amazonka.LicenseManager.RejectGrant
+  ( -- * Creating a Request
+    RejectGrant (..),
+    newRejectGrant,
+
+    -- * Request Lenses
+    rejectGrant_grantArn,
+
+    -- * Destructuring the Response
+    RejectGrantResponse (..),
+    newRejectGrantResponse,
+
+    -- * Response Lenses
+    rejectGrantResponse_grantArn,
+    rejectGrantResponse_status,
+    rejectGrantResponse_version,
+    rejectGrantResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newRejectGrant' smart constructor.
+data RejectGrant = RejectGrant'
+  { -- | Amazon Resource Name (ARN) of the grant.
+    grantArn :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'RejectGrant' 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:
+--
+-- 'grantArn', 'rejectGrant_grantArn' - Amazon Resource Name (ARN) of the grant.
+newRejectGrant ::
+  -- | 'grantArn'
+  Prelude.Text ->
+  RejectGrant
+newRejectGrant pGrantArn_ =
+  RejectGrant' {grantArn = pGrantArn_}
+
+-- | Amazon Resource Name (ARN) of the grant.
+rejectGrant_grantArn :: Lens.Lens' RejectGrant Prelude.Text
+rejectGrant_grantArn = Lens.lens (\RejectGrant' {grantArn} -> grantArn) (\s@RejectGrant' {} a -> s {grantArn = a} :: RejectGrant)
+
+instance Core.AWSRequest RejectGrant where
+  type AWSResponse RejectGrant = RejectGrantResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          RejectGrantResponse'
+            Prelude.<$> (x Data..?> "GrantArn")
+            Prelude.<*> (x Data..?> "Status")
+            Prelude.<*> (x Data..?> "Version")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable RejectGrant where
+  hashWithSalt _salt RejectGrant' {..} =
+    _salt `Prelude.hashWithSalt` grantArn
+
+instance Prelude.NFData RejectGrant where
+  rnf RejectGrant' {..} = Prelude.rnf grantArn
+
+instance Data.ToHeaders RejectGrant where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.RejectGrant" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON RejectGrant where
+  toJSON RejectGrant' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [Prelude.Just ("GrantArn" Data..= grantArn)]
+      )
+
+instance Data.ToPath RejectGrant where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery RejectGrant where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newRejectGrantResponse' smart constructor.
+data RejectGrantResponse = RejectGrantResponse'
+  { -- | Grant ARN.
+    grantArn :: Prelude.Maybe Prelude.Text,
+    -- | Grant status.
+    status :: Prelude.Maybe GrantStatus,
+    -- | Grant version.
+    version :: 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 'RejectGrantResponse' 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:
+--
+-- 'grantArn', 'rejectGrantResponse_grantArn' - Grant ARN.
+--
+-- 'status', 'rejectGrantResponse_status' - Grant status.
+--
+-- 'version', 'rejectGrantResponse_version' - Grant version.
+--
+-- 'httpStatus', 'rejectGrantResponse_httpStatus' - The response's http status code.
+newRejectGrantResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  RejectGrantResponse
+newRejectGrantResponse pHttpStatus_ =
+  RejectGrantResponse'
+    { grantArn = Prelude.Nothing,
+      status = Prelude.Nothing,
+      version = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Grant ARN.
+rejectGrantResponse_grantArn :: Lens.Lens' RejectGrantResponse (Prelude.Maybe Prelude.Text)
+rejectGrantResponse_grantArn = Lens.lens (\RejectGrantResponse' {grantArn} -> grantArn) (\s@RejectGrantResponse' {} a -> s {grantArn = a} :: RejectGrantResponse)
+
+-- | Grant status.
+rejectGrantResponse_status :: Lens.Lens' RejectGrantResponse (Prelude.Maybe GrantStatus)
+rejectGrantResponse_status = Lens.lens (\RejectGrantResponse' {status} -> status) (\s@RejectGrantResponse' {} a -> s {status = a} :: RejectGrantResponse)
+
+-- | Grant version.
+rejectGrantResponse_version :: Lens.Lens' RejectGrantResponse (Prelude.Maybe Prelude.Text)
+rejectGrantResponse_version = Lens.lens (\RejectGrantResponse' {version} -> version) (\s@RejectGrantResponse' {} a -> s {version = a} :: RejectGrantResponse)
+
+-- | The response's http status code.
+rejectGrantResponse_httpStatus :: Lens.Lens' RejectGrantResponse Prelude.Int
+rejectGrantResponse_httpStatus = Lens.lens (\RejectGrantResponse' {httpStatus} -> httpStatus) (\s@RejectGrantResponse' {} a -> s {httpStatus = a} :: RejectGrantResponse)
+
+instance Prelude.NFData RejectGrantResponse where
+  rnf RejectGrantResponse' {..} =
+    Prelude.rnf grantArn
+      `Prelude.seq` Prelude.rnf status
+      `Prelude.seq` Prelude.rnf version
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/TagResource.hs b/gen/Amazonka/LicenseManager/TagResource.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/TagResource.hs
@@ -0,0 +1,168 @@
+{-# 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.LicenseManager.TagResource
+-- 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 the specified tags to the specified license configuration.
+module Amazonka.LicenseManager.TagResource
+  ( -- * Creating a Request
+    TagResource (..),
+    newTagResource,
+
+    -- * Request Lenses
+    tagResource_resourceArn,
+    tagResource_tags,
+
+    -- * Destructuring the Response
+    TagResourceResponse (..),
+    newTagResourceResponse,
+
+    -- * Response Lenses
+    tagResourceResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newTagResource' smart constructor.
+data TagResource = TagResource'
+  { -- | Amazon Resource Name (ARN) of the license configuration.
+    resourceArn :: Prelude.Text,
+    -- | One or more tags.
+    tags :: [Tag]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'TagResource' 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', 'tagResource_resourceArn' - Amazon Resource Name (ARN) of the license configuration.
+--
+-- 'tags', 'tagResource_tags' - One or more tags.
+newTagResource ::
+  -- | 'resourceArn'
+  Prelude.Text ->
+  TagResource
+newTagResource pResourceArn_ =
+  TagResource'
+    { resourceArn = pResourceArn_,
+      tags = Prelude.mempty
+    }
+
+-- | Amazon Resource Name (ARN) of the license configuration.
+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text
+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)
+
+-- | One or more tags.
+tagResource_tags :: Lens.Lens' TagResource [Tag]
+tagResource_tags = Lens.lens (\TagResource' {tags} -> tags) (\s@TagResource' {} a -> s {tags = a} :: TagResource) Prelude.. Lens.coerced
+
+instance Core.AWSRequest TagResource where
+  type AWSResponse TagResource = TagResourceResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveEmpty
+      ( \s h x ->
+          TagResourceResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable TagResource where
+  hashWithSalt _salt TagResource' {..} =
+    _salt
+      `Prelude.hashWithSalt` resourceArn
+      `Prelude.hashWithSalt` tags
+
+instance Prelude.NFData TagResource where
+  rnf TagResource' {..} =
+    Prelude.rnf resourceArn
+      `Prelude.seq` Prelude.rnf tags
+
+instance Data.ToHeaders TagResource where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.TagResource" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON TagResource where
+  toJSON TagResource' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just ("ResourceArn" Data..= resourceArn),
+            Prelude.Just ("Tags" Data..= tags)
+          ]
+      )
+
+instance Data.ToPath TagResource where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery TagResource where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newTagResourceResponse' smart constructor.
+data TagResourceResponse = TagResourceResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'TagResourceResponse' 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', 'tagResourceResponse_httpStatus' - The response's http status code.
+newTagResourceResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  TagResourceResponse
+newTagResourceResponse pHttpStatus_ =
+  TagResourceResponse' {httpStatus = pHttpStatus_}
+
+-- | The response's http status code.
+tagResourceResponse_httpStatus :: Lens.Lens' TagResourceResponse Prelude.Int
+tagResourceResponse_httpStatus = Lens.lens (\TagResourceResponse' {httpStatus} -> httpStatus) (\s@TagResourceResponse' {} a -> s {httpStatus = a} :: TagResourceResponse)
+
+instance Prelude.NFData TagResourceResponse where
+  rnf TagResourceResponse' {..} = Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/Types.hs b/gen/Amazonka/LicenseManager/Types.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types.hs
@@ -0,0 +1,664 @@
+{-# 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.LicenseManager.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.LicenseManager.Types
+  ( -- * Service Configuration
+    defaultService,
+
+    -- * Errors
+    _AccessDeniedException,
+    _AuthorizationException,
+    _ConflictException,
+    _EntitlementNotAllowedException,
+    _FailedDependencyException,
+    _FilterLimitExceededException,
+    _InvalidParameterValueException,
+    _InvalidResourceStateException,
+    _LicenseUsageException,
+    _NoEntitlementsAllowedException,
+    _RateLimitExceededException,
+    _RedirectException,
+    _ResourceLimitExceededException,
+    _ResourceNotFoundException,
+    _ServerInternalException,
+    _UnsupportedDigitalSignatureMethodException,
+    _ValidationException,
+
+    -- * AllowedOperation
+    AllowedOperation (..),
+
+    -- * CheckoutType
+    CheckoutType (..),
+
+    -- * DigitalSignatureMethod
+    DigitalSignatureMethod (..),
+
+    -- * EntitlementDataUnit
+    EntitlementDataUnit (..),
+
+    -- * EntitlementUnit
+    EntitlementUnit (..),
+
+    -- * GrantStatus
+    GrantStatus (..),
+
+    -- * InventoryFilterCondition
+    InventoryFilterCondition (..),
+
+    -- * LicenseConfigurationStatus
+    LicenseConfigurationStatus (..),
+
+    -- * LicenseConversionTaskStatus
+    LicenseConversionTaskStatus (..),
+
+    -- * LicenseCountingType
+    LicenseCountingType (..),
+
+    -- * LicenseDeletionStatus
+    LicenseDeletionStatus (..),
+
+    -- * LicenseStatus
+    LicenseStatus (..),
+
+    -- * ReceivedStatus
+    ReceivedStatus (..),
+
+    -- * RenewType
+    RenewType (..),
+
+    -- * ReportFrequencyType
+    ReportFrequencyType (..),
+
+    -- * ReportType
+    ReportType (..),
+
+    -- * ResourceType
+    ResourceType (..),
+
+    -- * TokenType
+    TokenType (..),
+
+    -- * AutomatedDiscoveryInformation
+    AutomatedDiscoveryInformation (..),
+    newAutomatedDiscoveryInformation,
+    automatedDiscoveryInformation_lastRunTime,
+
+    -- * BorrowConfiguration
+    BorrowConfiguration (..),
+    newBorrowConfiguration,
+    borrowConfiguration_allowEarlyCheckIn,
+    borrowConfiguration_maxTimeToLiveInMinutes,
+
+    -- * ConsumedLicenseSummary
+    ConsumedLicenseSummary (..),
+    newConsumedLicenseSummary,
+    consumedLicenseSummary_consumedLicenses,
+    consumedLicenseSummary_resourceType,
+
+    -- * ConsumptionConfiguration
+    ConsumptionConfiguration (..),
+    newConsumptionConfiguration,
+    consumptionConfiguration_borrowConfiguration,
+    consumptionConfiguration_provisionalConfiguration,
+    consumptionConfiguration_renewType,
+
+    -- * DatetimeRange
+    DatetimeRange (..),
+    newDatetimeRange,
+    datetimeRange_end,
+    datetimeRange_begin,
+
+    -- * Entitlement
+    Entitlement (..),
+    newEntitlement,
+    entitlement_allowCheckIn,
+    entitlement_maxCount,
+    entitlement_overage,
+    entitlement_value,
+    entitlement_name,
+    entitlement_unit,
+
+    -- * EntitlementData
+    EntitlementData (..),
+    newEntitlementData,
+    entitlementData_value,
+    entitlementData_name,
+    entitlementData_unit,
+
+    -- * EntitlementUsage
+    EntitlementUsage (..),
+    newEntitlementUsage,
+    entitlementUsage_maxCount,
+    entitlementUsage_name,
+    entitlementUsage_consumedValue,
+    entitlementUsage_unit,
+
+    -- * Filter
+    Filter (..),
+    newFilter,
+    filter_name,
+    filter_values,
+
+    -- * Grant
+    Grant (..),
+    newGrant,
+    grant_statusReason,
+    grant_grantArn,
+    grant_grantName,
+    grant_parentArn,
+    grant_licenseArn,
+    grant_granteePrincipalArn,
+    grant_homeRegion,
+    grant_grantStatus,
+    grant_version,
+    grant_grantedOperations,
+
+    -- * GrantedLicense
+    GrantedLicense (..),
+    newGrantedLicense,
+    grantedLicense_beneficiary,
+    grantedLicense_consumptionConfiguration,
+    grantedLicense_createTime,
+    grantedLicense_entitlements,
+    grantedLicense_homeRegion,
+    grantedLicense_issuer,
+    grantedLicense_licenseArn,
+    grantedLicense_licenseMetadata,
+    grantedLicense_licenseName,
+    grantedLicense_productName,
+    grantedLicense_productSKU,
+    grantedLicense_receivedMetadata,
+    grantedLicense_status,
+    grantedLicense_validity,
+    grantedLicense_version,
+
+    -- * InventoryFilter
+    InventoryFilter (..),
+    newInventoryFilter,
+    inventoryFilter_value,
+    inventoryFilter_name,
+    inventoryFilter_condition,
+
+    -- * Issuer
+    Issuer (..),
+    newIssuer,
+    issuer_signKey,
+    issuer_name,
+
+    -- * IssuerDetails
+    IssuerDetails (..),
+    newIssuerDetails,
+    issuerDetails_keyFingerprint,
+    issuerDetails_name,
+    issuerDetails_signKey,
+
+    -- * License
+    License (..),
+    newLicense,
+    license_beneficiary,
+    license_consumptionConfiguration,
+    license_createTime,
+    license_entitlements,
+    license_homeRegion,
+    license_issuer,
+    license_licenseArn,
+    license_licenseMetadata,
+    license_licenseName,
+    license_productName,
+    license_productSKU,
+    license_status,
+    license_validity,
+    license_version,
+
+    -- * LicenseConfiguration
+    LicenseConfiguration (..),
+    newLicenseConfiguration,
+    licenseConfiguration_automatedDiscoveryInformation,
+    licenseConfiguration_consumedLicenseSummaryList,
+    licenseConfiguration_consumedLicenses,
+    licenseConfiguration_description,
+    licenseConfiguration_disassociateWhenNotFound,
+    licenseConfiguration_licenseConfigurationArn,
+    licenseConfiguration_licenseConfigurationId,
+    licenseConfiguration_licenseCount,
+    licenseConfiguration_licenseCountHardLimit,
+    licenseConfiguration_licenseCountingType,
+    licenseConfiguration_licenseRules,
+    licenseConfiguration_managedResourceSummaryList,
+    licenseConfiguration_name,
+    licenseConfiguration_ownerAccountId,
+    licenseConfiguration_productInformationList,
+    licenseConfiguration_status,
+
+    -- * LicenseConfigurationAssociation
+    LicenseConfigurationAssociation (..),
+    newLicenseConfigurationAssociation,
+    licenseConfigurationAssociation_amiAssociationScope,
+    licenseConfigurationAssociation_associationTime,
+    licenseConfigurationAssociation_resourceArn,
+    licenseConfigurationAssociation_resourceOwnerId,
+    licenseConfigurationAssociation_resourceType,
+
+    -- * LicenseConfigurationUsage
+    LicenseConfigurationUsage (..),
+    newLicenseConfigurationUsage,
+    licenseConfigurationUsage_associationTime,
+    licenseConfigurationUsage_consumedLicenses,
+    licenseConfigurationUsage_resourceArn,
+    licenseConfigurationUsage_resourceOwnerId,
+    licenseConfigurationUsage_resourceStatus,
+    licenseConfigurationUsage_resourceType,
+
+    -- * LicenseConversionContext
+    LicenseConversionContext (..),
+    newLicenseConversionContext,
+    licenseConversionContext_usageOperation,
+
+    -- * LicenseConversionTask
+    LicenseConversionTask (..),
+    newLicenseConversionTask,
+    licenseConversionTask_destinationLicenseContext,
+    licenseConversionTask_endTime,
+    licenseConversionTask_licenseConversionTaskId,
+    licenseConversionTask_licenseConversionTime,
+    licenseConversionTask_resourceArn,
+    licenseConversionTask_sourceLicenseContext,
+    licenseConversionTask_startTime,
+    licenseConversionTask_status,
+    licenseConversionTask_statusMessage,
+
+    -- * LicenseOperationFailure
+    LicenseOperationFailure (..),
+    newLicenseOperationFailure,
+    licenseOperationFailure_errorMessage,
+    licenseOperationFailure_failureTime,
+    licenseOperationFailure_metadataList,
+    licenseOperationFailure_operationName,
+    licenseOperationFailure_operationRequestedBy,
+    licenseOperationFailure_resourceArn,
+    licenseOperationFailure_resourceOwnerId,
+    licenseOperationFailure_resourceType,
+
+    -- * LicenseSpecification
+    LicenseSpecification (..),
+    newLicenseSpecification,
+    licenseSpecification_amiAssociationScope,
+    licenseSpecification_licenseConfigurationArn,
+
+    -- * LicenseUsage
+    LicenseUsage (..),
+    newLicenseUsage,
+    licenseUsage_entitlementUsages,
+
+    -- * ManagedResourceSummary
+    ManagedResourceSummary (..),
+    newManagedResourceSummary,
+    managedResourceSummary_associationCount,
+    managedResourceSummary_resourceType,
+
+    -- * Metadata
+    Metadata (..),
+    newMetadata,
+    metadata_name,
+    metadata_value,
+
+    -- * OrganizationConfiguration
+    OrganizationConfiguration (..),
+    newOrganizationConfiguration,
+    organizationConfiguration_enableIntegration,
+
+    -- * ProductInformation
+    ProductInformation (..),
+    newProductInformation,
+    productInformation_resourceType,
+    productInformation_productInformationFilterList,
+
+    -- * ProductInformationFilter
+    ProductInformationFilter (..),
+    newProductInformationFilter,
+    productInformationFilter_productInformationFilterValue,
+    productInformationFilter_productInformationFilterName,
+    productInformationFilter_productInformationFilterComparator,
+
+    -- * ProvisionalConfiguration
+    ProvisionalConfiguration (..),
+    newProvisionalConfiguration,
+    provisionalConfiguration_maxTimeToLiveInMinutes,
+
+    -- * ReceivedMetadata
+    ReceivedMetadata (..),
+    newReceivedMetadata,
+    receivedMetadata_allowedOperations,
+    receivedMetadata_receivedStatus,
+    receivedMetadata_receivedStatusReason,
+
+    -- * ReportContext
+    ReportContext (..),
+    newReportContext,
+    reportContext_licenseConfigurationArns,
+
+    -- * ReportFrequency
+    ReportFrequency (..),
+    newReportFrequency,
+    reportFrequency_period,
+    reportFrequency_value,
+
+    -- * ReportGenerator
+    ReportGenerator (..),
+    newReportGenerator,
+    reportGenerator_createTime,
+    reportGenerator_description,
+    reportGenerator_lastReportGenerationTime,
+    reportGenerator_lastRunFailureReason,
+    reportGenerator_lastRunStatus,
+    reportGenerator_licenseManagerReportGeneratorArn,
+    reportGenerator_reportContext,
+    reportGenerator_reportCreatorAccount,
+    reportGenerator_reportFrequency,
+    reportGenerator_reportGeneratorName,
+    reportGenerator_reportType,
+    reportGenerator_s3Location,
+    reportGenerator_tags,
+
+    -- * ResourceInventory
+    ResourceInventory (..),
+    newResourceInventory,
+    resourceInventory_platform,
+    resourceInventory_platformVersion,
+    resourceInventory_resourceArn,
+    resourceInventory_resourceId,
+    resourceInventory_resourceOwningAccountId,
+    resourceInventory_resourceType,
+
+    -- * S3Location
+    S3Location (..),
+    newS3Location,
+    s3Location_bucket,
+    s3Location_keyPrefix,
+
+    -- * Tag
+    Tag (..),
+    newTag,
+    tag_key,
+    tag_value,
+
+    -- * TokenData
+    TokenData (..),
+    newTokenData,
+    tokenData_expirationTime,
+    tokenData_licenseArn,
+    tokenData_roleArns,
+    tokenData_status,
+    tokenData_tokenId,
+    tokenData_tokenProperties,
+    tokenData_tokenType,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import Amazonka.LicenseManager.Types.AllowedOperation
+import Amazonka.LicenseManager.Types.AutomatedDiscoveryInformation
+import Amazonka.LicenseManager.Types.BorrowConfiguration
+import Amazonka.LicenseManager.Types.CheckoutType
+import Amazonka.LicenseManager.Types.ConsumedLicenseSummary
+import Amazonka.LicenseManager.Types.ConsumptionConfiguration
+import Amazonka.LicenseManager.Types.DatetimeRange
+import Amazonka.LicenseManager.Types.DigitalSignatureMethod
+import Amazonka.LicenseManager.Types.Entitlement
+import Amazonka.LicenseManager.Types.EntitlementData
+import Amazonka.LicenseManager.Types.EntitlementDataUnit
+import Amazonka.LicenseManager.Types.EntitlementUnit
+import Amazonka.LicenseManager.Types.EntitlementUsage
+import Amazonka.LicenseManager.Types.Filter
+import Amazonka.LicenseManager.Types.Grant
+import Amazonka.LicenseManager.Types.GrantStatus
+import Amazonka.LicenseManager.Types.GrantedLicense
+import Amazonka.LicenseManager.Types.InventoryFilter
+import Amazonka.LicenseManager.Types.InventoryFilterCondition
+import Amazonka.LicenseManager.Types.Issuer
+import Amazonka.LicenseManager.Types.IssuerDetails
+import Amazonka.LicenseManager.Types.License
+import Amazonka.LicenseManager.Types.LicenseConfiguration
+import Amazonka.LicenseManager.Types.LicenseConfigurationAssociation
+import Amazonka.LicenseManager.Types.LicenseConfigurationStatus
+import Amazonka.LicenseManager.Types.LicenseConfigurationUsage
+import Amazonka.LicenseManager.Types.LicenseConversionContext
+import Amazonka.LicenseManager.Types.LicenseConversionTask
+import Amazonka.LicenseManager.Types.LicenseConversionTaskStatus
+import Amazonka.LicenseManager.Types.LicenseCountingType
+import Amazonka.LicenseManager.Types.LicenseDeletionStatus
+import Amazonka.LicenseManager.Types.LicenseOperationFailure
+import Amazonka.LicenseManager.Types.LicenseSpecification
+import Amazonka.LicenseManager.Types.LicenseStatus
+import Amazonka.LicenseManager.Types.LicenseUsage
+import Amazonka.LicenseManager.Types.ManagedResourceSummary
+import Amazonka.LicenseManager.Types.Metadata
+import Amazonka.LicenseManager.Types.OrganizationConfiguration
+import Amazonka.LicenseManager.Types.ProductInformation
+import Amazonka.LicenseManager.Types.ProductInformationFilter
+import Amazonka.LicenseManager.Types.ProvisionalConfiguration
+import Amazonka.LicenseManager.Types.ReceivedMetadata
+import Amazonka.LicenseManager.Types.ReceivedStatus
+import Amazonka.LicenseManager.Types.RenewType
+import Amazonka.LicenseManager.Types.ReportContext
+import Amazonka.LicenseManager.Types.ReportFrequency
+import Amazonka.LicenseManager.Types.ReportFrequencyType
+import Amazonka.LicenseManager.Types.ReportGenerator
+import Amazonka.LicenseManager.Types.ReportType
+import Amazonka.LicenseManager.Types.ResourceInventory
+import Amazonka.LicenseManager.Types.ResourceType
+import Amazonka.LicenseManager.Types.S3Location
+import Amazonka.LicenseManager.Types.Tag
+import Amazonka.LicenseManager.Types.TokenData
+import Amazonka.LicenseManager.Types.TokenType
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Sign.V4 as Sign
+
+-- | API version @2018-08-01@ of the Amazon License Manager SDK configuration.
+defaultService :: Core.Service
+defaultService =
+  Core.Service
+    { Core.abbrev = "LicenseManager",
+      Core.signer = Sign.v4,
+      Core.endpointPrefix = "license-manager",
+      Core.signingName = "license-manager",
+      Core.version = "2018-08-01",
+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,
+      Core.endpoint = Core.defaultEndpoint defaultService,
+      Core.timeout = Prelude.Just 70,
+      Core.check = Core.statusSuccess,
+      Core.error = Core.parseJSONError "LicenseManager",
+      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
+
+-- | Access to resource denied.
+_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_AccessDeniedException =
+  Core._MatchServiceError
+    defaultService
+    "AccessDeniedException"
+
+-- | The Amazon Web Services user account does not have permission to perform
+-- the action. Check the IAM policy associated with this account.
+_AuthorizationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_AuthorizationException =
+  Core._MatchServiceError
+    defaultService
+    "AuthorizationException"
+
+-- | There was a conflict processing the request. Try your request again.
+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ConflictException =
+  Core._MatchServiceError
+    defaultService
+    "ConflictException"
+
+-- | The entitlement is not allowed.
+_EntitlementNotAllowedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_EntitlementNotAllowedException =
+  Core._MatchServiceError
+    defaultService
+    "EntitlementNotAllowedException"
+
+-- | A dependency required to run the API is missing.
+_FailedDependencyException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_FailedDependencyException =
+  Core._MatchServiceError
+    defaultService
+    "FailedDependencyException"
+
+-- | The request uses too many filters or too many filter values.
+_FilterLimitExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_FilterLimitExceededException =
+  Core._MatchServiceError
+    defaultService
+    "FilterLimitExceededException"
+
+-- | One or more parameter values are not valid.
+_InvalidParameterValueException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidParameterValueException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidParameterValueException"
+
+-- | License Manager cannot allocate a license to a resource because of its
+-- state.
+--
+-- For example, you cannot allocate a license to an instance in the process
+-- of shutting down.
+_InvalidResourceStateException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidResourceStateException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidResourceStateException"
+
+-- | You do not have enough licenses available to support a new resource
+-- launch.
+_LicenseUsageException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_LicenseUsageException =
+  Core._MatchServiceError
+    defaultService
+    "LicenseUsageException"
+
+-- | There are no entitlements found for this license, or the entitlement
+-- maximum count is reached.
+_NoEntitlementsAllowedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_NoEntitlementsAllowedException =
+  Core._MatchServiceError
+    defaultService
+    "NoEntitlementsAllowedException"
+
+-- | Too many requests have been submitted. Try again after a brief wait.
+_RateLimitExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_RateLimitExceededException =
+  Core._MatchServiceError
+    defaultService
+    "RateLimitExceededException"
+
+-- | This is not the correct Region for the resource. Try again.
+_RedirectException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_RedirectException =
+  Core._MatchServiceError
+    defaultService
+    "RedirectException"
+
+-- | Your resource limits have been exceeded.
+_ResourceLimitExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ResourceLimitExceededException =
+  Core._MatchServiceError
+    defaultService
+    "ResourceLimitExceededException"
+
+-- | The resource cannot be found.
+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ResourceNotFoundException =
+  Core._MatchServiceError
+    defaultService
+    "ResourceNotFoundException"
+
+-- | The server experienced an internal error. Try again.
+_ServerInternalException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ServerInternalException =
+  Core._MatchServiceError
+    defaultService
+    "ServerInternalException"
+
+-- | The digital signature method is unsupported. Try your request again.
+_UnsupportedDigitalSignatureMethodException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_UnsupportedDigitalSignatureMethodException =
+  Core._MatchServiceError
+    defaultService
+    "UnsupportedDigitalSignatureMethodException"
+
+-- | The provided input is not valid. Try your request again.
+_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ValidationException =
+  Core._MatchServiceError
+    defaultService
+    "ValidationException"
diff --git a/gen/Amazonka/LicenseManager/Types/AllowedOperation.hs b/gen/Amazonka/LicenseManager/Types/AllowedOperation.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/AllowedOperation.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.LicenseManager.Types.AllowedOperation
+-- 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.LicenseManager.Types.AllowedOperation
+  ( AllowedOperation
+      ( ..,
+        AllowedOperation_CheckInLicense,
+        AllowedOperation_CheckoutBorrowLicense,
+        AllowedOperation_CheckoutLicense,
+        AllowedOperation_CreateGrant,
+        AllowedOperation_CreateToken,
+        AllowedOperation_ExtendConsumptionLicense,
+        AllowedOperation_ListPurchasedLicenses
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype AllowedOperation = AllowedOperation'
+  { fromAllowedOperation ::
+      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 AllowedOperation_CheckInLicense :: AllowedOperation
+pattern AllowedOperation_CheckInLicense = AllowedOperation' "CheckInLicense"
+
+pattern AllowedOperation_CheckoutBorrowLicense :: AllowedOperation
+pattern AllowedOperation_CheckoutBorrowLicense = AllowedOperation' "CheckoutBorrowLicense"
+
+pattern AllowedOperation_CheckoutLicense :: AllowedOperation
+pattern AllowedOperation_CheckoutLicense = AllowedOperation' "CheckoutLicense"
+
+pattern AllowedOperation_CreateGrant :: AllowedOperation
+pattern AllowedOperation_CreateGrant = AllowedOperation' "CreateGrant"
+
+pattern AllowedOperation_CreateToken :: AllowedOperation
+pattern AllowedOperation_CreateToken = AllowedOperation' "CreateToken"
+
+pattern AllowedOperation_ExtendConsumptionLicense :: AllowedOperation
+pattern AllowedOperation_ExtendConsumptionLicense = AllowedOperation' "ExtendConsumptionLicense"
+
+pattern AllowedOperation_ListPurchasedLicenses :: AllowedOperation
+pattern AllowedOperation_ListPurchasedLicenses = AllowedOperation' "ListPurchasedLicenses"
+
+{-# COMPLETE
+  AllowedOperation_CheckInLicense,
+  AllowedOperation_CheckoutBorrowLicense,
+  AllowedOperation_CheckoutLicense,
+  AllowedOperation_CreateGrant,
+  AllowedOperation_CreateToken,
+  AllowedOperation_ExtendConsumptionLicense,
+  AllowedOperation_ListPurchasedLicenses,
+  AllowedOperation'
+  #-}
diff --git a/gen/Amazonka/LicenseManager/Types/AutomatedDiscoveryInformation.hs b/gen/Amazonka/LicenseManager/Types/AutomatedDiscoveryInformation.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/AutomatedDiscoveryInformation.hs
@@ -0,0 +1,75 @@
+{-# 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.LicenseManager.Types.AutomatedDiscoveryInformation
+-- 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.LicenseManager.Types.AutomatedDiscoveryInformation 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
+
+-- | Describes automated discovery.
+--
+-- /See:/ 'newAutomatedDiscoveryInformation' smart constructor.
+data AutomatedDiscoveryInformation = AutomatedDiscoveryInformation'
+  { -- | Time that automated discovery last ran.
+    lastRunTime :: Prelude.Maybe Data.POSIX
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'AutomatedDiscoveryInformation' 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:
+--
+-- 'lastRunTime', 'automatedDiscoveryInformation_lastRunTime' - Time that automated discovery last ran.
+newAutomatedDiscoveryInformation ::
+  AutomatedDiscoveryInformation
+newAutomatedDiscoveryInformation =
+  AutomatedDiscoveryInformation'
+    { lastRunTime =
+        Prelude.Nothing
+    }
+
+-- | Time that automated discovery last ran.
+automatedDiscoveryInformation_lastRunTime :: Lens.Lens' AutomatedDiscoveryInformation (Prelude.Maybe Prelude.UTCTime)
+automatedDiscoveryInformation_lastRunTime = Lens.lens (\AutomatedDiscoveryInformation' {lastRunTime} -> lastRunTime) (\s@AutomatedDiscoveryInformation' {} a -> s {lastRunTime = a} :: AutomatedDiscoveryInformation) Prelude.. Lens.mapping Data._Time
+
+instance Data.FromJSON AutomatedDiscoveryInformation where
+  parseJSON =
+    Data.withObject
+      "AutomatedDiscoveryInformation"
+      ( \x ->
+          AutomatedDiscoveryInformation'
+            Prelude.<$> (x Data..:? "LastRunTime")
+      )
+
+instance
+  Prelude.Hashable
+    AutomatedDiscoveryInformation
+  where
+  hashWithSalt _salt AutomatedDiscoveryInformation' {..} =
+    _salt `Prelude.hashWithSalt` lastRunTime
+
+instance Prelude.NFData AutomatedDiscoveryInformation where
+  rnf AutomatedDiscoveryInformation' {..} =
+    Prelude.rnf lastRunTime
diff --git a/gen/Amazonka/LicenseManager/Types/BorrowConfiguration.hs b/gen/Amazonka/LicenseManager/Types/BorrowConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/BorrowConfiguration.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.LicenseManager.Types.BorrowConfiguration
+-- 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.LicenseManager.Types.BorrowConfiguration 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
+
+-- | Details about a borrow configuration.
+--
+-- /See:/ 'newBorrowConfiguration' smart constructor.
+data BorrowConfiguration = BorrowConfiguration'
+  { -- | Indicates whether early check-ins are allowed.
+    allowEarlyCheckIn :: Prelude.Bool,
+    -- | Maximum time for the borrow configuration, in minutes.
+    maxTimeToLiveInMinutes :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'BorrowConfiguration' 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:
+--
+-- 'allowEarlyCheckIn', 'borrowConfiguration_allowEarlyCheckIn' - Indicates whether early check-ins are allowed.
+--
+-- 'maxTimeToLiveInMinutes', 'borrowConfiguration_maxTimeToLiveInMinutes' - Maximum time for the borrow configuration, in minutes.
+newBorrowConfiguration ::
+  -- | 'allowEarlyCheckIn'
+  Prelude.Bool ->
+  -- | 'maxTimeToLiveInMinutes'
+  Prelude.Int ->
+  BorrowConfiguration
+newBorrowConfiguration
+  pAllowEarlyCheckIn_
+  pMaxTimeToLiveInMinutes_ =
+    BorrowConfiguration'
+      { allowEarlyCheckIn =
+          pAllowEarlyCheckIn_,
+        maxTimeToLiveInMinutes = pMaxTimeToLiveInMinutes_
+      }
+
+-- | Indicates whether early check-ins are allowed.
+borrowConfiguration_allowEarlyCheckIn :: Lens.Lens' BorrowConfiguration Prelude.Bool
+borrowConfiguration_allowEarlyCheckIn = Lens.lens (\BorrowConfiguration' {allowEarlyCheckIn} -> allowEarlyCheckIn) (\s@BorrowConfiguration' {} a -> s {allowEarlyCheckIn = a} :: BorrowConfiguration)
+
+-- | Maximum time for the borrow configuration, in minutes.
+borrowConfiguration_maxTimeToLiveInMinutes :: Lens.Lens' BorrowConfiguration Prelude.Int
+borrowConfiguration_maxTimeToLiveInMinutes = Lens.lens (\BorrowConfiguration' {maxTimeToLiveInMinutes} -> maxTimeToLiveInMinutes) (\s@BorrowConfiguration' {} a -> s {maxTimeToLiveInMinutes = a} :: BorrowConfiguration)
+
+instance Data.FromJSON BorrowConfiguration where
+  parseJSON =
+    Data.withObject
+      "BorrowConfiguration"
+      ( \x ->
+          BorrowConfiguration'
+            Prelude.<$> (x Data..: "AllowEarlyCheckIn")
+            Prelude.<*> (x Data..: "MaxTimeToLiveInMinutes")
+      )
+
+instance Prelude.Hashable BorrowConfiguration where
+  hashWithSalt _salt BorrowConfiguration' {..} =
+    _salt
+      `Prelude.hashWithSalt` allowEarlyCheckIn
+      `Prelude.hashWithSalt` maxTimeToLiveInMinutes
+
+instance Prelude.NFData BorrowConfiguration where
+  rnf BorrowConfiguration' {..} =
+    Prelude.rnf allowEarlyCheckIn
+      `Prelude.seq` Prelude.rnf maxTimeToLiveInMinutes
+
+instance Data.ToJSON BorrowConfiguration where
+  toJSON BorrowConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("AllowEarlyCheckIn" Data..= allowEarlyCheckIn),
+            Prelude.Just
+              ( "MaxTimeToLiveInMinutes"
+                  Data..= maxTimeToLiveInMinutes
+              )
+          ]
+      )
diff --git a/gen/Amazonka/LicenseManager/Types/CheckoutType.hs b/gen/Amazonka/LicenseManager/Types/CheckoutType.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/CheckoutType.hs
@@ -0,0 +1,71 @@
+{-# 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.LicenseManager.Types.CheckoutType
+-- 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.LicenseManager.Types.CheckoutType
+  ( CheckoutType
+      ( ..,
+        CheckoutType_PERPETUAL,
+        CheckoutType_PROVISIONAL
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype CheckoutType = CheckoutType'
+  { fromCheckoutType ::
+      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 CheckoutType_PERPETUAL :: CheckoutType
+pattern CheckoutType_PERPETUAL = CheckoutType' "PERPETUAL"
+
+pattern CheckoutType_PROVISIONAL :: CheckoutType
+pattern CheckoutType_PROVISIONAL = CheckoutType' "PROVISIONAL"
+
+{-# COMPLETE
+  CheckoutType_PERPETUAL,
+  CheckoutType_PROVISIONAL,
+  CheckoutType'
+  #-}
diff --git a/gen/Amazonka/LicenseManager/Types/ConsumedLicenseSummary.hs b/gen/Amazonka/LicenseManager/Types/ConsumedLicenseSummary.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/ConsumedLicenseSummary.hs
@@ -0,0 +1,86 @@
+{-# 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.LicenseManager.Types.ConsumedLicenseSummary
+-- 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.LicenseManager.Types.ConsumedLicenseSummary where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types.ResourceType
+import qualified Amazonka.Prelude as Prelude
+
+-- | Details about license consumption.
+--
+-- /See:/ 'newConsumedLicenseSummary' smart constructor.
+data ConsumedLicenseSummary = ConsumedLicenseSummary'
+  { -- | Number of licenses consumed by the resource.
+    consumedLicenses :: Prelude.Maybe Prelude.Integer,
+    -- | Resource type of the resource consuming a license.
+    resourceType :: Prelude.Maybe ResourceType
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ConsumedLicenseSummary' 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:
+--
+-- 'consumedLicenses', 'consumedLicenseSummary_consumedLicenses' - Number of licenses consumed by the resource.
+--
+-- 'resourceType', 'consumedLicenseSummary_resourceType' - Resource type of the resource consuming a license.
+newConsumedLicenseSummary ::
+  ConsumedLicenseSummary
+newConsumedLicenseSummary =
+  ConsumedLicenseSummary'
+    { consumedLicenses =
+        Prelude.Nothing,
+      resourceType = Prelude.Nothing
+    }
+
+-- | Number of licenses consumed by the resource.
+consumedLicenseSummary_consumedLicenses :: Lens.Lens' ConsumedLicenseSummary (Prelude.Maybe Prelude.Integer)
+consumedLicenseSummary_consumedLicenses = Lens.lens (\ConsumedLicenseSummary' {consumedLicenses} -> consumedLicenses) (\s@ConsumedLicenseSummary' {} a -> s {consumedLicenses = a} :: ConsumedLicenseSummary)
+
+-- | Resource type of the resource consuming a license.
+consumedLicenseSummary_resourceType :: Lens.Lens' ConsumedLicenseSummary (Prelude.Maybe ResourceType)
+consumedLicenseSummary_resourceType = Lens.lens (\ConsumedLicenseSummary' {resourceType} -> resourceType) (\s@ConsumedLicenseSummary' {} a -> s {resourceType = a} :: ConsumedLicenseSummary)
+
+instance Data.FromJSON ConsumedLicenseSummary where
+  parseJSON =
+    Data.withObject
+      "ConsumedLicenseSummary"
+      ( \x ->
+          ConsumedLicenseSummary'
+            Prelude.<$> (x Data..:? "ConsumedLicenses")
+            Prelude.<*> (x Data..:? "ResourceType")
+      )
+
+instance Prelude.Hashable ConsumedLicenseSummary where
+  hashWithSalt _salt ConsumedLicenseSummary' {..} =
+    _salt
+      `Prelude.hashWithSalt` consumedLicenses
+      `Prelude.hashWithSalt` resourceType
+
+instance Prelude.NFData ConsumedLicenseSummary where
+  rnf ConsumedLicenseSummary' {..} =
+    Prelude.rnf consumedLicenses
+      `Prelude.seq` Prelude.rnf resourceType
diff --git a/gen/Amazonka/LicenseManager/Types/ConsumptionConfiguration.hs b/gen/Amazonka/LicenseManager/Types/ConsumptionConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/ConsumptionConfiguration.hs
@@ -0,0 +1,112 @@
+{-# 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.LicenseManager.Types.ConsumptionConfiguration
+-- 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.LicenseManager.Types.ConsumptionConfiguration where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types.BorrowConfiguration
+import Amazonka.LicenseManager.Types.ProvisionalConfiguration
+import Amazonka.LicenseManager.Types.RenewType
+import qualified Amazonka.Prelude as Prelude
+
+-- | Details about a consumption configuration.
+--
+-- /See:/ 'newConsumptionConfiguration' smart constructor.
+data ConsumptionConfiguration = ConsumptionConfiguration'
+  { -- | Details about a borrow configuration.
+    borrowConfiguration :: Prelude.Maybe BorrowConfiguration,
+    -- | Details about a provisional configuration.
+    provisionalConfiguration :: Prelude.Maybe ProvisionalConfiguration,
+    -- | Renewal frequency.
+    renewType :: Prelude.Maybe RenewType
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ConsumptionConfiguration' 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:
+--
+-- 'borrowConfiguration', 'consumptionConfiguration_borrowConfiguration' - Details about a borrow configuration.
+--
+-- 'provisionalConfiguration', 'consumptionConfiguration_provisionalConfiguration' - Details about a provisional configuration.
+--
+-- 'renewType', 'consumptionConfiguration_renewType' - Renewal frequency.
+newConsumptionConfiguration ::
+  ConsumptionConfiguration
+newConsumptionConfiguration =
+  ConsumptionConfiguration'
+    { borrowConfiguration =
+        Prelude.Nothing,
+      provisionalConfiguration = Prelude.Nothing,
+      renewType = Prelude.Nothing
+    }
+
+-- | Details about a borrow configuration.
+consumptionConfiguration_borrowConfiguration :: Lens.Lens' ConsumptionConfiguration (Prelude.Maybe BorrowConfiguration)
+consumptionConfiguration_borrowConfiguration = Lens.lens (\ConsumptionConfiguration' {borrowConfiguration} -> borrowConfiguration) (\s@ConsumptionConfiguration' {} a -> s {borrowConfiguration = a} :: ConsumptionConfiguration)
+
+-- | Details about a provisional configuration.
+consumptionConfiguration_provisionalConfiguration :: Lens.Lens' ConsumptionConfiguration (Prelude.Maybe ProvisionalConfiguration)
+consumptionConfiguration_provisionalConfiguration = Lens.lens (\ConsumptionConfiguration' {provisionalConfiguration} -> provisionalConfiguration) (\s@ConsumptionConfiguration' {} a -> s {provisionalConfiguration = a} :: ConsumptionConfiguration)
+
+-- | Renewal frequency.
+consumptionConfiguration_renewType :: Lens.Lens' ConsumptionConfiguration (Prelude.Maybe RenewType)
+consumptionConfiguration_renewType = Lens.lens (\ConsumptionConfiguration' {renewType} -> renewType) (\s@ConsumptionConfiguration' {} a -> s {renewType = a} :: ConsumptionConfiguration)
+
+instance Data.FromJSON ConsumptionConfiguration where
+  parseJSON =
+    Data.withObject
+      "ConsumptionConfiguration"
+      ( \x ->
+          ConsumptionConfiguration'
+            Prelude.<$> (x Data..:? "BorrowConfiguration")
+            Prelude.<*> (x Data..:? "ProvisionalConfiguration")
+            Prelude.<*> (x Data..:? "RenewType")
+      )
+
+instance Prelude.Hashable ConsumptionConfiguration where
+  hashWithSalt _salt ConsumptionConfiguration' {..} =
+    _salt
+      `Prelude.hashWithSalt` borrowConfiguration
+      `Prelude.hashWithSalt` provisionalConfiguration
+      `Prelude.hashWithSalt` renewType
+
+instance Prelude.NFData ConsumptionConfiguration where
+  rnf ConsumptionConfiguration' {..} =
+    Prelude.rnf borrowConfiguration
+      `Prelude.seq` Prelude.rnf provisionalConfiguration
+      `Prelude.seq` Prelude.rnf renewType
+
+instance Data.ToJSON ConsumptionConfiguration where
+  toJSON ConsumptionConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("BorrowConfiguration" Data..=)
+              Prelude.<$> borrowConfiguration,
+            ("ProvisionalConfiguration" Data..=)
+              Prelude.<$> provisionalConfiguration,
+            ("RenewType" Data..=) Prelude.<$> renewType
+          ]
+      )
diff --git a/gen/Amazonka/LicenseManager/Types/DatetimeRange.hs b/gen/Amazonka/LicenseManager/Types/DatetimeRange.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/DatetimeRange.hs
@@ -0,0 +1,94 @@
+{-# 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.LicenseManager.Types.DatetimeRange
+-- 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.LicenseManager.Types.DatetimeRange 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
+
+-- | Describes a time range, in ISO8601-UTC format.
+--
+-- /See:/ 'newDatetimeRange' smart constructor.
+data DatetimeRange = DatetimeRange'
+  { -- | End of the time range.
+    end :: Prelude.Maybe Prelude.Text,
+    -- | Start of the time range.
+    begin :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DatetimeRange' 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:
+--
+-- 'end', 'datetimeRange_end' - End of the time range.
+--
+-- 'begin', 'datetimeRange_begin' - Start of the time range.
+newDatetimeRange ::
+  -- | 'begin'
+  Prelude.Text ->
+  DatetimeRange
+newDatetimeRange pBegin_ =
+  DatetimeRange'
+    { end = Prelude.Nothing,
+      begin = pBegin_
+    }
+
+-- | End of the time range.
+datetimeRange_end :: Lens.Lens' DatetimeRange (Prelude.Maybe Prelude.Text)
+datetimeRange_end = Lens.lens (\DatetimeRange' {end} -> end) (\s@DatetimeRange' {} a -> s {end = a} :: DatetimeRange)
+
+-- | Start of the time range.
+datetimeRange_begin :: Lens.Lens' DatetimeRange Prelude.Text
+datetimeRange_begin = Lens.lens (\DatetimeRange' {begin} -> begin) (\s@DatetimeRange' {} a -> s {begin = a} :: DatetimeRange)
+
+instance Data.FromJSON DatetimeRange where
+  parseJSON =
+    Data.withObject
+      "DatetimeRange"
+      ( \x ->
+          DatetimeRange'
+            Prelude.<$> (x Data..:? "End")
+            Prelude.<*> (x Data..: "Begin")
+      )
+
+instance Prelude.Hashable DatetimeRange where
+  hashWithSalt _salt DatetimeRange' {..} =
+    _salt
+      `Prelude.hashWithSalt` end
+      `Prelude.hashWithSalt` begin
+
+instance Prelude.NFData DatetimeRange where
+  rnf DatetimeRange' {..} =
+    Prelude.rnf end `Prelude.seq` Prelude.rnf begin
+
+instance Data.ToJSON DatetimeRange where
+  toJSON DatetimeRange' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("End" Data..=) Prelude.<$> end,
+            Prelude.Just ("Begin" Data..= begin)
+          ]
+      )
diff --git a/gen/Amazonka/LicenseManager/Types/DigitalSignatureMethod.hs b/gen/Amazonka/LicenseManager/Types/DigitalSignatureMethod.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/DigitalSignatureMethod.hs
@@ -0,0 +1,66 @@
+{-# 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.LicenseManager.Types.DigitalSignatureMethod
+-- 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.LicenseManager.Types.DigitalSignatureMethod
+  ( DigitalSignatureMethod
+      ( ..,
+        DigitalSignatureMethod_JWT_PS384
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype DigitalSignatureMethod = DigitalSignatureMethod'
+  { fromDigitalSignatureMethod ::
+      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 DigitalSignatureMethod_JWT_PS384 :: DigitalSignatureMethod
+pattern DigitalSignatureMethod_JWT_PS384 = DigitalSignatureMethod' "JWT_PS384"
+
+{-# COMPLETE
+  DigitalSignatureMethod_JWT_PS384,
+  DigitalSignatureMethod'
+  #-}
diff --git a/gen/Amazonka/LicenseManager/Types/Entitlement.hs b/gen/Amazonka/LicenseManager/Types/Entitlement.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/Entitlement.hs
@@ -0,0 +1,150 @@
+{-# 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.LicenseManager.Types.Entitlement
+-- 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.LicenseManager.Types.Entitlement where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types.EntitlementUnit
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes a resource entitled for use with a license.
+--
+-- /See:/ 'newEntitlement' smart constructor.
+data Entitlement = Entitlement'
+  { -- | Indicates whether check-ins are allowed.
+    allowCheckIn :: Prelude.Maybe Prelude.Bool,
+    -- | Maximum entitlement count. Use if the unit is not None.
+    maxCount :: Prelude.Maybe Prelude.Integer,
+    -- | Indicates whether overages are allowed.
+    overage :: Prelude.Maybe Prelude.Bool,
+    -- | Entitlement resource. Use only if the unit is None.
+    value :: Prelude.Maybe Prelude.Text,
+    -- | Entitlement name.
+    name :: Prelude.Text,
+    -- | Entitlement unit.
+    unit :: EntitlementUnit
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'Entitlement' 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:
+--
+-- 'allowCheckIn', 'entitlement_allowCheckIn' - Indicates whether check-ins are allowed.
+--
+-- 'maxCount', 'entitlement_maxCount' - Maximum entitlement count. Use if the unit is not None.
+--
+-- 'overage', 'entitlement_overage' - Indicates whether overages are allowed.
+--
+-- 'value', 'entitlement_value' - Entitlement resource. Use only if the unit is None.
+--
+-- 'name', 'entitlement_name' - Entitlement name.
+--
+-- 'unit', 'entitlement_unit' - Entitlement unit.
+newEntitlement ::
+  -- | 'name'
+  Prelude.Text ->
+  -- | 'unit'
+  EntitlementUnit ->
+  Entitlement
+newEntitlement pName_ pUnit_ =
+  Entitlement'
+    { allowCheckIn = Prelude.Nothing,
+      maxCount = Prelude.Nothing,
+      overage = Prelude.Nothing,
+      value = Prelude.Nothing,
+      name = pName_,
+      unit = pUnit_
+    }
+
+-- | Indicates whether check-ins are allowed.
+entitlement_allowCheckIn :: Lens.Lens' Entitlement (Prelude.Maybe Prelude.Bool)
+entitlement_allowCheckIn = Lens.lens (\Entitlement' {allowCheckIn} -> allowCheckIn) (\s@Entitlement' {} a -> s {allowCheckIn = a} :: Entitlement)
+
+-- | Maximum entitlement count. Use if the unit is not None.
+entitlement_maxCount :: Lens.Lens' Entitlement (Prelude.Maybe Prelude.Integer)
+entitlement_maxCount = Lens.lens (\Entitlement' {maxCount} -> maxCount) (\s@Entitlement' {} a -> s {maxCount = a} :: Entitlement)
+
+-- | Indicates whether overages are allowed.
+entitlement_overage :: Lens.Lens' Entitlement (Prelude.Maybe Prelude.Bool)
+entitlement_overage = Lens.lens (\Entitlement' {overage} -> overage) (\s@Entitlement' {} a -> s {overage = a} :: Entitlement)
+
+-- | Entitlement resource. Use only if the unit is None.
+entitlement_value :: Lens.Lens' Entitlement (Prelude.Maybe Prelude.Text)
+entitlement_value = Lens.lens (\Entitlement' {value} -> value) (\s@Entitlement' {} a -> s {value = a} :: Entitlement)
+
+-- | Entitlement name.
+entitlement_name :: Lens.Lens' Entitlement Prelude.Text
+entitlement_name = Lens.lens (\Entitlement' {name} -> name) (\s@Entitlement' {} a -> s {name = a} :: Entitlement)
+
+-- | Entitlement unit.
+entitlement_unit :: Lens.Lens' Entitlement EntitlementUnit
+entitlement_unit = Lens.lens (\Entitlement' {unit} -> unit) (\s@Entitlement' {} a -> s {unit = a} :: Entitlement)
+
+instance Data.FromJSON Entitlement where
+  parseJSON =
+    Data.withObject
+      "Entitlement"
+      ( \x ->
+          Entitlement'
+            Prelude.<$> (x Data..:? "AllowCheckIn")
+            Prelude.<*> (x Data..:? "MaxCount")
+            Prelude.<*> (x Data..:? "Overage")
+            Prelude.<*> (x Data..:? "Value")
+            Prelude.<*> (x Data..: "Name")
+            Prelude.<*> (x Data..: "Unit")
+      )
+
+instance Prelude.Hashable Entitlement where
+  hashWithSalt _salt Entitlement' {..} =
+    _salt
+      `Prelude.hashWithSalt` allowCheckIn
+      `Prelude.hashWithSalt` maxCount
+      `Prelude.hashWithSalt` overage
+      `Prelude.hashWithSalt` value
+      `Prelude.hashWithSalt` name
+      `Prelude.hashWithSalt` unit
+
+instance Prelude.NFData Entitlement where
+  rnf Entitlement' {..} =
+    Prelude.rnf allowCheckIn
+      `Prelude.seq` Prelude.rnf maxCount
+      `Prelude.seq` Prelude.rnf overage
+      `Prelude.seq` Prelude.rnf value
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf unit
+
+instance Data.ToJSON Entitlement where
+  toJSON Entitlement' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("AllowCheckIn" Data..=) Prelude.<$> allowCheckIn,
+            ("MaxCount" Data..=) Prelude.<$> maxCount,
+            ("Overage" Data..=) Prelude.<$> overage,
+            ("Value" Data..=) Prelude.<$> value,
+            Prelude.Just ("Name" Data..= name),
+            Prelude.Just ("Unit" Data..= unit)
+          ]
+      )
diff --git a/gen/Amazonka/LicenseManager/Types/EntitlementData.hs b/gen/Amazonka/LicenseManager/Types/EntitlementData.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/EntitlementData.hs
@@ -0,0 +1,111 @@
+{-# 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.LicenseManager.Types.EntitlementData
+-- 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.LicenseManager.Types.EntitlementData where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types.EntitlementDataUnit
+import qualified Amazonka.Prelude as Prelude
+
+-- | Data associated with an entitlement resource.
+--
+-- /See:/ 'newEntitlementData' smart constructor.
+data EntitlementData = EntitlementData'
+  { -- | Entitlement data value.
+    value :: Prelude.Maybe Prelude.Text,
+    -- | Entitlement data name.
+    name :: Prelude.Text,
+    -- | Entitlement data unit.
+    unit :: EntitlementDataUnit
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'EntitlementData' 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:
+--
+-- 'value', 'entitlementData_value' - Entitlement data value.
+--
+-- 'name', 'entitlementData_name' - Entitlement data name.
+--
+-- 'unit', 'entitlementData_unit' - Entitlement data unit.
+newEntitlementData ::
+  -- | 'name'
+  Prelude.Text ->
+  -- | 'unit'
+  EntitlementDataUnit ->
+  EntitlementData
+newEntitlementData pName_ pUnit_ =
+  EntitlementData'
+    { value = Prelude.Nothing,
+      name = pName_,
+      unit = pUnit_
+    }
+
+-- | Entitlement data value.
+entitlementData_value :: Lens.Lens' EntitlementData (Prelude.Maybe Prelude.Text)
+entitlementData_value = Lens.lens (\EntitlementData' {value} -> value) (\s@EntitlementData' {} a -> s {value = a} :: EntitlementData)
+
+-- | Entitlement data name.
+entitlementData_name :: Lens.Lens' EntitlementData Prelude.Text
+entitlementData_name = Lens.lens (\EntitlementData' {name} -> name) (\s@EntitlementData' {} a -> s {name = a} :: EntitlementData)
+
+-- | Entitlement data unit.
+entitlementData_unit :: Lens.Lens' EntitlementData EntitlementDataUnit
+entitlementData_unit = Lens.lens (\EntitlementData' {unit} -> unit) (\s@EntitlementData' {} a -> s {unit = a} :: EntitlementData)
+
+instance Data.FromJSON EntitlementData where
+  parseJSON =
+    Data.withObject
+      "EntitlementData"
+      ( \x ->
+          EntitlementData'
+            Prelude.<$> (x Data..:? "Value")
+            Prelude.<*> (x Data..: "Name")
+            Prelude.<*> (x Data..: "Unit")
+      )
+
+instance Prelude.Hashable EntitlementData where
+  hashWithSalt _salt EntitlementData' {..} =
+    _salt
+      `Prelude.hashWithSalt` value
+      `Prelude.hashWithSalt` name
+      `Prelude.hashWithSalt` unit
+
+instance Prelude.NFData EntitlementData where
+  rnf EntitlementData' {..} =
+    Prelude.rnf value
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf unit
+
+instance Data.ToJSON EntitlementData where
+  toJSON EntitlementData' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("Value" Data..=) Prelude.<$> value,
+            Prelude.Just ("Name" Data..= name),
+            Prelude.Just ("Unit" Data..= unit)
+          ]
+      )
diff --git a/gen/Amazonka/LicenseManager/Types/EntitlementDataUnit.hs b/gen/Amazonka/LicenseManager/Types/EntitlementDataUnit.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/EntitlementDataUnit.hs
@@ -0,0 +1,196 @@
+{-# 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.LicenseManager.Types.EntitlementDataUnit
+-- 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.LicenseManager.Types.EntitlementDataUnit
+  ( EntitlementDataUnit
+      ( ..,
+        EntitlementDataUnit_Bits,
+        EntitlementDataUnit_Bits_Second,
+        EntitlementDataUnit_Bytes,
+        EntitlementDataUnit_Bytes_Second,
+        EntitlementDataUnit_Count,
+        EntitlementDataUnit_Count_Second,
+        EntitlementDataUnit_Gigabits,
+        EntitlementDataUnit_Gigabits_Second,
+        EntitlementDataUnit_Gigabytes,
+        EntitlementDataUnit_Gigabytes_Second,
+        EntitlementDataUnit_Kilobits,
+        EntitlementDataUnit_Kilobits_Second,
+        EntitlementDataUnit_Kilobytes,
+        EntitlementDataUnit_Kilobytes_Second,
+        EntitlementDataUnit_Megabits,
+        EntitlementDataUnit_Megabits_Second,
+        EntitlementDataUnit_Megabytes,
+        EntitlementDataUnit_Megabytes_Second,
+        EntitlementDataUnit_Microseconds,
+        EntitlementDataUnit_Milliseconds,
+        EntitlementDataUnit_None,
+        EntitlementDataUnit_Percent,
+        EntitlementDataUnit_Seconds,
+        EntitlementDataUnit_Terabits,
+        EntitlementDataUnit_Terabits_Second,
+        EntitlementDataUnit_Terabytes,
+        EntitlementDataUnit_Terabytes_Second
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype EntitlementDataUnit = EntitlementDataUnit'
+  { fromEntitlementDataUnit ::
+      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 EntitlementDataUnit_Bits :: EntitlementDataUnit
+pattern EntitlementDataUnit_Bits = EntitlementDataUnit' "Bits"
+
+pattern EntitlementDataUnit_Bits_Second :: EntitlementDataUnit
+pattern EntitlementDataUnit_Bits_Second = EntitlementDataUnit' "Bits/Second"
+
+pattern EntitlementDataUnit_Bytes :: EntitlementDataUnit
+pattern EntitlementDataUnit_Bytes = EntitlementDataUnit' "Bytes"
+
+pattern EntitlementDataUnit_Bytes_Second :: EntitlementDataUnit
+pattern EntitlementDataUnit_Bytes_Second = EntitlementDataUnit' "Bytes/Second"
+
+pattern EntitlementDataUnit_Count :: EntitlementDataUnit
+pattern EntitlementDataUnit_Count = EntitlementDataUnit' "Count"
+
+pattern EntitlementDataUnit_Count_Second :: EntitlementDataUnit
+pattern EntitlementDataUnit_Count_Second = EntitlementDataUnit' "Count/Second"
+
+pattern EntitlementDataUnit_Gigabits :: EntitlementDataUnit
+pattern EntitlementDataUnit_Gigabits = EntitlementDataUnit' "Gigabits"
+
+pattern EntitlementDataUnit_Gigabits_Second :: EntitlementDataUnit
+pattern EntitlementDataUnit_Gigabits_Second = EntitlementDataUnit' "Gigabits/Second"
+
+pattern EntitlementDataUnit_Gigabytes :: EntitlementDataUnit
+pattern EntitlementDataUnit_Gigabytes = EntitlementDataUnit' "Gigabytes"
+
+pattern EntitlementDataUnit_Gigabytes_Second :: EntitlementDataUnit
+pattern EntitlementDataUnit_Gigabytes_Second = EntitlementDataUnit' "Gigabytes/Second"
+
+pattern EntitlementDataUnit_Kilobits :: EntitlementDataUnit
+pattern EntitlementDataUnit_Kilobits = EntitlementDataUnit' "Kilobits"
+
+pattern EntitlementDataUnit_Kilobits_Second :: EntitlementDataUnit
+pattern EntitlementDataUnit_Kilobits_Second = EntitlementDataUnit' "Kilobits/Second"
+
+pattern EntitlementDataUnit_Kilobytes :: EntitlementDataUnit
+pattern EntitlementDataUnit_Kilobytes = EntitlementDataUnit' "Kilobytes"
+
+pattern EntitlementDataUnit_Kilobytes_Second :: EntitlementDataUnit
+pattern EntitlementDataUnit_Kilobytes_Second = EntitlementDataUnit' "Kilobytes/Second"
+
+pattern EntitlementDataUnit_Megabits :: EntitlementDataUnit
+pattern EntitlementDataUnit_Megabits = EntitlementDataUnit' "Megabits"
+
+pattern EntitlementDataUnit_Megabits_Second :: EntitlementDataUnit
+pattern EntitlementDataUnit_Megabits_Second = EntitlementDataUnit' "Megabits/Second"
+
+pattern EntitlementDataUnit_Megabytes :: EntitlementDataUnit
+pattern EntitlementDataUnit_Megabytes = EntitlementDataUnit' "Megabytes"
+
+pattern EntitlementDataUnit_Megabytes_Second :: EntitlementDataUnit
+pattern EntitlementDataUnit_Megabytes_Second = EntitlementDataUnit' "Megabytes/Second"
+
+pattern EntitlementDataUnit_Microseconds :: EntitlementDataUnit
+pattern EntitlementDataUnit_Microseconds = EntitlementDataUnit' "Microseconds"
+
+pattern EntitlementDataUnit_Milliseconds :: EntitlementDataUnit
+pattern EntitlementDataUnit_Milliseconds = EntitlementDataUnit' "Milliseconds"
+
+pattern EntitlementDataUnit_None :: EntitlementDataUnit
+pattern EntitlementDataUnit_None = EntitlementDataUnit' "None"
+
+pattern EntitlementDataUnit_Percent :: EntitlementDataUnit
+pattern EntitlementDataUnit_Percent = EntitlementDataUnit' "Percent"
+
+pattern EntitlementDataUnit_Seconds :: EntitlementDataUnit
+pattern EntitlementDataUnit_Seconds = EntitlementDataUnit' "Seconds"
+
+pattern EntitlementDataUnit_Terabits :: EntitlementDataUnit
+pattern EntitlementDataUnit_Terabits = EntitlementDataUnit' "Terabits"
+
+pattern EntitlementDataUnit_Terabits_Second :: EntitlementDataUnit
+pattern EntitlementDataUnit_Terabits_Second = EntitlementDataUnit' "Terabits/Second"
+
+pattern EntitlementDataUnit_Terabytes :: EntitlementDataUnit
+pattern EntitlementDataUnit_Terabytes = EntitlementDataUnit' "Terabytes"
+
+pattern EntitlementDataUnit_Terabytes_Second :: EntitlementDataUnit
+pattern EntitlementDataUnit_Terabytes_Second = EntitlementDataUnit' "Terabytes/Second"
+
+{-# COMPLETE
+  EntitlementDataUnit_Bits,
+  EntitlementDataUnit_Bits_Second,
+  EntitlementDataUnit_Bytes,
+  EntitlementDataUnit_Bytes_Second,
+  EntitlementDataUnit_Count,
+  EntitlementDataUnit_Count_Second,
+  EntitlementDataUnit_Gigabits,
+  EntitlementDataUnit_Gigabits_Second,
+  EntitlementDataUnit_Gigabytes,
+  EntitlementDataUnit_Gigabytes_Second,
+  EntitlementDataUnit_Kilobits,
+  EntitlementDataUnit_Kilobits_Second,
+  EntitlementDataUnit_Kilobytes,
+  EntitlementDataUnit_Kilobytes_Second,
+  EntitlementDataUnit_Megabits,
+  EntitlementDataUnit_Megabits_Second,
+  EntitlementDataUnit_Megabytes,
+  EntitlementDataUnit_Megabytes_Second,
+  EntitlementDataUnit_Microseconds,
+  EntitlementDataUnit_Milliseconds,
+  EntitlementDataUnit_None,
+  EntitlementDataUnit_Percent,
+  EntitlementDataUnit_Seconds,
+  EntitlementDataUnit_Terabits,
+  EntitlementDataUnit_Terabits_Second,
+  EntitlementDataUnit_Terabytes,
+  EntitlementDataUnit_Terabytes_Second,
+  EntitlementDataUnit'
+  #-}
diff --git a/gen/Amazonka/LicenseManager/Types/EntitlementUnit.hs b/gen/Amazonka/LicenseManager/Types/EntitlementUnit.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/EntitlementUnit.hs
@@ -0,0 +1,196 @@
+{-# 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.LicenseManager.Types.EntitlementUnit
+-- 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.LicenseManager.Types.EntitlementUnit
+  ( EntitlementUnit
+      ( ..,
+        EntitlementUnit_Bits,
+        EntitlementUnit_Bits_Second,
+        EntitlementUnit_Bytes,
+        EntitlementUnit_Bytes_Second,
+        EntitlementUnit_Count,
+        EntitlementUnit_Count_Second,
+        EntitlementUnit_Gigabits,
+        EntitlementUnit_Gigabits_Second,
+        EntitlementUnit_Gigabytes,
+        EntitlementUnit_Gigabytes_Second,
+        EntitlementUnit_Kilobits,
+        EntitlementUnit_Kilobits_Second,
+        EntitlementUnit_Kilobytes,
+        EntitlementUnit_Kilobytes_Second,
+        EntitlementUnit_Megabits,
+        EntitlementUnit_Megabits_Second,
+        EntitlementUnit_Megabytes,
+        EntitlementUnit_Megabytes_Second,
+        EntitlementUnit_Microseconds,
+        EntitlementUnit_Milliseconds,
+        EntitlementUnit_None,
+        EntitlementUnit_Percent,
+        EntitlementUnit_Seconds,
+        EntitlementUnit_Terabits,
+        EntitlementUnit_Terabits_Second,
+        EntitlementUnit_Terabytes,
+        EntitlementUnit_Terabytes_Second
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype EntitlementUnit = EntitlementUnit'
+  { fromEntitlementUnit ::
+      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 EntitlementUnit_Bits :: EntitlementUnit
+pattern EntitlementUnit_Bits = EntitlementUnit' "Bits"
+
+pattern EntitlementUnit_Bits_Second :: EntitlementUnit
+pattern EntitlementUnit_Bits_Second = EntitlementUnit' "Bits/Second"
+
+pattern EntitlementUnit_Bytes :: EntitlementUnit
+pattern EntitlementUnit_Bytes = EntitlementUnit' "Bytes"
+
+pattern EntitlementUnit_Bytes_Second :: EntitlementUnit
+pattern EntitlementUnit_Bytes_Second = EntitlementUnit' "Bytes/Second"
+
+pattern EntitlementUnit_Count :: EntitlementUnit
+pattern EntitlementUnit_Count = EntitlementUnit' "Count"
+
+pattern EntitlementUnit_Count_Second :: EntitlementUnit
+pattern EntitlementUnit_Count_Second = EntitlementUnit' "Count/Second"
+
+pattern EntitlementUnit_Gigabits :: EntitlementUnit
+pattern EntitlementUnit_Gigabits = EntitlementUnit' "Gigabits"
+
+pattern EntitlementUnit_Gigabits_Second :: EntitlementUnit
+pattern EntitlementUnit_Gigabits_Second = EntitlementUnit' "Gigabits/Second"
+
+pattern EntitlementUnit_Gigabytes :: EntitlementUnit
+pattern EntitlementUnit_Gigabytes = EntitlementUnit' "Gigabytes"
+
+pattern EntitlementUnit_Gigabytes_Second :: EntitlementUnit
+pattern EntitlementUnit_Gigabytes_Second = EntitlementUnit' "Gigabytes/Second"
+
+pattern EntitlementUnit_Kilobits :: EntitlementUnit
+pattern EntitlementUnit_Kilobits = EntitlementUnit' "Kilobits"
+
+pattern EntitlementUnit_Kilobits_Second :: EntitlementUnit
+pattern EntitlementUnit_Kilobits_Second = EntitlementUnit' "Kilobits/Second"
+
+pattern EntitlementUnit_Kilobytes :: EntitlementUnit
+pattern EntitlementUnit_Kilobytes = EntitlementUnit' "Kilobytes"
+
+pattern EntitlementUnit_Kilobytes_Second :: EntitlementUnit
+pattern EntitlementUnit_Kilobytes_Second = EntitlementUnit' "Kilobytes/Second"
+
+pattern EntitlementUnit_Megabits :: EntitlementUnit
+pattern EntitlementUnit_Megabits = EntitlementUnit' "Megabits"
+
+pattern EntitlementUnit_Megabits_Second :: EntitlementUnit
+pattern EntitlementUnit_Megabits_Second = EntitlementUnit' "Megabits/Second"
+
+pattern EntitlementUnit_Megabytes :: EntitlementUnit
+pattern EntitlementUnit_Megabytes = EntitlementUnit' "Megabytes"
+
+pattern EntitlementUnit_Megabytes_Second :: EntitlementUnit
+pattern EntitlementUnit_Megabytes_Second = EntitlementUnit' "Megabytes/Second"
+
+pattern EntitlementUnit_Microseconds :: EntitlementUnit
+pattern EntitlementUnit_Microseconds = EntitlementUnit' "Microseconds"
+
+pattern EntitlementUnit_Milliseconds :: EntitlementUnit
+pattern EntitlementUnit_Milliseconds = EntitlementUnit' "Milliseconds"
+
+pattern EntitlementUnit_None :: EntitlementUnit
+pattern EntitlementUnit_None = EntitlementUnit' "None"
+
+pattern EntitlementUnit_Percent :: EntitlementUnit
+pattern EntitlementUnit_Percent = EntitlementUnit' "Percent"
+
+pattern EntitlementUnit_Seconds :: EntitlementUnit
+pattern EntitlementUnit_Seconds = EntitlementUnit' "Seconds"
+
+pattern EntitlementUnit_Terabits :: EntitlementUnit
+pattern EntitlementUnit_Terabits = EntitlementUnit' "Terabits"
+
+pattern EntitlementUnit_Terabits_Second :: EntitlementUnit
+pattern EntitlementUnit_Terabits_Second = EntitlementUnit' "Terabits/Second"
+
+pattern EntitlementUnit_Terabytes :: EntitlementUnit
+pattern EntitlementUnit_Terabytes = EntitlementUnit' "Terabytes"
+
+pattern EntitlementUnit_Terabytes_Second :: EntitlementUnit
+pattern EntitlementUnit_Terabytes_Second = EntitlementUnit' "Terabytes/Second"
+
+{-# COMPLETE
+  EntitlementUnit_Bits,
+  EntitlementUnit_Bits_Second,
+  EntitlementUnit_Bytes,
+  EntitlementUnit_Bytes_Second,
+  EntitlementUnit_Count,
+  EntitlementUnit_Count_Second,
+  EntitlementUnit_Gigabits,
+  EntitlementUnit_Gigabits_Second,
+  EntitlementUnit_Gigabytes,
+  EntitlementUnit_Gigabytes_Second,
+  EntitlementUnit_Kilobits,
+  EntitlementUnit_Kilobits_Second,
+  EntitlementUnit_Kilobytes,
+  EntitlementUnit_Kilobytes_Second,
+  EntitlementUnit_Megabits,
+  EntitlementUnit_Megabits_Second,
+  EntitlementUnit_Megabytes,
+  EntitlementUnit_Megabytes_Second,
+  EntitlementUnit_Microseconds,
+  EntitlementUnit_Milliseconds,
+  EntitlementUnit_None,
+  EntitlementUnit_Percent,
+  EntitlementUnit_Seconds,
+  EntitlementUnit_Terabits,
+  EntitlementUnit_Terabits_Second,
+  EntitlementUnit_Terabytes,
+  EntitlementUnit_Terabytes_Second,
+  EntitlementUnit'
+  #-}
diff --git a/gen/Amazonka/LicenseManager/Types/EntitlementUsage.hs b/gen/Amazonka/LicenseManager/Types/EntitlementUsage.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/EntitlementUsage.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.LicenseManager.Types.EntitlementUsage
+-- 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.LicenseManager.Types.EntitlementUsage where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types.EntitlementDataUnit
+import qualified Amazonka.Prelude as Prelude
+
+-- | Usage associated with an entitlement resource.
+--
+-- /See:/ 'newEntitlementUsage' smart constructor.
+data EntitlementUsage = EntitlementUsage'
+  { -- | Maximum entitlement usage count.
+    maxCount :: Prelude.Maybe Prelude.Text,
+    -- | Entitlement usage name.
+    name :: Prelude.Text,
+    -- | Resource usage consumed.
+    consumedValue :: Prelude.Text,
+    -- | Entitlement usage unit.
+    unit :: EntitlementDataUnit
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'EntitlementUsage' 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:
+--
+-- 'maxCount', 'entitlementUsage_maxCount' - Maximum entitlement usage count.
+--
+-- 'name', 'entitlementUsage_name' - Entitlement usage name.
+--
+-- 'consumedValue', 'entitlementUsage_consumedValue' - Resource usage consumed.
+--
+-- 'unit', 'entitlementUsage_unit' - Entitlement usage unit.
+newEntitlementUsage ::
+  -- | 'name'
+  Prelude.Text ->
+  -- | 'consumedValue'
+  Prelude.Text ->
+  -- | 'unit'
+  EntitlementDataUnit ->
+  EntitlementUsage
+newEntitlementUsage pName_ pConsumedValue_ pUnit_ =
+  EntitlementUsage'
+    { maxCount = Prelude.Nothing,
+      name = pName_,
+      consumedValue = pConsumedValue_,
+      unit = pUnit_
+    }
+
+-- | Maximum entitlement usage count.
+entitlementUsage_maxCount :: Lens.Lens' EntitlementUsage (Prelude.Maybe Prelude.Text)
+entitlementUsage_maxCount = Lens.lens (\EntitlementUsage' {maxCount} -> maxCount) (\s@EntitlementUsage' {} a -> s {maxCount = a} :: EntitlementUsage)
+
+-- | Entitlement usage name.
+entitlementUsage_name :: Lens.Lens' EntitlementUsage Prelude.Text
+entitlementUsage_name = Lens.lens (\EntitlementUsage' {name} -> name) (\s@EntitlementUsage' {} a -> s {name = a} :: EntitlementUsage)
+
+-- | Resource usage consumed.
+entitlementUsage_consumedValue :: Lens.Lens' EntitlementUsage Prelude.Text
+entitlementUsage_consumedValue = Lens.lens (\EntitlementUsage' {consumedValue} -> consumedValue) (\s@EntitlementUsage' {} a -> s {consumedValue = a} :: EntitlementUsage)
+
+-- | Entitlement usage unit.
+entitlementUsage_unit :: Lens.Lens' EntitlementUsage EntitlementDataUnit
+entitlementUsage_unit = Lens.lens (\EntitlementUsage' {unit} -> unit) (\s@EntitlementUsage' {} a -> s {unit = a} :: EntitlementUsage)
+
+instance Data.FromJSON EntitlementUsage where
+  parseJSON =
+    Data.withObject
+      "EntitlementUsage"
+      ( \x ->
+          EntitlementUsage'
+            Prelude.<$> (x Data..:? "MaxCount")
+            Prelude.<*> (x Data..: "Name")
+            Prelude.<*> (x Data..: "ConsumedValue")
+            Prelude.<*> (x Data..: "Unit")
+      )
+
+instance Prelude.Hashable EntitlementUsage where
+  hashWithSalt _salt EntitlementUsage' {..} =
+    _salt
+      `Prelude.hashWithSalt` maxCount
+      `Prelude.hashWithSalt` name
+      `Prelude.hashWithSalt` consumedValue
+      `Prelude.hashWithSalt` unit
+
+instance Prelude.NFData EntitlementUsage where
+  rnf EntitlementUsage' {..} =
+    Prelude.rnf maxCount
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf consumedValue
+      `Prelude.seq` Prelude.rnf unit
diff --git a/gen/Amazonka/LicenseManager/Types/Filter.hs b/gen/Amazonka/LicenseManager/Types/Filter.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/Filter.hs
@@ -0,0 +1,84 @@
+{-# 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.LicenseManager.Types.Filter
+-- 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.LicenseManager.Types.Filter 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 filter name and value pair that is used to return more specific
+-- results from a describe operation. Filters can be used to match a set of
+-- resources by specific criteria, such as tags, attributes, or IDs.
+--
+-- /See:/ 'newFilter' smart constructor.
+data Filter = Filter'
+  { -- | Name of the filter. Filter names are case-sensitive.
+    name :: Prelude.Maybe Prelude.Text,
+    -- | Filter values. Filter values are case-sensitive.
+    values :: Prelude.Maybe [Prelude.Text]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'Filter' 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', 'filter_name' - Name of the filter. Filter names are case-sensitive.
+--
+-- 'values', 'filter_values' - Filter values. Filter values are case-sensitive.
+newFilter ::
+  Filter
+newFilter =
+  Filter'
+    { name = Prelude.Nothing,
+      values = Prelude.Nothing
+    }
+
+-- | Name of the filter. Filter names are case-sensitive.
+filter_name :: Lens.Lens' Filter (Prelude.Maybe Prelude.Text)
+filter_name = Lens.lens (\Filter' {name} -> name) (\s@Filter' {} a -> s {name = a} :: Filter)
+
+-- | Filter values. Filter values are case-sensitive.
+filter_values :: Lens.Lens' Filter (Prelude.Maybe [Prelude.Text])
+filter_values = Lens.lens (\Filter' {values} -> values) (\s@Filter' {} a -> s {values = a} :: Filter) Prelude.. Lens.mapping Lens.coerced
+
+instance Prelude.Hashable Filter where
+  hashWithSalt _salt Filter' {..} =
+    _salt
+      `Prelude.hashWithSalt` name
+      `Prelude.hashWithSalt` values
+
+instance Prelude.NFData Filter where
+  rnf Filter' {..} =
+    Prelude.rnf name `Prelude.seq` Prelude.rnf values
+
+instance Data.ToJSON Filter where
+  toJSON Filter' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("Name" Data..=) Prelude.<$> name,
+            ("Values" Data..=) Prelude.<$> values
+          ]
+      )
diff --git a/gen/Amazonka/LicenseManager/Types/Grant.hs b/gen/Amazonka/LicenseManager/Types/Grant.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/Grant.hs
@@ -0,0 +1,210 @@
+{-# 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.LicenseManager.Types.Grant
+-- 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.LicenseManager.Types.Grant where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types.AllowedOperation
+import Amazonka.LicenseManager.Types.GrantStatus
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes a grant.
+--
+-- /See:/ 'newGrant' smart constructor.
+data Grant = Grant'
+  { -- | Grant status reason.
+    statusReason :: Prelude.Maybe Prelude.Text,
+    -- | Amazon Resource Name (ARN) of the grant.
+    grantArn :: Prelude.Text,
+    -- | Grant name.
+    grantName :: Prelude.Text,
+    -- | Parent ARN.
+    parentArn :: Prelude.Text,
+    -- | License ARN.
+    licenseArn :: Prelude.Text,
+    -- | The grantee principal ARN.
+    granteePrincipalArn :: Prelude.Text,
+    -- | Home Region of the grant.
+    homeRegion :: Prelude.Text,
+    -- | Grant status.
+    grantStatus :: GrantStatus,
+    -- | Grant version.
+    version :: Prelude.Text,
+    -- | Granted operations.
+    grantedOperations :: Prelude.NonEmpty AllowedOperation
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'Grant' 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:
+--
+-- 'statusReason', 'grant_statusReason' - Grant status reason.
+--
+-- 'grantArn', 'grant_grantArn' - Amazon Resource Name (ARN) of the grant.
+--
+-- 'grantName', 'grant_grantName' - Grant name.
+--
+-- 'parentArn', 'grant_parentArn' - Parent ARN.
+--
+-- 'licenseArn', 'grant_licenseArn' - License ARN.
+--
+-- 'granteePrincipalArn', 'grant_granteePrincipalArn' - The grantee principal ARN.
+--
+-- 'homeRegion', 'grant_homeRegion' - Home Region of the grant.
+--
+-- 'grantStatus', 'grant_grantStatus' - Grant status.
+--
+-- 'version', 'grant_version' - Grant version.
+--
+-- 'grantedOperations', 'grant_grantedOperations' - Granted operations.
+newGrant ::
+  -- | 'grantArn'
+  Prelude.Text ->
+  -- | 'grantName'
+  Prelude.Text ->
+  -- | 'parentArn'
+  Prelude.Text ->
+  -- | 'licenseArn'
+  Prelude.Text ->
+  -- | 'granteePrincipalArn'
+  Prelude.Text ->
+  -- | 'homeRegion'
+  Prelude.Text ->
+  -- | 'grantStatus'
+  GrantStatus ->
+  -- | 'version'
+  Prelude.Text ->
+  -- | 'grantedOperations'
+  Prelude.NonEmpty AllowedOperation ->
+  Grant
+newGrant
+  pGrantArn_
+  pGrantName_
+  pParentArn_
+  pLicenseArn_
+  pGranteePrincipalArn_
+  pHomeRegion_
+  pGrantStatus_
+  pVersion_
+  pGrantedOperations_ =
+    Grant'
+      { statusReason = Prelude.Nothing,
+        grantArn = pGrantArn_,
+        grantName = pGrantName_,
+        parentArn = pParentArn_,
+        licenseArn = pLicenseArn_,
+        granteePrincipalArn = pGranteePrincipalArn_,
+        homeRegion = pHomeRegion_,
+        grantStatus = pGrantStatus_,
+        version = pVersion_,
+        grantedOperations =
+          Lens.coerced Lens.# pGrantedOperations_
+      }
+
+-- | Grant status reason.
+grant_statusReason :: Lens.Lens' Grant (Prelude.Maybe Prelude.Text)
+grant_statusReason = Lens.lens (\Grant' {statusReason} -> statusReason) (\s@Grant' {} a -> s {statusReason = a} :: Grant)
+
+-- | Amazon Resource Name (ARN) of the grant.
+grant_grantArn :: Lens.Lens' Grant Prelude.Text
+grant_grantArn = Lens.lens (\Grant' {grantArn} -> grantArn) (\s@Grant' {} a -> s {grantArn = a} :: Grant)
+
+-- | Grant name.
+grant_grantName :: Lens.Lens' Grant Prelude.Text
+grant_grantName = Lens.lens (\Grant' {grantName} -> grantName) (\s@Grant' {} a -> s {grantName = a} :: Grant)
+
+-- | Parent ARN.
+grant_parentArn :: Lens.Lens' Grant Prelude.Text
+grant_parentArn = Lens.lens (\Grant' {parentArn} -> parentArn) (\s@Grant' {} a -> s {parentArn = a} :: Grant)
+
+-- | License ARN.
+grant_licenseArn :: Lens.Lens' Grant Prelude.Text
+grant_licenseArn = Lens.lens (\Grant' {licenseArn} -> licenseArn) (\s@Grant' {} a -> s {licenseArn = a} :: Grant)
+
+-- | The grantee principal ARN.
+grant_granteePrincipalArn :: Lens.Lens' Grant Prelude.Text
+grant_granteePrincipalArn = Lens.lens (\Grant' {granteePrincipalArn} -> granteePrincipalArn) (\s@Grant' {} a -> s {granteePrincipalArn = a} :: Grant)
+
+-- | Home Region of the grant.
+grant_homeRegion :: Lens.Lens' Grant Prelude.Text
+grant_homeRegion = Lens.lens (\Grant' {homeRegion} -> homeRegion) (\s@Grant' {} a -> s {homeRegion = a} :: Grant)
+
+-- | Grant status.
+grant_grantStatus :: Lens.Lens' Grant GrantStatus
+grant_grantStatus = Lens.lens (\Grant' {grantStatus} -> grantStatus) (\s@Grant' {} a -> s {grantStatus = a} :: Grant)
+
+-- | Grant version.
+grant_version :: Lens.Lens' Grant Prelude.Text
+grant_version = Lens.lens (\Grant' {version} -> version) (\s@Grant' {} a -> s {version = a} :: Grant)
+
+-- | Granted operations.
+grant_grantedOperations :: Lens.Lens' Grant (Prelude.NonEmpty AllowedOperation)
+grant_grantedOperations = Lens.lens (\Grant' {grantedOperations} -> grantedOperations) (\s@Grant' {} a -> s {grantedOperations = a} :: Grant) Prelude.. Lens.coerced
+
+instance Data.FromJSON Grant where
+  parseJSON =
+    Data.withObject
+      "Grant"
+      ( \x ->
+          Grant'
+            Prelude.<$> (x Data..:? "StatusReason")
+            Prelude.<*> (x Data..: "GrantArn")
+            Prelude.<*> (x Data..: "GrantName")
+            Prelude.<*> (x Data..: "ParentArn")
+            Prelude.<*> (x Data..: "LicenseArn")
+            Prelude.<*> (x Data..: "GranteePrincipalArn")
+            Prelude.<*> (x Data..: "HomeRegion")
+            Prelude.<*> (x Data..: "GrantStatus")
+            Prelude.<*> (x Data..: "Version")
+            Prelude.<*> (x Data..: "GrantedOperations")
+      )
+
+instance Prelude.Hashable Grant where
+  hashWithSalt _salt Grant' {..} =
+    _salt
+      `Prelude.hashWithSalt` statusReason
+      `Prelude.hashWithSalt` grantArn
+      `Prelude.hashWithSalt` grantName
+      `Prelude.hashWithSalt` parentArn
+      `Prelude.hashWithSalt` licenseArn
+      `Prelude.hashWithSalt` granteePrincipalArn
+      `Prelude.hashWithSalt` homeRegion
+      `Prelude.hashWithSalt` grantStatus
+      `Prelude.hashWithSalt` version
+      `Prelude.hashWithSalt` grantedOperations
+
+instance Prelude.NFData Grant where
+  rnf Grant' {..} =
+    Prelude.rnf statusReason
+      `Prelude.seq` Prelude.rnf grantArn
+      `Prelude.seq` Prelude.rnf grantName
+      `Prelude.seq` Prelude.rnf parentArn
+      `Prelude.seq` Prelude.rnf licenseArn
+      `Prelude.seq` Prelude.rnf granteePrincipalArn
+      `Prelude.seq` Prelude.rnf homeRegion
+      `Prelude.seq` Prelude.rnf grantStatus
+      `Prelude.seq` Prelude.rnf version
+      `Prelude.seq` Prelude.rnf grantedOperations
diff --git a/gen/Amazonka/LicenseManager/Types/GrantStatus.hs b/gen/Amazonka/LicenseManager/Types/GrantStatus.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/GrantStatus.hs
@@ -0,0 +1,106 @@
+{-# 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.LicenseManager.Types.GrantStatus
+-- 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.LicenseManager.Types.GrantStatus
+  ( GrantStatus
+      ( ..,
+        GrantStatus_ACTIVE,
+        GrantStatus_DELETED,
+        GrantStatus_DISABLED,
+        GrantStatus_FAILED_WORKFLOW,
+        GrantStatus_PENDING_ACCEPT,
+        GrantStatus_PENDING_DELETE,
+        GrantStatus_PENDING_WORKFLOW,
+        GrantStatus_REJECTED,
+        GrantStatus_WORKFLOW_COMPLETED
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype GrantStatus = GrantStatus'
+  { fromGrantStatus ::
+      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 GrantStatus_ACTIVE :: GrantStatus
+pattern GrantStatus_ACTIVE = GrantStatus' "ACTIVE"
+
+pattern GrantStatus_DELETED :: GrantStatus
+pattern GrantStatus_DELETED = GrantStatus' "DELETED"
+
+pattern GrantStatus_DISABLED :: GrantStatus
+pattern GrantStatus_DISABLED = GrantStatus' "DISABLED"
+
+pattern GrantStatus_FAILED_WORKFLOW :: GrantStatus
+pattern GrantStatus_FAILED_WORKFLOW = GrantStatus' "FAILED_WORKFLOW"
+
+pattern GrantStatus_PENDING_ACCEPT :: GrantStatus
+pattern GrantStatus_PENDING_ACCEPT = GrantStatus' "PENDING_ACCEPT"
+
+pattern GrantStatus_PENDING_DELETE :: GrantStatus
+pattern GrantStatus_PENDING_DELETE = GrantStatus' "PENDING_DELETE"
+
+pattern GrantStatus_PENDING_WORKFLOW :: GrantStatus
+pattern GrantStatus_PENDING_WORKFLOW = GrantStatus' "PENDING_WORKFLOW"
+
+pattern GrantStatus_REJECTED :: GrantStatus
+pattern GrantStatus_REJECTED = GrantStatus' "REJECTED"
+
+pattern GrantStatus_WORKFLOW_COMPLETED :: GrantStatus
+pattern GrantStatus_WORKFLOW_COMPLETED = GrantStatus' "WORKFLOW_COMPLETED"
+
+{-# COMPLETE
+  GrantStatus_ACTIVE,
+  GrantStatus_DELETED,
+  GrantStatus_DISABLED,
+  GrantStatus_FAILED_WORKFLOW,
+  GrantStatus_PENDING_ACCEPT,
+  GrantStatus_PENDING_DELETE,
+  GrantStatus_PENDING_WORKFLOW,
+  GrantStatus_REJECTED,
+  GrantStatus_WORKFLOW_COMPLETED,
+  GrantStatus'
+  #-}
diff --git a/gen/Amazonka/LicenseManager/Types/GrantedLicense.hs b/gen/Amazonka/LicenseManager/Types/GrantedLicense.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/GrantedLicense.hs
@@ -0,0 +1,253 @@
+{-# 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.LicenseManager.Types.GrantedLicense
+-- 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.LicenseManager.Types.GrantedLicense where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types.ConsumptionConfiguration
+import Amazonka.LicenseManager.Types.DatetimeRange
+import Amazonka.LicenseManager.Types.Entitlement
+import Amazonka.LicenseManager.Types.IssuerDetails
+import Amazonka.LicenseManager.Types.LicenseStatus
+import Amazonka.LicenseManager.Types.Metadata
+import Amazonka.LicenseManager.Types.ReceivedMetadata
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes a license that is granted to a grantee.
+--
+-- /See:/ 'newGrantedLicense' smart constructor.
+data GrantedLicense = GrantedLicense'
+  { -- | Granted license beneficiary.
+    beneficiary :: Prelude.Maybe Prelude.Text,
+    -- | Configuration for consumption of the license.
+    consumptionConfiguration :: Prelude.Maybe ConsumptionConfiguration,
+    -- | Creation time of the granted license.
+    createTime :: Prelude.Maybe Prelude.Text,
+    -- | License entitlements.
+    entitlements :: Prelude.Maybe [Entitlement],
+    -- | Home Region of the granted license.
+    homeRegion :: Prelude.Maybe Prelude.Text,
+    -- | Granted license issuer.
+    issuer :: Prelude.Maybe IssuerDetails,
+    -- | Amazon Resource Name (ARN) of the license.
+    licenseArn :: Prelude.Maybe Prelude.Text,
+    -- | Granted license metadata.
+    licenseMetadata :: Prelude.Maybe [Metadata],
+    -- | License name.
+    licenseName :: Prelude.Maybe Prelude.Text,
+    -- | Product name.
+    productName :: Prelude.Maybe Prelude.Text,
+    -- | Product SKU.
+    productSKU :: Prelude.Maybe Prelude.Text,
+    -- | Granted license received metadata.
+    receivedMetadata :: Prelude.Maybe ReceivedMetadata,
+    -- | Granted license status.
+    status :: Prelude.Maybe LicenseStatus,
+    -- | Date and time range during which the granted license is valid, in
+    -- ISO8601-UTC format.
+    validity :: Prelude.Maybe DatetimeRange,
+    -- | Version of the granted license.
+    version :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GrantedLicense' 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:
+--
+-- 'beneficiary', 'grantedLicense_beneficiary' - Granted license beneficiary.
+--
+-- 'consumptionConfiguration', 'grantedLicense_consumptionConfiguration' - Configuration for consumption of the license.
+--
+-- 'createTime', 'grantedLicense_createTime' - Creation time of the granted license.
+--
+-- 'entitlements', 'grantedLicense_entitlements' - License entitlements.
+--
+-- 'homeRegion', 'grantedLicense_homeRegion' - Home Region of the granted license.
+--
+-- 'issuer', 'grantedLicense_issuer' - Granted license issuer.
+--
+-- 'licenseArn', 'grantedLicense_licenseArn' - Amazon Resource Name (ARN) of the license.
+--
+-- 'licenseMetadata', 'grantedLicense_licenseMetadata' - Granted license metadata.
+--
+-- 'licenseName', 'grantedLicense_licenseName' - License name.
+--
+-- 'productName', 'grantedLicense_productName' - Product name.
+--
+-- 'productSKU', 'grantedLicense_productSKU' - Product SKU.
+--
+-- 'receivedMetadata', 'grantedLicense_receivedMetadata' - Granted license received metadata.
+--
+-- 'status', 'grantedLicense_status' - Granted license status.
+--
+-- 'validity', 'grantedLicense_validity' - Date and time range during which the granted license is valid, in
+-- ISO8601-UTC format.
+--
+-- 'version', 'grantedLicense_version' - Version of the granted license.
+newGrantedLicense ::
+  GrantedLicense
+newGrantedLicense =
+  GrantedLicense'
+    { beneficiary = Prelude.Nothing,
+      consumptionConfiguration = Prelude.Nothing,
+      createTime = Prelude.Nothing,
+      entitlements = Prelude.Nothing,
+      homeRegion = Prelude.Nothing,
+      issuer = Prelude.Nothing,
+      licenseArn = Prelude.Nothing,
+      licenseMetadata = Prelude.Nothing,
+      licenseName = Prelude.Nothing,
+      productName = Prelude.Nothing,
+      productSKU = Prelude.Nothing,
+      receivedMetadata = Prelude.Nothing,
+      status = Prelude.Nothing,
+      validity = Prelude.Nothing,
+      version = Prelude.Nothing
+    }
+
+-- | Granted license beneficiary.
+grantedLicense_beneficiary :: Lens.Lens' GrantedLicense (Prelude.Maybe Prelude.Text)
+grantedLicense_beneficiary = Lens.lens (\GrantedLicense' {beneficiary} -> beneficiary) (\s@GrantedLicense' {} a -> s {beneficiary = a} :: GrantedLicense)
+
+-- | Configuration for consumption of the license.
+grantedLicense_consumptionConfiguration :: Lens.Lens' GrantedLicense (Prelude.Maybe ConsumptionConfiguration)
+grantedLicense_consumptionConfiguration = Lens.lens (\GrantedLicense' {consumptionConfiguration} -> consumptionConfiguration) (\s@GrantedLicense' {} a -> s {consumptionConfiguration = a} :: GrantedLicense)
+
+-- | Creation time of the granted license.
+grantedLicense_createTime :: Lens.Lens' GrantedLicense (Prelude.Maybe Prelude.Text)
+grantedLicense_createTime = Lens.lens (\GrantedLicense' {createTime} -> createTime) (\s@GrantedLicense' {} a -> s {createTime = a} :: GrantedLicense)
+
+-- | License entitlements.
+grantedLicense_entitlements :: Lens.Lens' GrantedLicense (Prelude.Maybe [Entitlement])
+grantedLicense_entitlements = Lens.lens (\GrantedLicense' {entitlements} -> entitlements) (\s@GrantedLicense' {} a -> s {entitlements = a} :: GrantedLicense) Prelude.. Lens.mapping Lens.coerced
+
+-- | Home Region of the granted license.
+grantedLicense_homeRegion :: Lens.Lens' GrantedLicense (Prelude.Maybe Prelude.Text)
+grantedLicense_homeRegion = Lens.lens (\GrantedLicense' {homeRegion} -> homeRegion) (\s@GrantedLicense' {} a -> s {homeRegion = a} :: GrantedLicense)
+
+-- | Granted license issuer.
+grantedLicense_issuer :: Lens.Lens' GrantedLicense (Prelude.Maybe IssuerDetails)
+grantedLicense_issuer = Lens.lens (\GrantedLicense' {issuer} -> issuer) (\s@GrantedLicense' {} a -> s {issuer = a} :: GrantedLicense)
+
+-- | Amazon Resource Name (ARN) of the license.
+grantedLicense_licenseArn :: Lens.Lens' GrantedLicense (Prelude.Maybe Prelude.Text)
+grantedLicense_licenseArn = Lens.lens (\GrantedLicense' {licenseArn} -> licenseArn) (\s@GrantedLicense' {} a -> s {licenseArn = a} :: GrantedLicense)
+
+-- | Granted license metadata.
+grantedLicense_licenseMetadata :: Lens.Lens' GrantedLicense (Prelude.Maybe [Metadata])
+grantedLicense_licenseMetadata = Lens.lens (\GrantedLicense' {licenseMetadata} -> licenseMetadata) (\s@GrantedLicense' {} a -> s {licenseMetadata = a} :: GrantedLicense) Prelude.. Lens.mapping Lens.coerced
+
+-- | License name.
+grantedLicense_licenseName :: Lens.Lens' GrantedLicense (Prelude.Maybe Prelude.Text)
+grantedLicense_licenseName = Lens.lens (\GrantedLicense' {licenseName} -> licenseName) (\s@GrantedLicense' {} a -> s {licenseName = a} :: GrantedLicense)
+
+-- | Product name.
+grantedLicense_productName :: Lens.Lens' GrantedLicense (Prelude.Maybe Prelude.Text)
+grantedLicense_productName = Lens.lens (\GrantedLicense' {productName} -> productName) (\s@GrantedLicense' {} a -> s {productName = a} :: GrantedLicense)
+
+-- | Product SKU.
+grantedLicense_productSKU :: Lens.Lens' GrantedLicense (Prelude.Maybe Prelude.Text)
+grantedLicense_productSKU = Lens.lens (\GrantedLicense' {productSKU} -> productSKU) (\s@GrantedLicense' {} a -> s {productSKU = a} :: GrantedLicense)
+
+-- | Granted license received metadata.
+grantedLicense_receivedMetadata :: Lens.Lens' GrantedLicense (Prelude.Maybe ReceivedMetadata)
+grantedLicense_receivedMetadata = Lens.lens (\GrantedLicense' {receivedMetadata} -> receivedMetadata) (\s@GrantedLicense' {} a -> s {receivedMetadata = a} :: GrantedLicense)
+
+-- | Granted license status.
+grantedLicense_status :: Lens.Lens' GrantedLicense (Prelude.Maybe LicenseStatus)
+grantedLicense_status = Lens.lens (\GrantedLicense' {status} -> status) (\s@GrantedLicense' {} a -> s {status = a} :: GrantedLicense)
+
+-- | Date and time range during which the granted license is valid, in
+-- ISO8601-UTC format.
+grantedLicense_validity :: Lens.Lens' GrantedLicense (Prelude.Maybe DatetimeRange)
+grantedLicense_validity = Lens.lens (\GrantedLicense' {validity} -> validity) (\s@GrantedLicense' {} a -> s {validity = a} :: GrantedLicense)
+
+-- | Version of the granted license.
+grantedLicense_version :: Lens.Lens' GrantedLicense (Prelude.Maybe Prelude.Text)
+grantedLicense_version = Lens.lens (\GrantedLicense' {version} -> version) (\s@GrantedLicense' {} a -> s {version = a} :: GrantedLicense)
+
+instance Data.FromJSON GrantedLicense where
+  parseJSON =
+    Data.withObject
+      "GrantedLicense"
+      ( \x ->
+          GrantedLicense'
+            Prelude.<$> (x Data..:? "Beneficiary")
+            Prelude.<*> (x Data..:? "ConsumptionConfiguration")
+            Prelude.<*> (x Data..:? "CreateTime")
+            Prelude.<*> (x Data..:? "Entitlements" Data..!= Prelude.mempty)
+            Prelude.<*> (x Data..:? "HomeRegion")
+            Prelude.<*> (x Data..:? "Issuer")
+            Prelude.<*> (x Data..:? "LicenseArn")
+            Prelude.<*> ( x
+                            Data..:? "LicenseMetadata"
+                            Data..!= Prelude.mempty
+                        )
+            Prelude.<*> (x Data..:? "LicenseName")
+            Prelude.<*> (x Data..:? "ProductName")
+            Prelude.<*> (x Data..:? "ProductSKU")
+            Prelude.<*> (x Data..:? "ReceivedMetadata")
+            Prelude.<*> (x Data..:? "Status")
+            Prelude.<*> (x Data..:? "Validity")
+            Prelude.<*> (x Data..:? "Version")
+      )
+
+instance Prelude.Hashable GrantedLicense where
+  hashWithSalt _salt GrantedLicense' {..} =
+    _salt
+      `Prelude.hashWithSalt` beneficiary
+      `Prelude.hashWithSalt` consumptionConfiguration
+      `Prelude.hashWithSalt` createTime
+      `Prelude.hashWithSalt` entitlements
+      `Prelude.hashWithSalt` homeRegion
+      `Prelude.hashWithSalt` issuer
+      `Prelude.hashWithSalt` licenseArn
+      `Prelude.hashWithSalt` licenseMetadata
+      `Prelude.hashWithSalt` licenseName
+      `Prelude.hashWithSalt` productName
+      `Prelude.hashWithSalt` productSKU
+      `Prelude.hashWithSalt` receivedMetadata
+      `Prelude.hashWithSalt` status
+      `Prelude.hashWithSalt` validity
+      `Prelude.hashWithSalt` version
+
+instance Prelude.NFData GrantedLicense where
+  rnf GrantedLicense' {..} =
+    Prelude.rnf beneficiary
+      `Prelude.seq` Prelude.rnf consumptionConfiguration
+      `Prelude.seq` Prelude.rnf createTime
+      `Prelude.seq` Prelude.rnf entitlements
+      `Prelude.seq` Prelude.rnf homeRegion
+      `Prelude.seq` Prelude.rnf issuer
+      `Prelude.seq` Prelude.rnf licenseArn
+      `Prelude.seq` Prelude.rnf licenseMetadata
+      `Prelude.seq` Prelude.rnf licenseName
+      `Prelude.seq` Prelude.rnf productName
+      `Prelude.seq` Prelude.rnf productSKU
+      `Prelude.seq` Prelude.rnf receivedMetadata
+      `Prelude.seq` Prelude.rnf status
+      `Prelude.seq` Prelude.rnf validity
+      `Prelude.seq` Prelude.rnf version
diff --git a/gen/Amazonka/LicenseManager/Types/InventoryFilter.hs b/gen/Amazonka/LicenseManager/Types/InventoryFilter.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/InventoryFilter.hs
@@ -0,0 +1,100 @@
+{-# 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.LicenseManager.Types.InventoryFilter
+-- 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.LicenseManager.Types.InventoryFilter where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types.InventoryFilterCondition
+import qualified Amazonka.Prelude as Prelude
+
+-- | An inventory filter.
+--
+-- /See:/ 'newInventoryFilter' smart constructor.
+data InventoryFilter = InventoryFilter'
+  { -- | Value of the filter.
+    value :: Prelude.Maybe Prelude.Text,
+    -- | Name of the filter.
+    name :: Prelude.Text,
+    -- | Condition of the filter.
+    condition :: InventoryFilterCondition
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'InventoryFilter' 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:
+--
+-- 'value', 'inventoryFilter_value' - Value of the filter.
+--
+-- 'name', 'inventoryFilter_name' - Name of the filter.
+--
+-- 'condition', 'inventoryFilter_condition' - Condition of the filter.
+newInventoryFilter ::
+  -- | 'name'
+  Prelude.Text ->
+  -- | 'condition'
+  InventoryFilterCondition ->
+  InventoryFilter
+newInventoryFilter pName_ pCondition_ =
+  InventoryFilter'
+    { value = Prelude.Nothing,
+      name = pName_,
+      condition = pCondition_
+    }
+
+-- | Value of the filter.
+inventoryFilter_value :: Lens.Lens' InventoryFilter (Prelude.Maybe Prelude.Text)
+inventoryFilter_value = Lens.lens (\InventoryFilter' {value} -> value) (\s@InventoryFilter' {} a -> s {value = a} :: InventoryFilter)
+
+-- | Name of the filter.
+inventoryFilter_name :: Lens.Lens' InventoryFilter Prelude.Text
+inventoryFilter_name = Lens.lens (\InventoryFilter' {name} -> name) (\s@InventoryFilter' {} a -> s {name = a} :: InventoryFilter)
+
+-- | Condition of the filter.
+inventoryFilter_condition :: Lens.Lens' InventoryFilter InventoryFilterCondition
+inventoryFilter_condition = Lens.lens (\InventoryFilter' {condition} -> condition) (\s@InventoryFilter' {} a -> s {condition = a} :: InventoryFilter)
+
+instance Prelude.Hashable InventoryFilter where
+  hashWithSalt _salt InventoryFilter' {..} =
+    _salt
+      `Prelude.hashWithSalt` value
+      `Prelude.hashWithSalt` name
+      `Prelude.hashWithSalt` condition
+
+instance Prelude.NFData InventoryFilter where
+  rnf InventoryFilter' {..} =
+    Prelude.rnf value
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf condition
+
+instance Data.ToJSON InventoryFilter where
+  toJSON InventoryFilter' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("Value" Data..=) Prelude.<$> value,
+            Prelude.Just ("Name" Data..= name),
+            Prelude.Just ("Condition" Data..= condition)
+          ]
+      )
diff --git a/gen/Amazonka/LicenseManager/Types/InventoryFilterCondition.hs b/gen/Amazonka/LicenseManager/Types/InventoryFilterCondition.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/InventoryFilterCondition.hs
@@ -0,0 +1,81 @@
+{-# 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.LicenseManager.Types.InventoryFilterCondition
+-- 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.LicenseManager.Types.InventoryFilterCondition
+  ( InventoryFilterCondition
+      ( ..,
+        InventoryFilterCondition_BEGINS_WITH,
+        InventoryFilterCondition_CONTAINS,
+        InventoryFilterCondition_EQUALS,
+        InventoryFilterCondition_NOT_EQUALS
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype InventoryFilterCondition = InventoryFilterCondition'
+  { fromInventoryFilterCondition ::
+      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 InventoryFilterCondition_BEGINS_WITH :: InventoryFilterCondition
+pattern InventoryFilterCondition_BEGINS_WITH = InventoryFilterCondition' "BEGINS_WITH"
+
+pattern InventoryFilterCondition_CONTAINS :: InventoryFilterCondition
+pattern InventoryFilterCondition_CONTAINS = InventoryFilterCondition' "CONTAINS"
+
+pattern InventoryFilterCondition_EQUALS :: InventoryFilterCondition
+pattern InventoryFilterCondition_EQUALS = InventoryFilterCondition' "EQUALS"
+
+pattern InventoryFilterCondition_NOT_EQUALS :: InventoryFilterCondition
+pattern InventoryFilterCondition_NOT_EQUALS = InventoryFilterCondition' "NOT_EQUALS"
+
+{-# COMPLETE
+  InventoryFilterCondition_BEGINS_WITH,
+  InventoryFilterCondition_CONTAINS,
+  InventoryFilterCondition_EQUALS,
+  InventoryFilterCondition_NOT_EQUALS,
+  InventoryFilterCondition'
+  #-}
diff --git a/gen/Amazonka/LicenseManager/Types/Issuer.hs b/gen/Amazonka/LicenseManager/Types/Issuer.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/Issuer.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.LicenseManager.Types.Issuer
+-- 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.LicenseManager.Types.Issuer 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
+
+-- | Details about the issuer of a license.
+--
+-- /See:/ 'newIssuer' smart constructor.
+data Issuer = Issuer'
+  { -- | Asymmetric KMS key from Key Management Service. The KMS key must have a
+    -- key usage of sign and verify, and support the RSASSA-PSS SHA-256 signing
+    -- algorithm.
+    signKey :: Prelude.Maybe Prelude.Text,
+    -- | Issuer name.
+    name :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'Issuer' 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:
+--
+-- 'signKey', 'issuer_signKey' - Asymmetric KMS key from Key Management Service. The KMS key must have a
+-- key usage of sign and verify, and support the RSASSA-PSS SHA-256 signing
+-- algorithm.
+--
+-- 'name', 'issuer_name' - Issuer name.
+newIssuer ::
+  -- | 'name'
+  Prelude.Text ->
+  Issuer
+newIssuer pName_ =
+  Issuer' {signKey = Prelude.Nothing, name = pName_}
+
+-- | Asymmetric KMS key from Key Management Service. The KMS key must have a
+-- key usage of sign and verify, and support the RSASSA-PSS SHA-256 signing
+-- algorithm.
+issuer_signKey :: Lens.Lens' Issuer (Prelude.Maybe Prelude.Text)
+issuer_signKey = Lens.lens (\Issuer' {signKey} -> signKey) (\s@Issuer' {} a -> s {signKey = a} :: Issuer)
+
+-- | Issuer name.
+issuer_name :: Lens.Lens' Issuer Prelude.Text
+issuer_name = Lens.lens (\Issuer' {name} -> name) (\s@Issuer' {} a -> s {name = a} :: Issuer)
+
+instance Prelude.Hashable Issuer where
+  hashWithSalt _salt Issuer' {..} =
+    _salt
+      `Prelude.hashWithSalt` signKey
+      `Prelude.hashWithSalt` name
+
+instance Prelude.NFData Issuer where
+  rnf Issuer' {..} =
+    Prelude.rnf signKey `Prelude.seq` Prelude.rnf name
+
+instance Data.ToJSON Issuer where
+  toJSON Issuer' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("SignKey" Data..=) Prelude.<$> signKey,
+            Prelude.Just ("Name" Data..= name)
+          ]
+      )
diff --git a/gen/Amazonka/LicenseManager/Types/IssuerDetails.hs b/gen/Amazonka/LicenseManager/Types/IssuerDetails.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/IssuerDetails.hs
@@ -0,0 +1,102 @@
+{-# 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.LicenseManager.Types.IssuerDetails
+-- 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.LicenseManager.Types.IssuerDetails 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
+
+-- | Details associated with the issuer of a license.
+--
+-- /See:/ 'newIssuerDetails' smart constructor.
+data IssuerDetails = IssuerDetails'
+  { -- | Issuer key fingerprint.
+    keyFingerprint :: Prelude.Maybe Prelude.Text,
+    -- | Issuer name.
+    name :: Prelude.Maybe Prelude.Text,
+    -- | Asymmetric KMS key from Key Management Service. The KMS key must have a
+    -- key usage of sign and verify, and support the RSASSA-PSS SHA-256 signing
+    -- algorithm.
+    signKey :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'IssuerDetails' 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:
+--
+-- 'keyFingerprint', 'issuerDetails_keyFingerprint' - Issuer key fingerprint.
+--
+-- 'name', 'issuerDetails_name' - Issuer name.
+--
+-- 'signKey', 'issuerDetails_signKey' - Asymmetric KMS key from Key Management Service. The KMS key must have a
+-- key usage of sign and verify, and support the RSASSA-PSS SHA-256 signing
+-- algorithm.
+newIssuerDetails ::
+  IssuerDetails
+newIssuerDetails =
+  IssuerDetails'
+    { keyFingerprint = Prelude.Nothing,
+      name = Prelude.Nothing,
+      signKey = Prelude.Nothing
+    }
+
+-- | Issuer key fingerprint.
+issuerDetails_keyFingerprint :: Lens.Lens' IssuerDetails (Prelude.Maybe Prelude.Text)
+issuerDetails_keyFingerprint = Lens.lens (\IssuerDetails' {keyFingerprint} -> keyFingerprint) (\s@IssuerDetails' {} a -> s {keyFingerprint = a} :: IssuerDetails)
+
+-- | Issuer name.
+issuerDetails_name :: Lens.Lens' IssuerDetails (Prelude.Maybe Prelude.Text)
+issuerDetails_name = Lens.lens (\IssuerDetails' {name} -> name) (\s@IssuerDetails' {} a -> s {name = a} :: IssuerDetails)
+
+-- | Asymmetric KMS key from Key Management Service. The KMS key must have a
+-- key usage of sign and verify, and support the RSASSA-PSS SHA-256 signing
+-- algorithm.
+issuerDetails_signKey :: Lens.Lens' IssuerDetails (Prelude.Maybe Prelude.Text)
+issuerDetails_signKey = Lens.lens (\IssuerDetails' {signKey} -> signKey) (\s@IssuerDetails' {} a -> s {signKey = a} :: IssuerDetails)
+
+instance Data.FromJSON IssuerDetails where
+  parseJSON =
+    Data.withObject
+      "IssuerDetails"
+      ( \x ->
+          IssuerDetails'
+            Prelude.<$> (x Data..:? "KeyFingerprint")
+            Prelude.<*> (x Data..:? "Name")
+            Prelude.<*> (x Data..:? "SignKey")
+      )
+
+instance Prelude.Hashable IssuerDetails where
+  hashWithSalt _salt IssuerDetails' {..} =
+    _salt
+      `Prelude.hashWithSalt` keyFingerprint
+      `Prelude.hashWithSalt` name
+      `Prelude.hashWithSalt` signKey
+
+instance Prelude.NFData IssuerDetails where
+  rnf IssuerDetails' {..} =
+    Prelude.rnf keyFingerprint
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf signKey
diff --git a/gen/Amazonka/LicenseManager/Types/License.hs b/gen/Amazonka/LicenseManager/Types/License.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/License.hs
@@ -0,0 +1,240 @@
+{-# 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.LicenseManager.Types.License
+-- 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.LicenseManager.Types.License where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types.ConsumptionConfiguration
+import Amazonka.LicenseManager.Types.DatetimeRange
+import Amazonka.LicenseManager.Types.Entitlement
+import Amazonka.LicenseManager.Types.IssuerDetails
+import Amazonka.LicenseManager.Types.LicenseStatus
+import Amazonka.LicenseManager.Types.Metadata
+import qualified Amazonka.Prelude as Prelude
+
+-- | Software license that is managed in License Manager.
+--
+-- /See:/ 'newLicense' smart constructor.
+data License = License'
+  { -- | License beneficiary.
+    beneficiary :: Prelude.Maybe Prelude.Text,
+    -- | Configuration for consumption of the license.
+    consumptionConfiguration :: Prelude.Maybe ConsumptionConfiguration,
+    -- | License creation time.
+    createTime :: Prelude.Maybe Prelude.Text,
+    -- | License entitlements.
+    entitlements :: Prelude.Maybe [Entitlement],
+    -- | Home Region of the license.
+    homeRegion :: Prelude.Maybe Prelude.Text,
+    -- | License issuer.
+    issuer :: Prelude.Maybe IssuerDetails,
+    -- | Amazon Resource Name (ARN) of the license.
+    licenseArn :: Prelude.Maybe Prelude.Text,
+    -- | License metadata.
+    licenseMetadata :: Prelude.Maybe [Metadata],
+    -- | License name.
+    licenseName :: Prelude.Maybe Prelude.Text,
+    -- | Product name.
+    productName :: Prelude.Maybe Prelude.Text,
+    -- | Product SKU.
+    productSKU :: Prelude.Maybe Prelude.Text,
+    -- | License status.
+    status :: Prelude.Maybe LicenseStatus,
+    -- | Date and time range during which the license is valid, in ISO8601-UTC
+    -- format.
+    validity :: Prelude.Maybe DatetimeRange,
+    -- | License version.
+    version :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'License' 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:
+--
+-- 'beneficiary', 'license_beneficiary' - License beneficiary.
+--
+-- 'consumptionConfiguration', 'license_consumptionConfiguration' - Configuration for consumption of the license.
+--
+-- 'createTime', 'license_createTime' - License creation time.
+--
+-- 'entitlements', 'license_entitlements' - License entitlements.
+--
+-- 'homeRegion', 'license_homeRegion' - Home Region of the license.
+--
+-- 'issuer', 'license_issuer' - License issuer.
+--
+-- 'licenseArn', 'license_licenseArn' - Amazon Resource Name (ARN) of the license.
+--
+-- 'licenseMetadata', 'license_licenseMetadata' - License metadata.
+--
+-- 'licenseName', 'license_licenseName' - License name.
+--
+-- 'productName', 'license_productName' - Product name.
+--
+-- 'productSKU', 'license_productSKU' - Product SKU.
+--
+-- 'status', 'license_status' - License status.
+--
+-- 'validity', 'license_validity' - Date and time range during which the license is valid, in ISO8601-UTC
+-- format.
+--
+-- 'version', 'license_version' - License version.
+newLicense ::
+  License
+newLicense =
+  License'
+    { beneficiary = Prelude.Nothing,
+      consumptionConfiguration = Prelude.Nothing,
+      createTime = Prelude.Nothing,
+      entitlements = Prelude.Nothing,
+      homeRegion = Prelude.Nothing,
+      issuer = Prelude.Nothing,
+      licenseArn = Prelude.Nothing,
+      licenseMetadata = Prelude.Nothing,
+      licenseName = Prelude.Nothing,
+      productName = Prelude.Nothing,
+      productSKU = Prelude.Nothing,
+      status = Prelude.Nothing,
+      validity = Prelude.Nothing,
+      version = Prelude.Nothing
+    }
+
+-- | License beneficiary.
+license_beneficiary :: Lens.Lens' License (Prelude.Maybe Prelude.Text)
+license_beneficiary = Lens.lens (\License' {beneficiary} -> beneficiary) (\s@License' {} a -> s {beneficiary = a} :: License)
+
+-- | Configuration for consumption of the license.
+license_consumptionConfiguration :: Lens.Lens' License (Prelude.Maybe ConsumptionConfiguration)
+license_consumptionConfiguration = Lens.lens (\License' {consumptionConfiguration} -> consumptionConfiguration) (\s@License' {} a -> s {consumptionConfiguration = a} :: License)
+
+-- | License creation time.
+license_createTime :: Lens.Lens' License (Prelude.Maybe Prelude.Text)
+license_createTime = Lens.lens (\License' {createTime} -> createTime) (\s@License' {} a -> s {createTime = a} :: License)
+
+-- | License entitlements.
+license_entitlements :: Lens.Lens' License (Prelude.Maybe [Entitlement])
+license_entitlements = Lens.lens (\License' {entitlements} -> entitlements) (\s@License' {} a -> s {entitlements = a} :: License) Prelude.. Lens.mapping Lens.coerced
+
+-- | Home Region of the license.
+license_homeRegion :: Lens.Lens' License (Prelude.Maybe Prelude.Text)
+license_homeRegion = Lens.lens (\License' {homeRegion} -> homeRegion) (\s@License' {} a -> s {homeRegion = a} :: License)
+
+-- | License issuer.
+license_issuer :: Lens.Lens' License (Prelude.Maybe IssuerDetails)
+license_issuer = Lens.lens (\License' {issuer} -> issuer) (\s@License' {} a -> s {issuer = a} :: License)
+
+-- | Amazon Resource Name (ARN) of the license.
+license_licenseArn :: Lens.Lens' License (Prelude.Maybe Prelude.Text)
+license_licenseArn = Lens.lens (\License' {licenseArn} -> licenseArn) (\s@License' {} a -> s {licenseArn = a} :: License)
+
+-- | License metadata.
+license_licenseMetadata :: Lens.Lens' License (Prelude.Maybe [Metadata])
+license_licenseMetadata = Lens.lens (\License' {licenseMetadata} -> licenseMetadata) (\s@License' {} a -> s {licenseMetadata = a} :: License) Prelude.. Lens.mapping Lens.coerced
+
+-- | License name.
+license_licenseName :: Lens.Lens' License (Prelude.Maybe Prelude.Text)
+license_licenseName = Lens.lens (\License' {licenseName} -> licenseName) (\s@License' {} a -> s {licenseName = a} :: License)
+
+-- | Product name.
+license_productName :: Lens.Lens' License (Prelude.Maybe Prelude.Text)
+license_productName = Lens.lens (\License' {productName} -> productName) (\s@License' {} a -> s {productName = a} :: License)
+
+-- | Product SKU.
+license_productSKU :: Lens.Lens' License (Prelude.Maybe Prelude.Text)
+license_productSKU = Lens.lens (\License' {productSKU} -> productSKU) (\s@License' {} a -> s {productSKU = a} :: License)
+
+-- | License status.
+license_status :: Lens.Lens' License (Prelude.Maybe LicenseStatus)
+license_status = Lens.lens (\License' {status} -> status) (\s@License' {} a -> s {status = a} :: License)
+
+-- | Date and time range during which the license is valid, in ISO8601-UTC
+-- format.
+license_validity :: Lens.Lens' License (Prelude.Maybe DatetimeRange)
+license_validity = Lens.lens (\License' {validity} -> validity) (\s@License' {} a -> s {validity = a} :: License)
+
+-- | License version.
+license_version :: Lens.Lens' License (Prelude.Maybe Prelude.Text)
+license_version = Lens.lens (\License' {version} -> version) (\s@License' {} a -> s {version = a} :: License)
+
+instance Data.FromJSON License where
+  parseJSON =
+    Data.withObject
+      "License"
+      ( \x ->
+          License'
+            Prelude.<$> (x Data..:? "Beneficiary")
+            Prelude.<*> (x Data..:? "ConsumptionConfiguration")
+            Prelude.<*> (x Data..:? "CreateTime")
+            Prelude.<*> (x Data..:? "Entitlements" Data..!= Prelude.mempty)
+            Prelude.<*> (x Data..:? "HomeRegion")
+            Prelude.<*> (x Data..:? "Issuer")
+            Prelude.<*> (x Data..:? "LicenseArn")
+            Prelude.<*> ( x
+                            Data..:? "LicenseMetadata"
+                            Data..!= Prelude.mempty
+                        )
+            Prelude.<*> (x Data..:? "LicenseName")
+            Prelude.<*> (x Data..:? "ProductName")
+            Prelude.<*> (x Data..:? "ProductSKU")
+            Prelude.<*> (x Data..:? "Status")
+            Prelude.<*> (x Data..:? "Validity")
+            Prelude.<*> (x Data..:? "Version")
+      )
+
+instance Prelude.Hashable License where
+  hashWithSalt _salt License' {..} =
+    _salt
+      `Prelude.hashWithSalt` beneficiary
+      `Prelude.hashWithSalt` consumptionConfiguration
+      `Prelude.hashWithSalt` createTime
+      `Prelude.hashWithSalt` entitlements
+      `Prelude.hashWithSalt` homeRegion
+      `Prelude.hashWithSalt` issuer
+      `Prelude.hashWithSalt` licenseArn
+      `Prelude.hashWithSalt` licenseMetadata
+      `Prelude.hashWithSalt` licenseName
+      `Prelude.hashWithSalt` productName
+      `Prelude.hashWithSalt` productSKU
+      `Prelude.hashWithSalt` status
+      `Prelude.hashWithSalt` validity
+      `Prelude.hashWithSalt` version
+
+instance Prelude.NFData License where
+  rnf License' {..} =
+    Prelude.rnf beneficiary
+      `Prelude.seq` Prelude.rnf consumptionConfiguration
+      `Prelude.seq` Prelude.rnf createTime
+      `Prelude.seq` Prelude.rnf entitlements
+      `Prelude.seq` Prelude.rnf homeRegion
+      `Prelude.seq` Prelude.rnf issuer
+      `Prelude.seq` Prelude.rnf licenseArn
+      `Prelude.seq` Prelude.rnf licenseMetadata
+      `Prelude.seq` Prelude.rnf licenseName
+      `Prelude.seq` Prelude.rnf productName
+      `Prelude.seq` Prelude.rnf productSKU
+      `Prelude.seq` Prelude.rnf status
+      `Prelude.seq` Prelude.rnf validity
+      `Prelude.seq` Prelude.rnf version
diff --git a/gen/Amazonka/LicenseManager/Types/LicenseConfiguration.hs b/gen/Amazonka/LicenseManager/Types/LicenseConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/LicenseConfiguration.hs
@@ -0,0 +1,273 @@
+{-# 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.LicenseManager.Types.LicenseConfiguration
+-- 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.LicenseManager.Types.LicenseConfiguration where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types.AutomatedDiscoveryInformation
+import Amazonka.LicenseManager.Types.ConsumedLicenseSummary
+import Amazonka.LicenseManager.Types.LicenseCountingType
+import Amazonka.LicenseManager.Types.ManagedResourceSummary
+import Amazonka.LicenseManager.Types.ProductInformation
+import qualified Amazonka.Prelude as Prelude
+
+-- | A license configuration is an abstraction of a customer license
+-- agreement that can be consumed and enforced by License Manager.
+-- Components include specifications for the license type (licensing by
+-- instance, socket, CPU, or vCPU), allowed tenancy (shared tenancy,
+-- Dedicated Instance, Dedicated Host, or all of these), host affinity (how
+-- long a VM must be associated with a host), and the number of licenses
+-- purchased and used.
+--
+-- /See:/ 'newLicenseConfiguration' smart constructor.
+data LicenseConfiguration = LicenseConfiguration'
+  { -- | Automated discovery information.
+    automatedDiscoveryInformation :: Prelude.Maybe AutomatedDiscoveryInformation,
+    -- | Summaries for licenses consumed by various resources.
+    consumedLicenseSummaryList :: Prelude.Maybe [ConsumedLicenseSummary],
+    -- | Number of licenses consumed.
+    consumedLicenses :: Prelude.Maybe Prelude.Integer,
+    -- | Description of the license configuration.
+    description :: Prelude.Maybe Prelude.Text,
+    -- | When true, disassociates a resource when software is uninstalled.
+    disassociateWhenNotFound :: Prelude.Maybe Prelude.Bool,
+    -- | Amazon Resource Name (ARN) of the license configuration.
+    licenseConfigurationArn :: Prelude.Maybe Prelude.Text,
+    -- | Unique ID of the license configuration.
+    licenseConfigurationId :: Prelude.Maybe Prelude.Text,
+    -- | Number of licenses managed by the license configuration.
+    licenseCount :: Prelude.Maybe Prelude.Integer,
+    -- | Number of available licenses as a hard limit.
+    licenseCountHardLimit :: Prelude.Maybe Prelude.Bool,
+    -- | Dimension to use to track the license inventory.
+    licenseCountingType :: Prelude.Maybe LicenseCountingType,
+    -- | License rules.
+    licenseRules :: Prelude.Maybe [Prelude.Text],
+    -- | Summaries for managed resources.
+    managedResourceSummaryList :: Prelude.Maybe [ManagedResourceSummary],
+    -- | Name of the license configuration.
+    name :: Prelude.Maybe Prelude.Text,
+    -- | Account ID of the license configuration\'s owner.
+    ownerAccountId :: Prelude.Maybe Prelude.Text,
+    -- | Product information.
+    productInformationList :: Prelude.Maybe [ProductInformation],
+    -- | Status of the license configuration.
+    status :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'LicenseConfiguration' 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:
+--
+-- 'automatedDiscoveryInformation', 'licenseConfiguration_automatedDiscoveryInformation' - Automated discovery information.
+--
+-- 'consumedLicenseSummaryList', 'licenseConfiguration_consumedLicenseSummaryList' - Summaries for licenses consumed by various resources.
+--
+-- 'consumedLicenses', 'licenseConfiguration_consumedLicenses' - Number of licenses consumed.
+--
+-- 'description', 'licenseConfiguration_description' - Description of the license configuration.
+--
+-- 'disassociateWhenNotFound', 'licenseConfiguration_disassociateWhenNotFound' - When true, disassociates a resource when software is uninstalled.
+--
+-- 'licenseConfigurationArn', 'licenseConfiguration_licenseConfigurationArn' - Amazon Resource Name (ARN) of the license configuration.
+--
+-- 'licenseConfigurationId', 'licenseConfiguration_licenseConfigurationId' - Unique ID of the license configuration.
+--
+-- 'licenseCount', 'licenseConfiguration_licenseCount' - Number of licenses managed by the license configuration.
+--
+-- 'licenseCountHardLimit', 'licenseConfiguration_licenseCountHardLimit' - Number of available licenses as a hard limit.
+--
+-- 'licenseCountingType', 'licenseConfiguration_licenseCountingType' - Dimension to use to track the license inventory.
+--
+-- 'licenseRules', 'licenseConfiguration_licenseRules' - License rules.
+--
+-- 'managedResourceSummaryList', 'licenseConfiguration_managedResourceSummaryList' - Summaries for managed resources.
+--
+-- 'name', 'licenseConfiguration_name' - Name of the license configuration.
+--
+-- 'ownerAccountId', 'licenseConfiguration_ownerAccountId' - Account ID of the license configuration\'s owner.
+--
+-- 'productInformationList', 'licenseConfiguration_productInformationList' - Product information.
+--
+-- 'status', 'licenseConfiguration_status' - Status of the license configuration.
+newLicenseConfiguration ::
+  LicenseConfiguration
+newLicenseConfiguration =
+  LicenseConfiguration'
+    { automatedDiscoveryInformation =
+        Prelude.Nothing,
+      consumedLicenseSummaryList = Prelude.Nothing,
+      consumedLicenses = Prelude.Nothing,
+      description = Prelude.Nothing,
+      disassociateWhenNotFound = Prelude.Nothing,
+      licenseConfigurationArn = Prelude.Nothing,
+      licenseConfigurationId = Prelude.Nothing,
+      licenseCount = Prelude.Nothing,
+      licenseCountHardLimit = Prelude.Nothing,
+      licenseCountingType = Prelude.Nothing,
+      licenseRules = Prelude.Nothing,
+      managedResourceSummaryList = Prelude.Nothing,
+      name = Prelude.Nothing,
+      ownerAccountId = Prelude.Nothing,
+      productInformationList = Prelude.Nothing,
+      status = Prelude.Nothing
+    }
+
+-- | Automated discovery information.
+licenseConfiguration_automatedDiscoveryInformation :: Lens.Lens' LicenseConfiguration (Prelude.Maybe AutomatedDiscoveryInformation)
+licenseConfiguration_automatedDiscoveryInformation = Lens.lens (\LicenseConfiguration' {automatedDiscoveryInformation} -> automatedDiscoveryInformation) (\s@LicenseConfiguration' {} a -> s {automatedDiscoveryInformation = a} :: LicenseConfiguration)
+
+-- | Summaries for licenses consumed by various resources.
+licenseConfiguration_consumedLicenseSummaryList :: Lens.Lens' LicenseConfiguration (Prelude.Maybe [ConsumedLicenseSummary])
+licenseConfiguration_consumedLicenseSummaryList = Lens.lens (\LicenseConfiguration' {consumedLicenseSummaryList} -> consumedLicenseSummaryList) (\s@LicenseConfiguration' {} a -> s {consumedLicenseSummaryList = a} :: LicenseConfiguration) Prelude.. Lens.mapping Lens.coerced
+
+-- | Number of licenses consumed.
+licenseConfiguration_consumedLicenses :: Lens.Lens' LicenseConfiguration (Prelude.Maybe Prelude.Integer)
+licenseConfiguration_consumedLicenses = Lens.lens (\LicenseConfiguration' {consumedLicenses} -> consumedLicenses) (\s@LicenseConfiguration' {} a -> s {consumedLicenses = a} :: LicenseConfiguration)
+
+-- | Description of the license configuration.
+licenseConfiguration_description :: Lens.Lens' LicenseConfiguration (Prelude.Maybe Prelude.Text)
+licenseConfiguration_description = Lens.lens (\LicenseConfiguration' {description} -> description) (\s@LicenseConfiguration' {} a -> s {description = a} :: LicenseConfiguration)
+
+-- | When true, disassociates a resource when software is uninstalled.
+licenseConfiguration_disassociateWhenNotFound :: Lens.Lens' LicenseConfiguration (Prelude.Maybe Prelude.Bool)
+licenseConfiguration_disassociateWhenNotFound = Lens.lens (\LicenseConfiguration' {disassociateWhenNotFound} -> disassociateWhenNotFound) (\s@LicenseConfiguration' {} a -> s {disassociateWhenNotFound = a} :: LicenseConfiguration)
+
+-- | Amazon Resource Name (ARN) of the license configuration.
+licenseConfiguration_licenseConfigurationArn :: Lens.Lens' LicenseConfiguration (Prelude.Maybe Prelude.Text)
+licenseConfiguration_licenseConfigurationArn = Lens.lens (\LicenseConfiguration' {licenseConfigurationArn} -> licenseConfigurationArn) (\s@LicenseConfiguration' {} a -> s {licenseConfigurationArn = a} :: LicenseConfiguration)
+
+-- | Unique ID of the license configuration.
+licenseConfiguration_licenseConfigurationId :: Lens.Lens' LicenseConfiguration (Prelude.Maybe Prelude.Text)
+licenseConfiguration_licenseConfigurationId = Lens.lens (\LicenseConfiguration' {licenseConfigurationId} -> licenseConfigurationId) (\s@LicenseConfiguration' {} a -> s {licenseConfigurationId = a} :: LicenseConfiguration)
+
+-- | Number of licenses managed by the license configuration.
+licenseConfiguration_licenseCount :: Lens.Lens' LicenseConfiguration (Prelude.Maybe Prelude.Integer)
+licenseConfiguration_licenseCount = Lens.lens (\LicenseConfiguration' {licenseCount} -> licenseCount) (\s@LicenseConfiguration' {} a -> s {licenseCount = a} :: LicenseConfiguration)
+
+-- | Number of available licenses as a hard limit.
+licenseConfiguration_licenseCountHardLimit :: Lens.Lens' LicenseConfiguration (Prelude.Maybe Prelude.Bool)
+licenseConfiguration_licenseCountHardLimit = Lens.lens (\LicenseConfiguration' {licenseCountHardLimit} -> licenseCountHardLimit) (\s@LicenseConfiguration' {} a -> s {licenseCountHardLimit = a} :: LicenseConfiguration)
+
+-- | Dimension to use to track the license inventory.
+licenseConfiguration_licenseCountingType :: Lens.Lens' LicenseConfiguration (Prelude.Maybe LicenseCountingType)
+licenseConfiguration_licenseCountingType = Lens.lens (\LicenseConfiguration' {licenseCountingType} -> licenseCountingType) (\s@LicenseConfiguration' {} a -> s {licenseCountingType = a} :: LicenseConfiguration)
+
+-- | License rules.
+licenseConfiguration_licenseRules :: Lens.Lens' LicenseConfiguration (Prelude.Maybe [Prelude.Text])
+licenseConfiguration_licenseRules = Lens.lens (\LicenseConfiguration' {licenseRules} -> licenseRules) (\s@LicenseConfiguration' {} a -> s {licenseRules = a} :: LicenseConfiguration) Prelude.. Lens.mapping Lens.coerced
+
+-- | Summaries for managed resources.
+licenseConfiguration_managedResourceSummaryList :: Lens.Lens' LicenseConfiguration (Prelude.Maybe [ManagedResourceSummary])
+licenseConfiguration_managedResourceSummaryList = Lens.lens (\LicenseConfiguration' {managedResourceSummaryList} -> managedResourceSummaryList) (\s@LicenseConfiguration' {} a -> s {managedResourceSummaryList = a} :: LicenseConfiguration) Prelude.. Lens.mapping Lens.coerced
+
+-- | Name of the license configuration.
+licenseConfiguration_name :: Lens.Lens' LicenseConfiguration (Prelude.Maybe Prelude.Text)
+licenseConfiguration_name = Lens.lens (\LicenseConfiguration' {name} -> name) (\s@LicenseConfiguration' {} a -> s {name = a} :: LicenseConfiguration)
+
+-- | Account ID of the license configuration\'s owner.
+licenseConfiguration_ownerAccountId :: Lens.Lens' LicenseConfiguration (Prelude.Maybe Prelude.Text)
+licenseConfiguration_ownerAccountId = Lens.lens (\LicenseConfiguration' {ownerAccountId} -> ownerAccountId) (\s@LicenseConfiguration' {} a -> s {ownerAccountId = a} :: LicenseConfiguration)
+
+-- | Product information.
+licenseConfiguration_productInformationList :: Lens.Lens' LicenseConfiguration (Prelude.Maybe [ProductInformation])
+licenseConfiguration_productInformationList = Lens.lens (\LicenseConfiguration' {productInformationList} -> productInformationList) (\s@LicenseConfiguration' {} a -> s {productInformationList = a} :: LicenseConfiguration) Prelude.. Lens.mapping Lens.coerced
+
+-- | Status of the license configuration.
+licenseConfiguration_status :: Lens.Lens' LicenseConfiguration (Prelude.Maybe Prelude.Text)
+licenseConfiguration_status = Lens.lens (\LicenseConfiguration' {status} -> status) (\s@LicenseConfiguration' {} a -> s {status = a} :: LicenseConfiguration)
+
+instance Data.FromJSON LicenseConfiguration where
+  parseJSON =
+    Data.withObject
+      "LicenseConfiguration"
+      ( \x ->
+          LicenseConfiguration'
+            Prelude.<$> (x Data..:? "AutomatedDiscoveryInformation")
+            Prelude.<*> ( x
+                            Data..:? "ConsumedLicenseSummaryList"
+                            Data..!= Prelude.mempty
+                        )
+            Prelude.<*> (x Data..:? "ConsumedLicenses")
+            Prelude.<*> (x Data..:? "Description")
+            Prelude.<*> (x Data..:? "DisassociateWhenNotFound")
+            Prelude.<*> (x Data..:? "LicenseConfigurationArn")
+            Prelude.<*> (x Data..:? "LicenseConfigurationId")
+            Prelude.<*> (x Data..:? "LicenseCount")
+            Prelude.<*> (x Data..:? "LicenseCountHardLimit")
+            Prelude.<*> (x Data..:? "LicenseCountingType")
+            Prelude.<*> (x Data..:? "LicenseRules" Data..!= Prelude.mempty)
+            Prelude.<*> ( x
+                            Data..:? "ManagedResourceSummaryList"
+                            Data..!= Prelude.mempty
+                        )
+            Prelude.<*> (x Data..:? "Name")
+            Prelude.<*> (x Data..:? "OwnerAccountId")
+            Prelude.<*> ( x
+                            Data..:? "ProductInformationList"
+                            Data..!= Prelude.mempty
+                        )
+            Prelude.<*> (x Data..:? "Status")
+      )
+
+instance Prelude.Hashable LicenseConfiguration where
+  hashWithSalt _salt LicenseConfiguration' {..} =
+    _salt
+      `Prelude.hashWithSalt` automatedDiscoveryInformation
+      `Prelude.hashWithSalt` consumedLicenseSummaryList
+      `Prelude.hashWithSalt` consumedLicenses
+      `Prelude.hashWithSalt` description
+      `Prelude.hashWithSalt` disassociateWhenNotFound
+      `Prelude.hashWithSalt` licenseConfigurationArn
+      `Prelude.hashWithSalt` licenseConfigurationId
+      `Prelude.hashWithSalt` licenseCount
+      `Prelude.hashWithSalt` licenseCountHardLimit
+      `Prelude.hashWithSalt` licenseCountingType
+      `Prelude.hashWithSalt` licenseRules
+      `Prelude.hashWithSalt` managedResourceSummaryList
+      `Prelude.hashWithSalt` name
+      `Prelude.hashWithSalt` ownerAccountId
+      `Prelude.hashWithSalt` productInformationList
+      `Prelude.hashWithSalt` status
+
+instance Prelude.NFData LicenseConfiguration where
+  rnf LicenseConfiguration' {..} =
+    Prelude.rnf automatedDiscoveryInformation
+      `Prelude.seq` Prelude.rnf consumedLicenseSummaryList
+      `Prelude.seq` Prelude.rnf consumedLicenses
+      `Prelude.seq` Prelude.rnf description
+      `Prelude.seq` Prelude.rnf disassociateWhenNotFound
+      `Prelude.seq` Prelude.rnf licenseConfigurationArn
+      `Prelude.seq` Prelude.rnf licenseConfigurationId
+      `Prelude.seq` Prelude.rnf licenseCount
+      `Prelude.seq` Prelude.rnf licenseCountHardLimit
+      `Prelude.seq` Prelude.rnf licenseCountingType
+      `Prelude.seq` Prelude.rnf licenseRules
+      `Prelude.seq` Prelude.rnf managedResourceSummaryList
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf ownerAccountId
+      `Prelude.seq` Prelude.rnf productInformationList
+      `Prelude.seq` Prelude.rnf status
diff --git a/gen/Amazonka/LicenseManager/Types/LicenseConfigurationAssociation.hs b/gen/Amazonka/LicenseManager/Types/LicenseConfigurationAssociation.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/LicenseConfigurationAssociation.hs
@@ -0,0 +1,136 @@
+{-# 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.LicenseManager.Types.LicenseConfigurationAssociation
+-- 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.LicenseManager.Types.LicenseConfigurationAssociation where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types.ResourceType
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes an association with a license configuration.
+--
+-- /See:/ 'newLicenseConfigurationAssociation' smart constructor.
+data LicenseConfigurationAssociation = LicenseConfigurationAssociation'
+  { -- | Scope of AMI associations. The possible value is @cross-account@.
+    amiAssociationScope :: Prelude.Maybe Prelude.Text,
+    -- | Time when the license configuration was associated with the resource.
+    associationTime :: Prelude.Maybe Data.POSIX,
+    -- | Amazon Resource Name (ARN) of the resource.
+    resourceArn :: Prelude.Maybe Prelude.Text,
+    -- | ID of the Amazon Web Services account that owns the resource consuming
+    -- licenses.
+    resourceOwnerId :: Prelude.Maybe Prelude.Text,
+    -- | Type of server resource.
+    resourceType :: Prelude.Maybe ResourceType
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'LicenseConfigurationAssociation' 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:
+--
+-- 'amiAssociationScope', 'licenseConfigurationAssociation_amiAssociationScope' - Scope of AMI associations. The possible value is @cross-account@.
+--
+-- 'associationTime', 'licenseConfigurationAssociation_associationTime' - Time when the license configuration was associated with the resource.
+--
+-- 'resourceArn', 'licenseConfigurationAssociation_resourceArn' - Amazon Resource Name (ARN) of the resource.
+--
+-- 'resourceOwnerId', 'licenseConfigurationAssociation_resourceOwnerId' - ID of the Amazon Web Services account that owns the resource consuming
+-- licenses.
+--
+-- 'resourceType', 'licenseConfigurationAssociation_resourceType' - Type of server resource.
+newLicenseConfigurationAssociation ::
+  LicenseConfigurationAssociation
+newLicenseConfigurationAssociation =
+  LicenseConfigurationAssociation'
+    { amiAssociationScope =
+        Prelude.Nothing,
+      associationTime = Prelude.Nothing,
+      resourceArn = Prelude.Nothing,
+      resourceOwnerId = Prelude.Nothing,
+      resourceType = Prelude.Nothing
+    }
+
+-- | Scope of AMI associations. The possible value is @cross-account@.
+licenseConfigurationAssociation_amiAssociationScope :: Lens.Lens' LicenseConfigurationAssociation (Prelude.Maybe Prelude.Text)
+licenseConfigurationAssociation_amiAssociationScope = Lens.lens (\LicenseConfigurationAssociation' {amiAssociationScope} -> amiAssociationScope) (\s@LicenseConfigurationAssociation' {} a -> s {amiAssociationScope = a} :: LicenseConfigurationAssociation)
+
+-- | Time when the license configuration was associated with the resource.
+licenseConfigurationAssociation_associationTime :: Lens.Lens' LicenseConfigurationAssociation (Prelude.Maybe Prelude.UTCTime)
+licenseConfigurationAssociation_associationTime = Lens.lens (\LicenseConfigurationAssociation' {associationTime} -> associationTime) (\s@LicenseConfigurationAssociation' {} a -> s {associationTime = a} :: LicenseConfigurationAssociation) Prelude.. Lens.mapping Data._Time
+
+-- | Amazon Resource Name (ARN) of the resource.
+licenseConfigurationAssociation_resourceArn :: Lens.Lens' LicenseConfigurationAssociation (Prelude.Maybe Prelude.Text)
+licenseConfigurationAssociation_resourceArn = Lens.lens (\LicenseConfigurationAssociation' {resourceArn} -> resourceArn) (\s@LicenseConfigurationAssociation' {} a -> s {resourceArn = a} :: LicenseConfigurationAssociation)
+
+-- | ID of the Amazon Web Services account that owns the resource consuming
+-- licenses.
+licenseConfigurationAssociation_resourceOwnerId :: Lens.Lens' LicenseConfigurationAssociation (Prelude.Maybe Prelude.Text)
+licenseConfigurationAssociation_resourceOwnerId = Lens.lens (\LicenseConfigurationAssociation' {resourceOwnerId} -> resourceOwnerId) (\s@LicenseConfigurationAssociation' {} a -> s {resourceOwnerId = a} :: LicenseConfigurationAssociation)
+
+-- | Type of server resource.
+licenseConfigurationAssociation_resourceType :: Lens.Lens' LicenseConfigurationAssociation (Prelude.Maybe ResourceType)
+licenseConfigurationAssociation_resourceType = Lens.lens (\LicenseConfigurationAssociation' {resourceType} -> resourceType) (\s@LicenseConfigurationAssociation' {} a -> s {resourceType = a} :: LicenseConfigurationAssociation)
+
+instance
+  Data.FromJSON
+    LicenseConfigurationAssociation
+  where
+  parseJSON =
+    Data.withObject
+      "LicenseConfigurationAssociation"
+      ( \x ->
+          LicenseConfigurationAssociation'
+            Prelude.<$> (x Data..:? "AmiAssociationScope")
+            Prelude.<*> (x Data..:? "AssociationTime")
+            Prelude.<*> (x Data..:? "ResourceArn")
+            Prelude.<*> (x Data..:? "ResourceOwnerId")
+            Prelude.<*> (x Data..:? "ResourceType")
+      )
+
+instance
+  Prelude.Hashable
+    LicenseConfigurationAssociation
+  where
+  hashWithSalt
+    _salt
+    LicenseConfigurationAssociation' {..} =
+      _salt
+        `Prelude.hashWithSalt` amiAssociationScope
+        `Prelude.hashWithSalt` associationTime
+        `Prelude.hashWithSalt` resourceArn
+        `Prelude.hashWithSalt` resourceOwnerId
+        `Prelude.hashWithSalt` resourceType
+
+instance
+  Prelude.NFData
+    LicenseConfigurationAssociation
+  where
+  rnf LicenseConfigurationAssociation' {..} =
+    Prelude.rnf amiAssociationScope
+      `Prelude.seq` Prelude.rnf associationTime
+      `Prelude.seq` Prelude.rnf resourceArn
+      `Prelude.seq` Prelude.rnf resourceOwnerId
+      `Prelude.seq` Prelude.rnf resourceType
diff --git a/gen/Amazonka/LicenseManager/Types/LicenseConfigurationStatus.hs b/gen/Amazonka/LicenseManager/Types/LicenseConfigurationStatus.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/LicenseConfigurationStatus.hs
@@ -0,0 +1,71 @@
+{-# 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.LicenseManager.Types.LicenseConfigurationStatus
+-- 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.LicenseManager.Types.LicenseConfigurationStatus
+  ( LicenseConfigurationStatus
+      ( ..,
+        LicenseConfigurationStatus_AVAILABLE,
+        LicenseConfigurationStatus_DISABLED
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype LicenseConfigurationStatus = LicenseConfigurationStatus'
+  { fromLicenseConfigurationStatus ::
+      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 LicenseConfigurationStatus_AVAILABLE :: LicenseConfigurationStatus
+pattern LicenseConfigurationStatus_AVAILABLE = LicenseConfigurationStatus' "AVAILABLE"
+
+pattern LicenseConfigurationStatus_DISABLED :: LicenseConfigurationStatus
+pattern LicenseConfigurationStatus_DISABLED = LicenseConfigurationStatus' "DISABLED"
+
+{-# COMPLETE
+  LicenseConfigurationStatus_AVAILABLE,
+  LicenseConfigurationStatus_DISABLED,
+  LicenseConfigurationStatus'
+  #-}
diff --git a/gen/Amazonka/LicenseManager/Types/LicenseConfigurationUsage.hs b/gen/Amazonka/LicenseManager/Types/LicenseConfigurationUsage.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/LicenseConfigurationUsage.hs
@@ -0,0 +1,138 @@
+{-# 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.LicenseManager.Types.LicenseConfigurationUsage
+-- 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.LicenseManager.Types.LicenseConfigurationUsage where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types.ResourceType
+import qualified Amazonka.Prelude as Prelude
+
+-- | Details about the usage of a resource associated with a license
+-- configuration.
+--
+-- /See:/ 'newLicenseConfigurationUsage' smart constructor.
+data LicenseConfigurationUsage = LicenseConfigurationUsage'
+  { -- | Time when the license configuration was initially associated with the
+    -- resource.
+    associationTime :: Prelude.Maybe Data.POSIX,
+    -- | Number of licenses consumed by the resource.
+    consumedLicenses :: Prelude.Maybe Prelude.Integer,
+    -- | Amazon Resource Name (ARN) of the resource.
+    resourceArn :: Prelude.Maybe Prelude.Text,
+    -- | ID of the account that owns the resource.
+    resourceOwnerId :: Prelude.Maybe Prelude.Text,
+    -- | Status of the resource.
+    resourceStatus :: Prelude.Maybe Prelude.Text,
+    -- | Type of resource.
+    resourceType :: Prelude.Maybe ResourceType
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'LicenseConfigurationUsage' 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:
+--
+-- 'associationTime', 'licenseConfigurationUsage_associationTime' - Time when the license configuration was initially associated with the
+-- resource.
+--
+-- 'consumedLicenses', 'licenseConfigurationUsage_consumedLicenses' - Number of licenses consumed by the resource.
+--
+-- 'resourceArn', 'licenseConfigurationUsage_resourceArn' - Amazon Resource Name (ARN) of the resource.
+--
+-- 'resourceOwnerId', 'licenseConfigurationUsage_resourceOwnerId' - ID of the account that owns the resource.
+--
+-- 'resourceStatus', 'licenseConfigurationUsage_resourceStatus' - Status of the resource.
+--
+-- 'resourceType', 'licenseConfigurationUsage_resourceType' - Type of resource.
+newLicenseConfigurationUsage ::
+  LicenseConfigurationUsage
+newLicenseConfigurationUsage =
+  LicenseConfigurationUsage'
+    { associationTime =
+        Prelude.Nothing,
+      consumedLicenses = Prelude.Nothing,
+      resourceArn = Prelude.Nothing,
+      resourceOwnerId = Prelude.Nothing,
+      resourceStatus = Prelude.Nothing,
+      resourceType = Prelude.Nothing
+    }
+
+-- | Time when the license configuration was initially associated with the
+-- resource.
+licenseConfigurationUsage_associationTime :: Lens.Lens' LicenseConfigurationUsage (Prelude.Maybe Prelude.UTCTime)
+licenseConfigurationUsage_associationTime = Lens.lens (\LicenseConfigurationUsage' {associationTime} -> associationTime) (\s@LicenseConfigurationUsage' {} a -> s {associationTime = a} :: LicenseConfigurationUsage) Prelude.. Lens.mapping Data._Time
+
+-- | Number of licenses consumed by the resource.
+licenseConfigurationUsage_consumedLicenses :: Lens.Lens' LicenseConfigurationUsage (Prelude.Maybe Prelude.Integer)
+licenseConfigurationUsage_consumedLicenses = Lens.lens (\LicenseConfigurationUsage' {consumedLicenses} -> consumedLicenses) (\s@LicenseConfigurationUsage' {} a -> s {consumedLicenses = a} :: LicenseConfigurationUsage)
+
+-- | Amazon Resource Name (ARN) of the resource.
+licenseConfigurationUsage_resourceArn :: Lens.Lens' LicenseConfigurationUsage (Prelude.Maybe Prelude.Text)
+licenseConfigurationUsage_resourceArn = Lens.lens (\LicenseConfigurationUsage' {resourceArn} -> resourceArn) (\s@LicenseConfigurationUsage' {} a -> s {resourceArn = a} :: LicenseConfigurationUsage)
+
+-- | ID of the account that owns the resource.
+licenseConfigurationUsage_resourceOwnerId :: Lens.Lens' LicenseConfigurationUsage (Prelude.Maybe Prelude.Text)
+licenseConfigurationUsage_resourceOwnerId = Lens.lens (\LicenseConfigurationUsage' {resourceOwnerId} -> resourceOwnerId) (\s@LicenseConfigurationUsage' {} a -> s {resourceOwnerId = a} :: LicenseConfigurationUsage)
+
+-- | Status of the resource.
+licenseConfigurationUsage_resourceStatus :: Lens.Lens' LicenseConfigurationUsage (Prelude.Maybe Prelude.Text)
+licenseConfigurationUsage_resourceStatus = Lens.lens (\LicenseConfigurationUsage' {resourceStatus} -> resourceStatus) (\s@LicenseConfigurationUsage' {} a -> s {resourceStatus = a} :: LicenseConfigurationUsage)
+
+-- | Type of resource.
+licenseConfigurationUsage_resourceType :: Lens.Lens' LicenseConfigurationUsage (Prelude.Maybe ResourceType)
+licenseConfigurationUsage_resourceType = Lens.lens (\LicenseConfigurationUsage' {resourceType} -> resourceType) (\s@LicenseConfigurationUsage' {} a -> s {resourceType = a} :: LicenseConfigurationUsage)
+
+instance Data.FromJSON LicenseConfigurationUsage where
+  parseJSON =
+    Data.withObject
+      "LicenseConfigurationUsage"
+      ( \x ->
+          LicenseConfigurationUsage'
+            Prelude.<$> (x Data..:? "AssociationTime")
+            Prelude.<*> (x Data..:? "ConsumedLicenses")
+            Prelude.<*> (x Data..:? "ResourceArn")
+            Prelude.<*> (x Data..:? "ResourceOwnerId")
+            Prelude.<*> (x Data..:? "ResourceStatus")
+            Prelude.<*> (x Data..:? "ResourceType")
+      )
+
+instance Prelude.Hashable LicenseConfigurationUsage where
+  hashWithSalt _salt LicenseConfigurationUsage' {..} =
+    _salt
+      `Prelude.hashWithSalt` associationTime
+      `Prelude.hashWithSalt` consumedLicenses
+      `Prelude.hashWithSalt` resourceArn
+      `Prelude.hashWithSalt` resourceOwnerId
+      `Prelude.hashWithSalt` resourceStatus
+      `Prelude.hashWithSalt` resourceType
+
+instance Prelude.NFData LicenseConfigurationUsage where
+  rnf LicenseConfigurationUsage' {..} =
+    Prelude.rnf associationTime
+      `Prelude.seq` Prelude.rnf consumedLicenses
+      `Prelude.seq` Prelude.rnf resourceArn
+      `Prelude.seq` Prelude.rnf resourceOwnerId
+      `Prelude.seq` Prelude.rnf resourceStatus
+      `Prelude.seq` Prelude.rnf resourceType
diff --git a/gen/Amazonka/LicenseManager/Types/LicenseConversionContext.hs b/gen/Amazonka/LicenseManager/Types/LicenseConversionContext.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/LicenseConversionContext.hs
@@ -0,0 +1,90 @@
+{-# 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.LicenseManager.Types.LicenseConversionContext
+-- 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.LicenseManager.Types.LicenseConversionContext 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
+
+-- | Information about a license type conversion task.
+--
+-- /See:/ 'newLicenseConversionContext' smart constructor.
+data LicenseConversionContext = LicenseConversionContext'
+  { -- | The Usage operation value that corresponds to the license type you are
+    -- converting your resource from. For more information about which
+    -- platforms correspond to which usage operation values see
+    -- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/billing-info-fields.html#billing-info Sample data: usage operation by platform>
+    usageOperation :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'LicenseConversionContext' 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:
+--
+-- 'usageOperation', 'licenseConversionContext_usageOperation' - The Usage operation value that corresponds to the license type you are
+-- converting your resource from. For more information about which
+-- platforms correspond to which usage operation values see
+-- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/billing-info-fields.html#billing-info Sample data: usage operation by platform>
+newLicenseConversionContext ::
+  LicenseConversionContext
+newLicenseConversionContext =
+  LicenseConversionContext'
+    { usageOperation =
+        Prelude.Nothing
+    }
+
+-- | The Usage operation value that corresponds to the license type you are
+-- converting your resource from. For more information about which
+-- platforms correspond to which usage operation values see
+-- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/billing-info-fields.html#billing-info Sample data: usage operation by platform>
+licenseConversionContext_usageOperation :: Lens.Lens' LicenseConversionContext (Prelude.Maybe Prelude.Text)
+licenseConversionContext_usageOperation = Lens.lens (\LicenseConversionContext' {usageOperation} -> usageOperation) (\s@LicenseConversionContext' {} a -> s {usageOperation = a} :: LicenseConversionContext)
+
+instance Data.FromJSON LicenseConversionContext where
+  parseJSON =
+    Data.withObject
+      "LicenseConversionContext"
+      ( \x ->
+          LicenseConversionContext'
+            Prelude.<$> (x Data..:? "UsageOperation")
+      )
+
+instance Prelude.Hashable LicenseConversionContext where
+  hashWithSalt _salt LicenseConversionContext' {..} =
+    _salt `Prelude.hashWithSalt` usageOperation
+
+instance Prelude.NFData LicenseConversionContext where
+  rnf LicenseConversionContext' {..} =
+    Prelude.rnf usageOperation
+
+instance Data.ToJSON LicenseConversionContext where
+  toJSON LicenseConversionContext' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("UsageOperation" Data..=)
+              Prelude.<$> usageOperation
+          ]
+      )
diff --git a/gen/Amazonka/LicenseManager/Types/LicenseConversionTask.hs b/gen/Amazonka/LicenseManager/Types/LicenseConversionTask.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/LicenseConversionTask.hs
@@ -0,0 +1,174 @@
+{-# 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.LicenseManager.Types.LicenseConversionTask
+-- 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.LicenseManager.Types.LicenseConversionTask where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types.LicenseConversionContext
+import Amazonka.LicenseManager.Types.LicenseConversionTaskStatus
+import qualified Amazonka.Prelude as Prelude
+
+-- | Information about a license type conversion task.
+--
+-- /See:/ 'newLicenseConversionTask' smart constructor.
+data LicenseConversionTask = LicenseConversionTask'
+  { -- | Information about the license type this conversion task converted to.
+    destinationLicenseContext :: Prelude.Maybe LicenseConversionContext,
+    -- | The time the conversion task was completed.
+    endTime :: Prelude.Maybe Data.POSIX,
+    -- | The ID of the license type conversion task.
+    licenseConversionTaskId :: Prelude.Maybe Prelude.Text,
+    -- | The time the usage operation value of the resource was changed.
+    licenseConversionTime :: Prelude.Maybe Data.POSIX,
+    -- | The Amazon Resource Name (ARN) of the resource associated with the
+    -- license type conversion task.
+    resourceArn :: Prelude.Maybe Prelude.Text,
+    -- | Information about the license type this conversion task converted from.
+    sourceLicenseContext :: Prelude.Maybe LicenseConversionContext,
+    -- | The time the conversion task was started at.
+    startTime :: Prelude.Maybe Data.POSIX,
+    -- | The status of the conversion task.
+    status :: Prelude.Maybe LicenseConversionTaskStatus,
+    -- | The status message for the conversion task.
+    statusMessage :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'LicenseConversionTask' 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:
+--
+-- 'destinationLicenseContext', 'licenseConversionTask_destinationLicenseContext' - Information about the license type this conversion task converted to.
+--
+-- 'endTime', 'licenseConversionTask_endTime' - The time the conversion task was completed.
+--
+-- 'licenseConversionTaskId', 'licenseConversionTask_licenseConversionTaskId' - The ID of the license type conversion task.
+--
+-- 'licenseConversionTime', 'licenseConversionTask_licenseConversionTime' - The time the usage operation value of the resource was changed.
+--
+-- 'resourceArn', 'licenseConversionTask_resourceArn' - The Amazon Resource Name (ARN) of the resource associated with the
+-- license type conversion task.
+--
+-- 'sourceLicenseContext', 'licenseConversionTask_sourceLicenseContext' - Information about the license type this conversion task converted from.
+--
+-- 'startTime', 'licenseConversionTask_startTime' - The time the conversion task was started at.
+--
+-- 'status', 'licenseConversionTask_status' - The status of the conversion task.
+--
+-- 'statusMessage', 'licenseConversionTask_statusMessage' - The status message for the conversion task.
+newLicenseConversionTask ::
+  LicenseConversionTask
+newLicenseConversionTask =
+  LicenseConversionTask'
+    { destinationLicenseContext =
+        Prelude.Nothing,
+      endTime = Prelude.Nothing,
+      licenseConversionTaskId = Prelude.Nothing,
+      licenseConversionTime = Prelude.Nothing,
+      resourceArn = Prelude.Nothing,
+      sourceLicenseContext = Prelude.Nothing,
+      startTime = Prelude.Nothing,
+      status = Prelude.Nothing,
+      statusMessage = Prelude.Nothing
+    }
+
+-- | Information about the license type this conversion task converted to.
+licenseConversionTask_destinationLicenseContext :: Lens.Lens' LicenseConversionTask (Prelude.Maybe LicenseConversionContext)
+licenseConversionTask_destinationLicenseContext = Lens.lens (\LicenseConversionTask' {destinationLicenseContext} -> destinationLicenseContext) (\s@LicenseConversionTask' {} a -> s {destinationLicenseContext = a} :: LicenseConversionTask)
+
+-- | The time the conversion task was completed.
+licenseConversionTask_endTime :: Lens.Lens' LicenseConversionTask (Prelude.Maybe Prelude.UTCTime)
+licenseConversionTask_endTime = Lens.lens (\LicenseConversionTask' {endTime} -> endTime) (\s@LicenseConversionTask' {} a -> s {endTime = a} :: LicenseConversionTask) Prelude.. Lens.mapping Data._Time
+
+-- | The ID of the license type conversion task.
+licenseConversionTask_licenseConversionTaskId :: Lens.Lens' LicenseConversionTask (Prelude.Maybe Prelude.Text)
+licenseConversionTask_licenseConversionTaskId = Lens.lens (\LicenseConversionTask' {licenseConversionTaskId} -> licenseConversionTaskId) (\s@LicenseConversionTask' {} a -> s {licenseConversionTaskId = a} :: LicenseConversionTask)
+
+-- | The time the usage operation value of the resource was changed.
+licenseConversionTask_licenseConversionTime :: Lens.Lens' LicenseConversionTask (Prelude.Maybe Prelude.UTCTime)
+licenseConversionTask_licenseConversionTime = Lens.lens (\LicenseConversionTask' {licenseConversionTime} -> licenseConversionTime) (\s@LicenseConversionTask' {} a -> s {licenseConversionTime = a} :: LicenseConversionTask) Prelude.. Lens.mapping Data._Time
+
+-- | The Amazon Resource Name (ARN) of the resource associated with the
+-- license type conversion task.
+licenseConversionTask_resourceArn :: Lens.Lens' LicenseConversionTask (Prelude.Maybe Prelude.Text)
+licenseConversionTask_resourceArn = Lens.lens (\LicenseConversionTask' {resourceArn} -> resourceArn) (\s@LicenseConversionTask' {} a -> s {resourceArn = a} :: LicenseConversionTask)
+
+-- | Information about the license type this conversion task converted from.
+licenseConversionTask_sourceLicenseContext :: Lens.Lens' LicenseConversionTask (Prelude.Maybe LicenseConversionContext)
+licenseConversionTask_sourceLicenseContext = Lens.lens (\LicenseConversionTask' {sourceLicenseContext} -> sourceLicenseContext) (\s@LicenseConversionTask' {} a -> s {sourceLicenseContext = a} :: LicenseConversionTask)
+
+-- | The time the conversion task was started at.
+licenseConversionTask_startTime :: Lens.Lens' LicenseConversionTask (Prelude.Maybe Prelude.UTCTime)
+licenseConversionTask_startTime = Lens.lens (\LicenseConversionTask' {startTime} -> startTime) (\s@LicenseConversionTask' {} a -> s {startTime = a} :: LicenseConversionTask) Prelude.. Lens.mapping Data._Time
+
+-- | The status of the conversion task.
+licenseConversionTask_status :: Lens.Lens' LicenseConversionTask (Prelude.Maybe LicenseConversionTaskStatus)
+licenseConversionTask_status = Lens.lens (\LicenseConversionTask' {status} -> status) (\s@LicenseConversionTask' {} a -> s {status = a} :: LicenseConversionTask)
+
+-- | The status message for the conversion task.
+licenseConversionTask_statusMessage :: Lens.Lens' LicenseConversionTask (Prelude.Maybe Prelude.Text)
+licenseConversionTask_statusMessage = Lens.lens (\LicenseConversionTask' {statusMessage} -> statusMessage) (\s@LicenseConversionTask' {} a -> s {statusMessage = a} :: LicenseConversionTask)
+
+instance Data.FromJSON LicenseConversionTask where
+  parseJSON =
+    Data.withObject
+      "LicenseConversionTask"
+      ( \x ->
+          LicenseConversionTask'
+            Prelude.<$> (x Data..:? "DestinationLicenseContext")
+            Prelude.<*> (x Data..:? "EndTime")
+            Prelude.<*> (x Data..:? "LicenseConversionTaskId")
+            Prelude.<*> (x Data..:? "LicenseConversionTime")
+            Prelude.<*> (x Data..:? "ResourceArn")
+            Prelude.<*> (x Data..:? "SourceLicenseContext")
+            Prelude.<*> (x Data..:? "StartTime")
+            Prelude.<*> (x Data..:? "Status")
+            Prelude.<*> (x Data..:? "StatusMessage")
+      )
+
+instance Prelude.Hashable LicenseConversionTask where
+  hashWithSalt _salt LicenseConversionTask' {..} =
+    _salt
+      `Prelude.hashWithSalt` destinationLicenseContext
+      `Prelude.hashWithSalt` endTime
+      `Prelude.hashWithSalt` licenseConversionTaskId
+      `Prelude.hashWithSalt` licenseConversionTime
+      `Prelude.hashWithSalt` resourceArn
+      `Prelude.hashWithSalt` sourceLicenseContext
+      `Prelude.hashWithSalt` startTime
+      `Prelude.hashWithSalt` status
+      `Prelude.hashWithSalt` statusMessage
+
+instance Prelude.NFData LicenseConversionTask where
+  rnf LicenseConversionTask' {..} =
+    Prelude.rnf destinationLicenseContext
+      `Prelude.seq` Prelude.rnf endTime
+      `Prelude.seq` Prelude.rnf licenseConversionTaskId
+      `Prelude.seq` Prelude.rnf licenseConversionTime
+      `Prelude.seq` Prelude.rnf resourceArn
+      `Prelude.seq` Prelude.rnf sourceLicenseContext
+      `Prelude.seq` Prelude.rnf startTime
+      `Prelude.seq` Prelude.rnf status
+      `Prelude.seq` Prelude.rnf statusMessage
diff --git a/gen/Amazonka/LicenseManager/Types/LicenseConversionTaskStatus.hs b/gen/Amazonka/LicenseManager/Types/LicenseConversionTaskStatus.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/LicenseConversionTaskStatus.hs
@@ -0,0 +1,76 @@
+{-# 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.LicenseManager.Types.LicenseConversionTaskStatus
+-- 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.LicenseManager.Types.LicenseConversionTaskStatus
+  ( LicenseConversionTaskStatus
+      ( ..,
+        LicenseConversionTaskStatus_FAILED,
+        LicenseConversionTaskStatus_IN_PROGRESS,
+        LicenseConversionTaskStatus_SUCCEEDED
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype LicenseConversionTaskStatus = LicenseConversionTaskStatus'
+  { fromLicenseConversionTaskStatus ::
+      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 LicenseConversionTaskStatus_FAILED :: LicenseConversionTaskStatus
+pattern LicenseConversionTaskStatus_FAILED = LicenseConversionTaskStatus' "FAILED"
+
+pattern LicenseConversionTaskStatus_IN_PROGRESS :: LicenseConversionTaskStatus
+pattern LicenseConversionTaskStatus_IN_PROGRESS = LicenseConversionTaskStatus' "IN_PROGRESS"
+
+pattern LicenseConversionTaskStatus_SUCCEEDED :: LicenseConversionTaskStatus
+pattern LicenseConversionTaskStatus_SUCCEEDED = LicenseConversionTaskStatus' "SUCCEEDED"
+
+{-# COMPLETE
+  LicenseConversionTaskStatus_FAILED,
+  LicenseConversionTaskStatus_IN_PROGRESS,
+  LicenseConversionTaskStatus_SUCCEEDED,
+  LicenseConversionTaskStatus'
+  #-}
diff --git a/gen/Amazonka/LicenseManager/Types/LicenseCountingType.hs b/gen/Amazonka/LicenseManager/Types/LicenseCountingType.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/LicenseCountingType.hs
@@ -0,0 +1,81 @@
+{-# 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.LicenseManager.Types.LicenseCountingType
+-- 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.LicenseManager.Types.LicenseCountingType
+  ( LicenseCountingType
+      ( ..,
+        LicenseCountingType_Core,
+        LicenseCountingType_Instance,
+        LicenseCountingType_Socket,
+        LicenseCountingType_VCPU
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype LicenseCountingType = LicenseCountingType'
+  { fromLicenseCountingType ::
+      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 LicenseCountingType_Core :: LicenseCountingType
+pattern LicenseCountingType_Core = LicenseCountingType' "Core"
+
+pattern LicenseCountingType_Instance :: LicenseCountingType
+pattern LicenseCountingType_Instance = LicenseCountingType' "Instance"
+
+pattern LicenseCountingType_Socket :: LicenseCountingType
+pattern LicenseCountingType_Socket = LicenseCountingType' "Socket"
+
+pattern LicenseCountingType_VCPU :: LicenseCountingType
+pattern LicenseCountingType_VCPU = LicenseCountingType' "vCPU"
+
+{-# COMPLETE
+  LicenseCountingType_Core,
+  LicenseCountingType_Instance,
+  LicenseCountingType_Socket,
+  LicenseCountingType_VCPU,
+  LicenseCountingType'
+  #-}
diff --git a/gen/Amazonka/LicenseManager/Types/LicenseDeletionStatus.hs b/gen/Amazonka/LicenseManager/Types/LicenseDeletionStatus.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/LicenseDeletionStatus.hs
@@ -0,0 +1,71 @@
+{-# 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.LicenseManager.Types.LicenseDeletionStatus
+-- 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.LicenseManager.Types.LicenseDeletionStatus
+  ( LicenseDeletionStatus
+      ( ..,
+        LicenseDeletionStatus_DELETED,
+        LicenseDeletionStatus_PENDING_DELETE
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype LicenseDeletionStatus = LicenseDeletionStatus'
+  { fromLicenseDeletionStatus ::
+      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 LicenseDeletionStatus_DELETED :: LicenseDeletionStatus
+pattern LicenseDeletionStatus_DELETED = LicenseDeletionStatus' "DELETED"
+
+pattern LicenseDeletionStatus_PENDING_DELETE :: LicenseDeletionStatus
+pattern LicenseDeletionStatus_PENDING_DELETE = LicenseDeletionStatus' "PENDING_DELETE"
+
+{-# COMPLETE
+  LicenseDeletionStatus_DELETED,
+  LicenseDeletionStatus_PENDING_DELETE,
+  LicenseDeletionStatus'
+  #-}
diff --git a/gen/Amazonka/LicenseManager/Types/LicenseOperationFailure.hs b/gen/Amazonka/LicenseManager/Types/LicenseOperationFailure.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/LicenseOperationFailure.hs
@@ -0,0 +1,159 @@
+{-# 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.LicenseManager.Types.LicenseOperationFailure
+-- 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.LicenseManager.Types.LicenseOperationFailure where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types.Metadata
+import Amazonka.LicenseManager.Types.ResourceType
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes the failure of a license operation.
+--
+-- /See:/ 'newLicenseOperationFailure' smart constructor.
+data LicenseOperationFailure = LicenseOperationFailure'
+  { -- | Error message.
+    errorMessage :: Prelude.Maybe Prelude.Text,
+    -- | Failure time.
+    failureTime :: Prelude.Maybe Data.POSIX,
+    -- | Reserved.
+    metadataList :: Prelude.Maybe [Metadata],
+    -- | Name of the operation.
+    operationName :: Prelude.Maybe Prelude.Text,
+    -- | The requester is \"License Manager Automated Discovery\".
+    operationRequestedBy :: Prelude.Maybe Prelude.Text,
+    -- | Amazon Resource Name (ARN) of the resource.
+    resourceArn :: Prelude.Maybe Prelude.Text,
+    -- | ID of the Amazon Web Services account that owns the resource.
+    resourceOwnerId :: Prelude.Maybe Prelude.Text,
+    -- | Resource type.
+    resourceType :: Prelude.Maybe ResourceType
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'LicenseOperationFailure' 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:
+--
+-- 'errorMessage', 'licenseOperationFailure_errorMessage' - Error message.
+--
+-- 'failureTime', 'licenseOperationFailure_failureTime' - Failure time.
+--
+-- 'metadataList', 'licenseOperationFailure_metadataList' - Reserved.
+--
+-- 'operationName', 'licenseOperationFailure_operationName' - Name of the operation.
+--
+-- 'operationRequestedBy', 'licenseOperationFailure_operationRequestedBy' - The requester is \"License Manager Automated Discovery\".
+--
+-- 'resourceArn', 'licenseOperationFailure_resourceArn' - Amazon Resource Name (ARN) of the resource.
+--
+-- 'resourceOwnerId', 'licenseOperationFailure_resourceOwnerId' - ID of the Amazon Web Services account that owns the resource.
+--
+-- 'resourceType', 'licenseOperationFailure_resourceType' - Resource type.
+newLicenseOperationFailure ::
+  LicenseOperationFailure
+newLicenseOperationFailure =
+  LicenseOperationFailure'
+    { errorMessage =
+        Prelude.Nothing,
+      failureTime = Prelude.Nothing,
+      metadataList = Prelude.Nothing,
+      operationName = Prelude.Nothing,
+      operationRequestedBy = Prelude.Nothing,
+      resourceArn = Prelude.Nothing,
+      resourceOwnerId = Prelude.Nothing,
+      resourceType = Prelude.Nothing
+    }
+
+-- | Error message.
+licenseOperationFailure_errorMessage :: Lens.Lens' LicenseOperationFailure (Prelude.Maybe Prelude.Text)
+licenseOperationFailure_errorMessage = Lens.lens (\LicenseOperationFailure' {errorMessage} -> errorMessage) (\s@LicenseOperationFailure' {} a -> s {errorMessage = a} :: LicenseOperationFailure)
+
+-- | Failure time.
+licenseOperationFailure_failureTime :: Lens.Lens' LicenseOperationFailure (Prelude.Maybe Prelude.UTCTime)
+licenseOperationFailure_failureTime = Lens.lens (\LicenseOperationFailure' {failureTime} -> failureTime) (\s@LicenseOperationFailure' {} a -> s {failureTime = a} :: LicenseOperationFailure) Prelude.. Lens.mapping Data._Time
+
+-- | Reserved.
+licenseOperationFailure_metadataList :: Lens.Lens' LicenseOperationFailure (Prelude.Maybe [Metadata])
+licenseOperationFailure_metadataList = Lens.lens (\LicenseOperationFailure' {metadataList} -> metadataList) (\s@LicenseOperationFailure' {} a -> s {metadataList = a} :: LicenseOperationFailure) Prelude.. Lens.mapping Lens.coerced
+
+-- | Name of the operation.
+licenseOperationFailure_operationName :: Lens.Lens' LicenseOperationFailure (Prelude.Maybe Prelude.Text)
+licenseOperationFailure_operationName = Lens.lens (\LicenseOperationFailure' {operationName} -> operationName) (\s@LicenseOperationFailure' {} a -> s {operationName = a} :: LicenseOperationFailure)
+
+-- | The requester is \"License Manager Automated Discovery\".
+licenseOperationFailure_operationRequestedBy :: Lens.Lens' LicenseOperationFailure (Prelude.Maybe Prelude.Text)
+licenseOperationFailure_operationRequestedBy = Lens.lens (\LicenseOperationFailure' {operationRequestedBy} -> operationRequestedBy) (\s@LicenseOperationFailure' {} a -> s {operationRequestedBy = a} :: LicenseOperationFailure)
+
+-- | Amazon Resource Name (ARN) of the resource.
+licenseOperationFailure_resourceArn :: Lens.Lens' LicenseOperationFailure (Prelude.Maybe Prelude.Text)
+licenseOperationFailure_resourceArn = Lens.lens (\LicenseOperationFailure' {resourceArn} -> resourceArn) (\s@LicenseOperationFailure' {} a -> s {resourceArn = a} :: LicenseOperationFailure)
+
+-- | ID of the Amazon Web Services account that owns the resource.
+licenseOperationFailure_resourceOwnerId :: Lens.Lens' LicenseOperationFailure (Prelude.Maybe Prelude.Text)
+licenseOperationFailure_resourceOwnerId = Lens.lens (\LicenseOperationFailure' {resourceOwnerId} -> resourceOwnerId) (\s@LicenseOperationFailure' {} a -> s {resourceOwnerId = a} :: LicenseOperationFailure)
+
+-- | Resource type.
+licenseOperationFailure_resourceType :: Lens.Lens' LicenseOperationFailure (Prelude.Maybe ResourceType)
+licenseOperationFailure_resourceType = Lens.lens (\LicenseOperationFailure' {resourceType} -> resourceType) (\s@LicenseOperationFailure' {} a -> s {resourceType = a} :: LicenseOperationFailure)
+
+instance Data.FromJSON LicenseOperationFailure where
+  parseJSON =
+    Data.withObject
+      "LicenseOperationFailure"
+      ( \x ->
+          LicenseOperationFailure'
+            Prelude.<$> (x Data..:? "ErrorMessage")
+            Prelude.<*> (x Data..:? "FailureTime")
+            Prelude.<*> (x Data..:? "MetadataList" Data..!= Prelude.mempty)
+            Prelude.<*> (x Data..:? "OperationName")
+            Prelude.<*> (x Data..:? "OperationRequestedBy")
+            Prelude.<*> (x Data..:? "ResourceArn")
+            Prelude.<*> (x Data..:? "ResourceOwnerId")
+            Prelude.<*> (x Data..:? "ResourceType")
+      )
+
+instance Prelude.Hashable LicenseOperationFailure where
+  hashWithSalt _salt LicenseOperationFailure' {..} =
+    _salt
+      `Prelude.hashWithSalt` errorMessage
+      `Prelude.hashWithSalt` failureTime
+      `Prelude.hashWithSalt` metadataList
+      `Prelude.hashWithSalt` operationName
+      `Prelude.hashWithSalt` operationRequestedBy
+      `Prelude.hashWithSalt` resourceArn
+      `Prelude.hashWithSalt` resourceOwnerId
+      `Prelude.hashWithSalt` resourceType
+
+instance Prelude.NFData LicenseOperationFailure where
+  rnf LicenseOperationFailure' {..} =
+    Prelude.rnf errorMessage
+      `Prelude.seq` Prelude.rnf failureTime
+      `Prelude.seq` Prelude.rnf metadataList
+      `Prelude.seq` Prelude.rnf operationName
+      `Prelude.seq` Prelude.rnf operationRequestedBy
+      `Prelude.seq` Prelude.rnf resourceArn
+      `Prelude.seq` Prelude.rnf resourceOwnerId
+      `Prelude.seq` Prelude.rnf resourceType
diff --git a/gen/Amazonka/LicenseManager/Types/LicenseSpecification.hs b/gen/Amazonka/LicenseManager/Types/LicenseSpecification.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/LicenseSpecification.hs
@@ -0,0 +1,100 @@
+{-# 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.LicenseManager.Types.LicenseSpecification
+-- 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.LicenseManager.Types.LicenseSpecification 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
+
+-- | Details for associating a license configuration with a resource.
+--
+-- /See:/ 'newLicenseSpecification' smart constructor.
+data LicenseSpecification = LicenseSpecification'
+  { -- | Scope of AMI associations. The possible value is @cross-account@.
+    amiAssociationScope :: Prelude.Maybe Prelude.Text,
+    -- | Amazon Resource Name (ARN) of the license configuration.
+    licenseConfigurationArn :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'LicenseSpecification' 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:
+--
+-- 'amiAssociationScope', 'licenseSpecification_amiAssociationScope' - Scope of AMI associations. The possible value is @cross-account@.
+--
+-- 'licenseConfigurationArn', 'licenseSpecification_licenseConfigurationArn' - Amazon Resource Name (ARN) of the license configuration.
+newLicenseSpecification ::
+  -- | 'licenseConfigurationArn'
+  Prelude.Text ->
+  LicenseSpecification
+newLicenseSpecification pLicenseConfigurationArn_ =
+  LicenseSpecification'
+    { amiAssociationScope =
+        Prelude.Nothing,
+      licenseConfigurationArn = pLicenseConfigurationArn_
+    }
+
+-- | Scope of AMI associations. The possible value is @cross-account@.
+licenseSpecification_amiAssociationScope :: Lens.Lens' LicenseSpecification (Prelude.Maybe Prelude.Text)
+licenseSpecification_amiAssociationScope = Lens.lens (\LicenseSpecification' {amiAssociationScope} -> amiAssociationScope) (\s@LicenseSpecification' {} a -> s {amiAssociationScope = a} :: LicenseSpecification)
+
+-- | Amazon Resource Name (ARN) of the license configuration.
+licenseSpecification_licenseConfigurationArn :: Lens.Lens' LicenseSpecification Prelude.Text
+licenseSpecification_licenseConfigurationArn = Lens.lens (\LicenseSpecification' {licenseConfigurationArn} -> licenseConfigurationArn) (\s@LicenseSpecification' {} a -> s {licenseConfigurationArn = a} :: LicenseSpecification)
+
+instance Data.FromJSON LicenseSpecification where
+  parseJSON =
+    Data.withObject
+      "LicenseSpecification"
+      ( \x ->
+          LicenseSpecification'
+            Prelude.<$> (x Data..:? "AmiAssociationScope")
+            Prelude.<*> (x Data..: "LicenseConfigurationArn")
+      )
+
+instance Prelude.Hashable LicenseSpecification where
+  hashWithSalt _salt LicenseSpecification' {..} =
+    _salt
+      `Prelude.hashWithSalt` amiAssociationScope
+      `Prelude.hashWithSalt` licenseConfigurationArn
+
+instance Prelude.NFData LicenseSpecification where
+  rnf LicenseSpecification' {..} =
+    Prelude.rnf amiAssociationScope
+      `Prelude.seq` Prelude.rnf licenseConfigurationArn
+
+instance Data.ToJSON LicenseSpecification where
+  toJSON LicenseSpecification' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("AmiAssociationScope" Data..=)
+              Prelude.<$> amiAssociationScope,
+            Prelude.Just
+              ( "LicenseConfigurationArn"
+                  Data..= licenseConfigurationArn
+              )
+          ]
+      )
diff --git a/gen/Amazonka/LicenseManager/Types/LicenseStatus.hs b/gen/Amazonka/LicenseManager/Types/LicenseStatus.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/LicenseStatus.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.LicenseManager.Types.LicenseStatus
+-- 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.LicenseManager.Types.LicenseStatus
+  ( LicenseStatus
+      ( ..,
+        LicenseStatus_AVAILABLE,
+        LicenseStatus_DEACTIVATED,
+        LicenseStatus_DELETED,
+        LicenseStatus_EXPIRED,
+        LicenseStatus_PENDING_AVAILABLE,
+        LicenseStatus_PENDING_DELETE,
+        LicenseStatus_SUSPENDED
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype LicenseStatus = LicenseStatus'
+  { fromLicenseStatus ::
+      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 LicenseStatus_AVAILABLE :: LicenseStatus
+pattern LicenseStatus_AVAILABLE = LicenseStatus' "AVAILABLE"
+
+pattern LicenseStatus_DEACTIVATED :: LicenseStatus
+pattern LicenseStatus_DEACTIVATED = LicenseStatus' "DEACTIVATED"
+
+pattern LicenseStatus_DELETED :: LicenseStatus
+pattern LicenseStatus_DELETED = LicenseStatus' "DELETED"
+
+pattern LicenseStatus_EXPIRED :: LicenseStatus
+pattern LicenseStatus_EXPIRED = LicenseStatus' "EXPIRED"
+
+pattern LicenseStatus_PENDING_AVAILABLE :: LicenseStatus
+pattern LicenseStatus_PENDING_AVAILABLE = LicenseStatus' "PENDING_AVAILABLE"
+
+pattern LicenseStatus_PENDING_DELETE :: LicenseStatus
+pattern LicenseStatus_PENDING_DELETE = LicenseStatus' "PENDING_DELETE"
+
+pattern LicenseStatus_SUSPENDED :: LicenseStatus
+pattern LicenseStatus_SUSPENDED = LicenseStatus' "SUSPENDED"
+
+{-# COMPLETE
+  LicenseStatus_AVAILABLE,
+  LicenseStatus_DEACTIVATED,
+  LicenseStatus_DELETED,
+  LicenseStatus_EXPIRED,
+  LicenseStatus_PENDING_AVAILABLE,
+  LicenseStatus_PENDING_DELETE,
+  LicenseStatus_SUSPENDED,
+  LicenseStatus'
+  #-}
diff --git a/gen/Amazonka/LicenseManager/Types/LicenseUsage.hs b/gen/Amazonka/LicenseManager/Types/LicenseUsage.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/LicenseUsage.hs
@@ -0,0 +1,72 @@
+{-# 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.LicenseManager.Types.LicenseUsage
+-- 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.LicenseManager.Types.LicenseUsage where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types.EntitlementUsage
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes the entitlement usage associated with a license.
+--
+-- /See:/ 'newLicenseUsage' smart constructor.
+data LicenseUsage = LicenseUsage'
+  { -- | License entitlement usages.
+    entitlementUsages :: Prelude.Maybe [EntitlementUsage]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'LicenseUsage' 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:
+--
+-- 'entitlementUsages', 'licenseUsage_entitlementUsages' - License entitlement usages.
+newLicenseUsage ::
+  LicenseUsage
+newLicenseUsage =
+  LicenseUsage' {entitlementUsages = Prelude.Nothing}
+
+-- | License entitlement usages.
+licenseUsage_entitlementUsages :: Lens.Lens' LicenseUsage (Prelude.Maybe [EntitlementUsage])
+licenseUsage_entitlementUsages = Lens.lens (\LicenseUsage' {entitlementUsages} -> entitlementUsages) (\s@LicenseUsage' {} a -> s {entitlementUsages = a} :: LicenseUsage) Prelude.. Lens.mapping Lens.coerced
+
+instance Data.FromJSON LicenseUsage where
+  parseJSON =
+    Data.withObject
+      "LicenseUsage"
+      ( \x ->
+          LicenseUsage'
+            Prelude.<$> ( x
+                            Data..:? "EntitlementUsages"
+                            Data..!= Prelude.mempty
+                        )
+      )
+
+instance Prelude.Hashable LicenseUsage where
+  hashWithSalt _salt LicenseUsage' {..} =
+    _salt `Prelude.hashWithSalt` entitlementUsages
+
+instance Prelude.NFData LicenseUsage where
+  rnf LicenseUsage' {..} = Prelude.rnf entitlementUsages
diff --git a/gen/Amazonka/LicenseManager/Types/ManagedResourceSummary.hs b/gen/Amazonka/LicenseManager/Types/ManagedResourceSummary.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/ManagedResourceSummary.hs
@@ -0,0 +1,86 @@
+{-# 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.LicenseManager.Types.ManagedResourceSummary
+-- 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.LicenseManager.Types.ManagedResourceSummary where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types.ResourceType
+import qualified Amazonka.Prelude as Prelude
+
+-- | Summary information about a managed resource.
+--
+-- /See:/ 'newManagedResourceSummary' smart constructor.
+data ManagedResourceSummary = ManagedResourceSummary'
+  { -- | Number of resources associated with licenses.
+    associationCount :: Prelude.Maybe Prelude.Integer,
+    -- | Type of resource associated with a license.
+    resourceType :: Prelude.Maybe ResourceType
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ManagedResourceSummary' 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:
+--
+-- 'associationCount', 'managedResourceSummary_associationCount' - Number of resources associated with licenses.
+--
+-- 'resourceType', 'managedResourceSummary_resourceType' - Type of resource associated with a license.
+newManagedResourceSummary ::
+  ManagedResourceSummary
+newManagedResourceSummary =
+  ManagedResourceSummary'
+    { associationCount =
+        Prelude.Nothing,
+      resourceType = Prelude.Nothing
+    }
+
+-- | Number of resources associated with licenses.
+managedResourceSummary_associationCount :: Lens.Lens' ManagedResourceSummary (Prelude.Maybe Prelude.Integer)
+managedResourceSummary_associationCount = Lens.lens (\ManagedResourceSummary' {associationCount} -> associationCount) (\s@ManagedResourceSummary' {} a -> s {associationCount = a} :: ManagedResourceSummary)
+
+-- | Type of resource associated with a license.
+managedResourceSummary_resourceType :: Lens.Lens' ManagedResourceSummary (Prelude.Maybe ResourceType)
+managedResourceSummary_resourceType = Lens.lens (\ManagedResourceSummary' {resourceType} -> resourceType) (\s@ManagedResourceSummary' {} a -> s {resourceType = a} :: ManagedResourceSummary)
+
+instance Data.FromJSON ManagedResourceSummary where
+  parseJSON =
+    Data.withObject
+      "ManagedResourceSummary"
+      ( \x ->
+          ManagedResourceSummary'
+            Prelude.<$> (x Data..:? "AssociationCount")
+            Prelude.<*> (x Data..:? "ResourceType")
+      )
+
+instance Prelude.Hashable ManagedResourceSummary where
+  hashWithSalt _salt ManagedResourceSummary' {..} =
+    _salt
+      `Prelude.hashWithSalt` associationCount
+      `Prelude.hashWithSalt` resourceType
+
+instance Prelude.NFData ManagedResourceSummary where
+  rnf ManagedResourceSummary' {..} =
+    Prelude.rnf associationCount
+      `Prelude.seq` Prelude.rnf resourceType
diff --git a/gen/Amazonka/LicenseManager/Types/Metadata.hs b/gen/Amazonka/LicenseManager/Types/Metadata.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/Metadata.hs
@@ -0,0 +1,92 @@
+{-# 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.LicenseManager.Types.Metadata
+-- 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.LicenseManager.Types.Metadata 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
+
+-- | Describes key\/value pairs.
+--
+-- /See:/ 'newMetadata' smart constructor.
+data Metadata = Metadata'
+  { -- | The key name.
+    name :: Prelude.Maybe Prelude.Text,
+    -- | The value.
+    value :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'Metadata' 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', 'metadata_name' - The key name.
+--
+-- 'value', 'metadata_value' - The value.
+newMetadata ::
+  Metadata
+newMetadata =
+  Metadata'
+    { name = Prelude.Nothing,
+      value = Prelude.Nothing
+    }
+
+-- | The key name.
+metadata_name :: Lens.Lens' Metadata (Prelude.Maybe Prelude.Text)
+metadata_name = Lens.lens (\Metadata' {name} -> name) (\s@Metadata' {} a -> s {name = a} :: Metadata)
+
+-- | The value.
+metadata_value :: Lens.Lens' Metadata (Prelude.Maybe Prelude.Text)
+metadata_value = Lens.lens (\Metadata' {value} -> value) (\s@Metadata' {} a -> s {value = a} :: Metadata)
+
+instance Data.FromJSON Metadata where
+  parseJSON =
+    Data.withObject
+      "Metadata"
+      ( \x ->
+          Metadata'
+            Prelude.<$> (x Data..:? "Name")
+            Prelude.<*> (x Data..:? "Value")
+      )
+
+instance Prelude.Hashable Metadata where
+  hashWithSalt _salt Metadata' {..} =
+    _salt
+      `Prelude.hashWithSalt` name
+      `Prelude.hashWithSalt` value
+
+instance Prelude.NFData Metadata where
+  rnf Metadata' {..} =
+    Prelude.rnf name `Prelude.seq` Prelude.rnf value
+
+instance Data.ToJSON Metadata where
+  toJSON Metadata' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("Name" Data..=) Prelude.<$> name,
+            ("Value" Data..=) Prelude.<$> value
+          ]
+      )
diff --git a/gen/Amazonka/LicenseManager/Types/OrganizationConfiguration.hs b/gen/Amazonka/LicenseManager/Types/OrganizationConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/OrganizationConfiguration.hs
@@ -0,0 +1,83 @@
+{-# 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.LicenseManager.Types.OrganizationConfiguration
+-- 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.LicenseManager.Types.OrganizationConfiguration 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
+
+-- | Configuration information for Organizations.
+--
+-- /See:/ 'newOrganizationConfiguration' smart constructor.
+data OrganizationConfiguration = OrganizationConfiguration'
+  { -- | Enables Organizations integration.
+    enableIntegration :: Prelude.Bool
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'OrganizationConfiguration' 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:
+--
+-- 'enableIntegration', 'organizationConfiguration_enableIntegration' - Enables Organizations integration.
+newOrganizationConfiguration ::
+  -- | 'enableIntegration'
+  Prelude.Bool ->
+  OrganizationConfiguration
+newOrganizationConfiguration pEnableIntegration_ =
+  OrganizationConfiguration'
+    { enableIntegration =
+        pEnableIntegration_
+    }
+
+-- | Enables Organizations integration.
+organizationConfiguration_enableIntegration :: Lens.Lens' OrganizationConfiguration Prelude.Bool
+organizationConfiguration_enableIntegration = Lens.lens (\OrganizationConfiguration' {enableIntegration} -> enableIntegration) (\s@OrganizationConfiguration' {} a -> s {enableIntegration = a} :: OrganizationConfiguration)
+
+instance Data.FromJSON OrganizationConfiguration where
+  parseJSON =
+    Data.withObject
+      "OrganizationConfiguration"
+      ( \x ->
+          OrganizationConfiguration'
+            Prelude.<$> (x Data..: "EnableIntegration")
+      )
+
+instance Prelude.Hashable OrganizationConfiguration where
+  hashWithSalt _salt OrganizationConfiguration' {..} =
+    _salt `Prelude.hashWithSalt` enableIntegration
+
+instance Prelude.NFData OrganizationConfiguration where
+  rnf OrganizationConfiguration' {..} =
+    Prelude.rnf enableIntegration
+
+instance Data.ToJSON OrganizationConfiguration where
+  toJSON OrganizationConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("EnableIntegration" Data..= enableIntegration)
+          ]
+      )
diff --git a/gen/Amazonka/LicenseManager/Types/ProductInformation.hs b/gen/Amazonka/LicenseManager/Types/ProductInformation.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/ProductInformation.hs
@@ -0,0 +1,258 @@
+{-# 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.LicenseManager.Types.ProductInformation
+-- 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.LicenseManager.Types.ProductInformation where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types.ProductInformationFilter
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes product information for a license configuration.
+--
+-- /See:/ 'newProductInformation' smart constructor.
+data ProductInformation = ProductInformation'
+  { -- | Resource type. The possible values are @SSM_MANAGED@ | @RDS@.
+    resourceType :: Prelude.Text,
+    -- | A Product information filter consists of a
+    -- @ProductInformationFilterComparator@ which is a logical operator, a
+    -- @ProductInformationFilterName@ which specifies the type of filter being
+    -- declared, and a @ProductInformationFilterValue@ that specifies the value
+    -- to filter on.
+    --
+    -- Accepted values for @ProductInformationFilterName@ are listed here along
+    -- with descriptions and valid options for
+    -- @ProductInformationFilterComparator@.
+    --
+    -- The following filters and are supported when the resource type is
+    -- @SSM_MANAGED@:
+    --
+    -- -   @Application Name@ - The name of the application. Logical operator
+    --     is @EQUALS@.
+    --
+    -- -   @Application Publisher@ - The publisher of the application. Logical
+    --     operator is @EQUALS@.
+    --
+    -- -   @Application Version@ - The version of the application. Logical
+    --     operator is @EQUALS@.
+    --
+    -- -   @Platform Name@ - The name of the platform. Logical operator is
+    --     @EQUALS@.
+    --
+    -- -   @Platform Type@ - The platform type. Logical operator is @EQUALS@.
+    --
+    -- -   @Tag:key@ - The key of a tag attached to an Amazon Web Services
+    --     resource you wish to exclude from automated discovery. Logical
+    --     operator is @NOT_EQUALS@. The key for your tag must be appended to
+    --     @Tag:@ following the example: @Tag:name-of-your-key@.
+    --     @ProductInformationFilterValue@ is optional if you are not using
+    --     values for the key.
+    --
+    -- -   @AccountId@ - The 12-digit ID of an Amazon Web Services account you
+    --     wish to exclude from automated discovery. Logical operator is
+    --     @NOT_EQUALS@.
+    --
+    -- -   @License Included@ - The type of license included. Logical operators
+    --     are @EQUALS@ and @NOT_EQUALS@. Possible values are:
+    --     @sql-server-enterprise@ | @sql-server-standard@ | @sql-server-web@ |
+    --     @windows-server-datacenter@.
+    --
+    -- The following filters and logical operators are supported when the
+    -- resource type is @RDS@:
+    --
+    -- -   @Engine Edition@ - The edition of the database engine. Logical
+    --     operator is @EQUALS@. Possible values are: @oracle-ee@ | @oracle-se@
+    --     | @oracle-se1@ | @oracle-se2@.
+    --
+    -- -   @License Pack@ - The license pack. Logical operator is @EQUALS@.
+    --     Possible values are: @data guard@ | @diagnostic pack sqlt@ |
+    --     @tuning pack sqlt@ | @ols@ | @olap@.
+    productInformationFilterList :: [ProductInformationFilter]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ProductInformation' 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:
+--
+-- 'resourceType', 'productInformation_resourceType' - Resource type. The possible values are @SSM_MANAGED@ | @RDS@.
+--
+-- 'productInformationFilterList', 'productInformation_productInformationFilterList' - A Product information filter consists of a
+-- @ProductInformationFilterComparator@ which is a logical operator, a
+-- @ProductInformationFilterName@ which specifies the type of filter being
+-- declared, and a @ProductInformationFilterValue@ that specifies the value
+-- to filter on.
+--
+-- Accepted values for @ProductInformationFilterName@ are listed here along
+-- with descriptions and valid options for
+-- @ProductInformationFilterComparator@.
+--
+-- The following filters and are supported when the resource type is
+-- @SSM_MANAGED@:
+--
+-- -   @Application Name@ - The name of the application. Logical operator
+--     is @EQUALS@.
+--
+-- -   @Application Publisher@ - The publisher of the application. Logical
+--     operator is @EQUALS@.
+--
+-- -   @Application Version@ - The version of the application. Logical
+--     operator is @EQUALS@.
+--
+-- -   @Platform Name@ - The name of the platform. Logical operator is
+--     @EQUALS@.
+--
+-- -   @Platform Type@ - The platform type. Logical operator is @EQUALS@.
+--
+-- -   @Tag:key@ - The key of a tag attached to an Amazon Web Services
+--     resource you wish to exclude from automated discovery. Logical
+--     operator is @NOT_EQUALS@. The key for your tag must be appended to
+--     @Tag:@ following the example: @Tag:name-of-your-key@.
+--     @ProductInformationFilterValue@ is optional if you are not using
+--     values for the key.
+--
+-- -   @AccountId@ - The 12-digit ID of an Amazon Web Services account you
+--     wish to exclude from automated discovery. Logical operator is
+--     @NOT_EQUALS@.
+--
+-- -   @License Included@ - The type of license included. Logical operators
+--     are @EQUALS@ and @NOT_EQUALS@. Possible values are:
+--     @sql-server-enterprise@ | @sql-server-standard@ | @sql-server-web@ |
+--     @windows-server-datacenter@.
+--
+-- The following filters and logical operators are supported when the
+-- resource type is @RDS@:
+--
+-- -   @Engine Edition@ - The edition of the database engine. Logical
+--     operator is @EQUALS@. Possible values are: @oracle-ee@ | @oracle-se@
+--     | @oracle-se1@ | @oracle-se2@.
+--
+-- -   @License Pack@ - The license pack. Logical operator is @EQUALS@.
+--     Possible values are: @data guard@ | @diagnostic pack sqlt@ |
+--     @tuning pack sqlt@ | @ols@ | @olap@.
+newProductInformation ::
+  -- | 'resourceType'
+  Prelude.Text ->
+  ProductInformation
+newProductInformation pResourceType_ =
+  ProductInformation'
+    { resourceType = pResourceType_,
+      productInformationFilterList = Prelude.mempty
+    }
+
+-- | Resource type. The possible values are @SSM_MANAGED@ | @RDS@.
+productInformation_resourceType :: Lens.Lens' ProductInformation Prelude.Text
+productInformation_resourceType = Lens.lens (\ProductInformation' {resourceType} -> resourceType) (\s@ProductInformation' {} a -> s {resourceType = a} :: ProductInformation)
+
+-- | A Product information filter consists of a
+-- @ProductInformationFilterComparator@ which is a logical operator, a
+-- @ProductInformationFilterName@ which specifies the type of filter being
+-- declared, and a @ProductInformationFilterValue@ that specifies the value
+-- to filter on.
+--
+-- Accepted values for @ProductInformationFilterName@ are listed here along
+-- with descriptions and valid options for
+-- @ProductInformationFilterComparator@.
+--
+-- The following filters and are supported when the resource type is
+-- @SSM_MANAGED@:
+--
+-- -   @Application Name@ - The name of the application. Logical operator
+--     is @EQUALS@.
+--
+-- -   @Application Publisher@ - The publisher of the application. Logical
+--     operator is @EQUALS@.
+--
+-- -   @Application Version@ - The version of the application. Logical
+--     operator is @EQUALS@.
+--
+-- -   @Platform Name@ - The name of the platform. Logical operator is
+--     @EQUALS@.
+--
+-- -   @Platform Type@ - The platform type. Logical operator is @EQUALS@.
+--
+-- -   @Tag:key@ - The key of a tag attached to an Amazon Web Services
+--     resource you wish to exclude from automated discovery. Logical
+--     operator is @NOT_EQUALS@. The key for your tag must be appended to
+--     @Tag:@ following the example: @Tag:name-of-your-key@.
+--     @ProductInformationFilterValue@ is optional if you are not using
+--     values for the key.
+--
+-- -   @AccountId@ - The 12-digit ID of an Amazon Web Services account you
+--     wish to exclude from automated discovery. Logical operator is
+--     @NOT_EQUALS@.
+--
+-- -   @License Included@ - The type of license included. Logical operators
+--     are @EQUALS@ and @NOT_EQUALS@. Possible values are:
+--     @sql-server-enterprise@ | @sql-server-standard@ | @sql-server-web@ |
+--     @windows-server-datacenter@.
+--
+-- The following filters and logical operators are supported when the
+-- resource type is @RDS@:
+--
+-- -   @Engine Edition@ - The edition of the database engine. Logical
+--     operator is @EQUALS@. Possible values are: @oracle-ee@ | @oracle-se@
+--     | @oracle-se1@ | @oracle-se2@.
+--
+-- -   @License Pack@ - The license pack. Logical operator is @EQUALS@.
+--     Possible values are: @data guard@ | @diagnostic pack sqlt@ |
+--     @tuning pack sqlt@ | @ols@ | @olap@.
+productInformation_productInformationFilterList :: Lens.Lens' ProductInformation [ProductInformationFilter]
+productInformation_productInformationFilterList = Lens.lens (\ProductInformation' {productInformationFilterList} -> productInformationFilterList) (\s@ProductInformation' {} a -> s {productInformationFilterList = a} :: ProductInformation) Prelude.. Lens.coerced
+
+instance Data.FromJSON ProductInformation where
+  parseJSON =
+    Data.withObject
+      "ProductInformation"
+      ( \x ->
+          ProductInformation'
+            Prelude.<$> (x Data..: "ResourceType")
+            Prelude.<*> ( x
+                            Data..:? "ProductInformationFilterList"
+                            Data..!= Prelude.mempty
+                        )
+      )
+
+instance Prelude.Hashable ProductInformation where
+  hashWithSalt _salt ProductInformation' {..} =
+    _salt
+      `Prelude.hashWithSalt` resourceType
+      `Prelude.hashWithSalt` productInformationFilterList
+
+instance Prelude.NFData ProductInformation where
+  rnf ProductInformation' {..} =
+    Prelude.rnf resourceType
+      `Prelude.seq` Prelude.rnf productInformationFilterList
+
+instance Data.ToJSON ProductInformation where
+  toJSON ProductInformation' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just ("ResourceType" Data..= resourceType),
+            Prelude.Just
+              ( "ProductInformationFilterList"
+                  Data..= productInformationFilterList
+              )
+          ]
+      )
diff --git a/gen/Amazonka/LicenseManager/Types/ProductInformationFilter.hs b/gen/Amazonka/LicenseManager/Types/ProductInformationFilter.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/ProductInformationFilter.hs
@@ -0,0 +1,125 @@
+{-# 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.LicenseManager.Types.ProductInformationFilter
+-- 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.LicenseManager.Types.ProductInformationFilter 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
+
+-- | Describes product information filters.
+--
+-- /See:/ 'newProductInformationFilter' smart constructor.
+data ProductInformationFilter = ProductInformationFilter'
+  { -- | Filter value.
+    productInformationFilterValue :: Prelude.Maybe [Prelude.Text],
+    -- | Filter name.
+    productInformationFilterName :: Prelude.Text,
+    -- | Logical operator.
+    productInformationFilterComparator :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ProductInformationFilter' 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:
+--
+-- 'productInformationFilterValue', 'productInformationFilter_productInformationFilterValue' - Filter value.
+--
+-- 'productInformationFilterName', 'productInformationFilter_productInformationFilterName' - Filter name.
+--
+-- 'productInformationFilterComparator', 'productInformationFilter_productInformationFilterComparator' - Logical operator.
+newProductInformationFilter ::
+  -- | 'productInformationFilterName'
+  Prelude.Text ->
+  -- | 'productInformationFilterComparator'
+  Prelude.Text ->
+  ProductInformationFilter
+newProductInformationFilter
+  pProductInformationFilterName_
+  pProductInformationFilterComparator_ =
+    ProductInformationFilter'
+      { productInformationFilterValue =
+          Prelude.Nothing,
+        productInformationFilterName =
+          pProductInformationFilterName_,
+        productInformationFilterComparator =
+          pProductInformationFilterComparator_
+      }
+
+-- | Filter value.
+productInformationFilter_productInformationFilterValue :: Lens.Lens' ProductInformationFilter (Prelude.Maybe [Prelude.Text])
+productInformationFilter_productInformationFilterValue = Lens.lens (\ProductInformationFilter' {productInformationFilterValue} -> productInformationFilterValue) (\s@ProductInformationFilter' {} a -> s {productInformationFilterValue = a} :: ProductInformationFilter) Prelude.. Lens.mapping Lens.coerced
+
+-- | Filter name.
+productInformationFilter_productInformationFilterName :: Lens.Lens' ProductInformationFilter Prelude.Text
+productInformationFilter_productInformationFilterName = Lens.lens (\ProductInformationFilter' {productInformationFilterName} -> productInformationFilterName) (\s@ProductInformationFilter' {} a -> s {productInformationFilterName = a} :: ProductInformationFilter)
+
+-- | Logical operator.
+productInformationFilter_productInformationFilterComparator :: Lens.Lens' ProductInformationFilter Prelude.Text
+productInformationFilter_productInformationFilterComparator = Lens.lens (\ProductInformationFilter' {productInformationFilterComparator} -> productInformationFilterComparator) (\s@ProductInformationFilter' {} a -> s {productInformationFilterComparator = a} :: ProductInformationFilter)
+
+instance Data.FromJSON ProductInformationFilter where
+  parseJSON =
+    Data.withObject
+      "ProductInformationFilter"
+      ( \x ->
+          ProductInformationFilter'
+            Prelude.<$> ( x
+                            Data..:? "ProductInformationFilterValue"
+                            Data..!= Prelude.mempty
+                        )
+            Prelude.<*> (x Data..: "ProductInformationFilterName")
+            Prelude.<*> (x Data..: "ProductInformationFilterComparator")
+      )
+
+instance Prelude.Hashable ProductInformationFilter where
+  hashWithSalt _salt ProductInformationFilter' {..} =
+    _salt
+      `Prelude.hashWithSalt` productInformationFilterValue
+      `Prelude.hashWithSalt` productInformationFilterName
+      `Prelude.hashWithSalt` productInformationFilterComparator
+
+instance Prelude.NFData ProductInformationFilter where
+  rnf ProductInformationFilter' {..} =
+    Prelude.rnf productInformationFilterValue
+      `Prelude.seq` Prelude.rnf productInformationFilterName
+      `Prelude.seq` Prelude.rnf productInformationFilterComparator
+
+instance Data.ToJSON ProductInformationFilter where
+  toJSON ProductInformationFilter' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("ProductInformationFilterValue" Data..=)
+              Prelude.<$> productInformationFilterValue,
+            Prelude.Just
+              ( "ProductInformationFilterName"
+                  Data..= productInformationFilterName
+              ),
+            Prelude.Just
+              ( "ProductInformationFilterComparator"
+                  Data..= productInformationFilterComparator
+              )
+          ]
+      )
diff --git a/gen/Amazonka/LicenseManager/Types/ProvisionalConfiguration.hs b/gen/Amazonka/LicenseManager/Types/ProvisionalConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/ProvisionalConfiguration.hs
@@ -0,0 +1,85 @@
+{-# 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.LicenseManager.Types.ProvisionalConfiguration
+-- 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.LicenseManager.Types.ProvisionalConfiguration 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
+
+-- | Details about a provisional configuration.
+--
+-- /See:/ 'newProvisionalConfiguration' smart constructor.
+data ProvisionalConfiguration = ProvisionalConfiguration'
+  { -- | Maximum time for the provisional configuration, in minutes.
+    maxTimeToLiveInMinutes :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ProvisionalConfiguration' 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:
+--
+-- 'maxTimeToLiveInMinutes', 'provisionalConfiguration_maxTimeToLiveInMinutes' - Maximum time for the provisional configuration, in minutes.
+newProvisionalConfiguration ::
+  -- | 'maxTimeToLiveInMinutes'
+  Prelude.Int ->
+  ProvisionalConfiguration
+newProvisionalConfiguration pMaxTimeToLiveInMinutes_ =
+  ProvisionalConfiguration'
+    { maxTimeToLiveInMinutes =
+        pMaxTimeToLiveInMinutes_
+    }
+
+-- | Maximum time for the provisional configuration, in minutes.
+provisionalConfiguration_maxTimeToLiveInMinutes :: Lens.Lens' ProvisionalConfiguration Prelude.Int
+provisionalConfiguration_maxTimeToLiveInMinutes = Lens.lens (\ProvisionalConfiguration' {maxTimeToLiveInMinutes} -> maxTimeToLiveInMinutes) (\s@ProvisionalConfiguration' {} a -> s {maxTimeToLiveInMinutes = a} :: ProvisionalConfiguration)
+
+instance Data.FromJSON ProvisionalConfiguration where
+  parseJSON =
+    Data.withObject
+      "ProvisionalConfiguration"
+      ( \x ->
+          ProvisionalConfiguration'
+            Prelude.<$> (x Data..: "MaxTimeToLiveInMinutes")
+      )
+
+instance Prelude.Hashable ProvisionalConfiguration where
+  hashWithSalt _salt ProvisionalConfiguration' {..} =
+    _salt `Prelude.hashWithSalt` maxTimeToLiveInMinutes
+
+instance Prelude.NFData ProvisionalConfiguration where
+  rnf ProvisionalConfiguration' {..} =
+    Prelude.rnf maxTimeToLiveInMinutes
+
+instance Data.ToJSON ProvisionalConfiguration where
+  toJSON ProvisionalConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ( "MaxTimeToLiveInMinutes"
+                  Data..= maxTimeToLiveInMinutes
+              )
+          ]
+      )
diff --git a/gen/Amazonka/LicenseManager/Types/ReceivedMetadata.hs b/gen/Amazonka/LicenseManager/Types/ReceivedMetadata.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/ReceivedMetadata.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.LicenseManager.Types.ReceivedMetadata
+-- 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.LicenseManager.Types.ReceivedMetadata where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types.AllowedOperation
+import Amazonka.LicenseManager.Types.ReceivedStatus
+import qualified Amazonka.Prelude as Prelude
+
+-- | Metadata associated with received licenses and grants.
+--
+-- /See:/ 'newReceivedMetadata' smart constructor.
+data ReceivedMetadata = ReceivedMetadata'
+  { -- | Allowed operations.
+    allowedOperations :: Prelude.Maybe (Prelude.NonEmpty AllowedOperation),
+    -- | Received status.
+    receivedStatus :: Prelude.Maybe ReceivedStatus,
+    -- | Received status reason.
+    receivedStatusReason :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ReceivedMetadata' 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:
+--
+-- 'allowedOperations', 'receivedMetadata_allowedOperations' - Allowed operations.
+--
+-- 'receivedStatus', 'receivedMetadata_receivedStatus' - Received status.
+--
+-- 'receivedStatusReason', 'receivedMetadata_receivedStatusReason' - Received status reason.
+newReceivedMetadata ::
+  ReceivedMetadata
+newReceivedMetadata =
+  ReceivedMetadata'
+    { allowedOperations =
+        Prelude.Nothing,
+      receivedStatus = Prelude.Nothing,
+      receivedStatusReason = Prelude.Nothing
+    }
+
+-- | Allowed operations.
+receivedMetadata_allowedOperations :: Lens.Lens' ReceivedMetadata (Prelude.Maybe (Prelude.NonEmpty AllowedOperation))
+receivedMetadata_allowedOperations = Lens.lens (\ReceivedMetadata' {allowedOperations} -> allowedOperations) (\s@ReceivedMetadata' {} a -> s {allowedOperations = a} :: ReceivedMetadata) Prelude.. Lens.mapping Lens.coerced
+
+-- | Received status.
+receivedMetadata_receivedStatus :: Lens.Lens' ReceivedMetadata (Prelude.Maybe ReceivedStatus)
+receivedMetadata_receivedStatus = Lens.lens (\ReceivedMetadata' {receivedStatus} -> receivedStatus) (\s@ReceivedMetadata' {} a -> s {receivedStatus = a} :: ReceivedMetadata)
+
+-- | Received status reason.
+receivedMetadata_receivedStatusReason :: Lens.Lens' ReceivedMetadata (Prelude.Maybe Prelude.Text)
+receivedMetadata_receivedStatusReason = Lens.lens (\ReceivedMetadata' {receivedStatusReason} -> receivedStatusReason) (\s@ReceivedMetadata' {} a -> s {receivedStatusReason = a} :: ReceivedMetadata)
+
+instance Data.FromJSON ReceivedMetadata where
+  parseJSON =
+    Data.withObject
+      "ReceivedMetadata"
+      ( \x ->
+          ReceivedMetadata'
+            Prelude.<$> (x Data..:? "AllowedOperations")
+            Prelude.<*> (x Data..:? "ReceivedStatus")
+            Prelude.<*> (x Data..:? "ReceivedStatusReason")
+      )
+
+instance Prelude.Hashable ReceivedMetadata where
+  hashWithSalt _salt ReceivedMetadata' {..} =
+    _salt
+      `Prelude.hashWithSalt` allowedOperations
+      `Prelude.hashWithSalt` receivedStatus
+      `Prelude.hashWithSalt` receivedStatusReason
+
+instance Prelude.NFData ReceivedMetadata where
+  rnf ReceivedMetadata' {..} =
+    Prelude.rnf allowedOperations
+      `Prelude.seq` Prelude.rnf receivedStatus
+      `Prelude.seq` Prelude.rnf receivedStatusReason
diff --git a/gen/Amazonka/LicenseManager/Types/ReceivedStatus.hs b/gen/Amazonka/LicenseManager/Types/ReceivedStatus.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/ReceivedStatus.hs
@@ -0,0 +1,101 @@
+{-# 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.LicenseManager.Types.ReceivedStatus
+-- 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.LicenseManager.Types.ReceivedStatus
+  ( ReceivedStatus
+      ( ..,
+        ReceivedStatus_ACTIVE,
+        ReceivedStatus_DELETED,
+        ReceivedStatus_DISABLED,
+        ReceivedStatus_FAILED_WORKFLOW,
+        ReceivedStatus_PENDING_ACCEPT,
+        ReceivedStatus_PENDING_WORKFLOW,
+        ReceivedStatus_REJECTED,
+        ReceivedStatus_WORKFLOW_COMPLETED
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype ReceivedStatus = ReceivedStatus'
+  { fromReceivedStatus ::
+      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 ReceivedStatus_ACTIVE :: ReceivedStatus
+pattern ReceivedStatus_ACTIVE = ReceivedStatus' "ACTIVE"
+
+pattern ReceivedStatus_DELETED :: ReceivedStatus
+pattern ReceivedStatus_DELETED = ReceivedStatus' "DELETED"
+
+pattern ReceivedStatus_DISABLED :: ReceivedStatus
+pattern ReceivedStatus_DISABLED = ReceivedStatus' "DISABLED"
+
+pattern ReceivedStatus_FAILED_WORKFLOW :: ReceivedStatus
+pattern ReceivedStatus_FAILED_WORKFLOW = ReceivedStatus' "FAILED_WORKFLOW"
+
+pattern ReceivedStatus_PENDING_ACCEPT :: ReceivedStatus
+pattern ReceivedStatus_PENDING_ACCEPT = ReceivedStatus' "PENDING_ACCEPT"
+
+pattern ReceivedStatus_PENDING_WORKFLOW :: ReceivedStatus
+pattern ReceivedStatus_PENDING_WORKFLOW = ReceivedStatus' "PENDING_WORKFLOW"
+
+pattern ReceivedStatus_REJECTED :: ReceivedStatus
+pattern ReceivedStatus_REJECTED = ReceivedStatus' "REJECTED"
+
+pattern ReceivedStatus_WORKFLOW_COMPLETED :: ReceivedStatus
+pattern ReceivedStatus_WORKFLOW_COMPLETED = ReceivedStatus' "WORKFLOW_COMPLETED"
+
+{-# COMPLETE
+  ReceivedStatus_ACTIVE,
+  ReceivedStatus_DELETED,
+  ReceivedStatus_DISABLED,
+  ReceivedStatus_FAILED_WORKFLOW,
+  ReceivedStatus_PENDING_ACCEPT,
+  ReceivedStatus_PENDING_WORKFLOW,
+  ReceivedStatus_REJECTED,
+  ReceivedStatus_WORKFLOW_COMPLETED,
+  ReceivedStatus'
+  #-}
diff --git a/gen/Amazonka/LicenseManager/Types/RenewType.hs b/gen/Amazonka/LicenseManager/Types/RenewType.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/RenewType.hs
@@ -0,0 +1,76 @@
+{-# 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.LicenseManager.Types.RenewType
+-- 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.LicenseManager.Types.RenewType
+  ( RenewType
+      ( ..,
+        RenewType_Monthly,
+        RenewType_None,
+        RenewType_Weekly
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype RenewType = RenewType'
+  { fromRenewType ::
+      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 RenewType_Monthly :: RenewType
+pattern RenewType_Monthly = RenewType' "Monthly"
+
+pattern RenewType_None :: RenewType
+pattern RenewType_None = RenewType' "None"
+
+pattern RenewType_Weekly :: RenewType
+pattern RenewType_Weekly = RenewType' "Weekly"
+
+{-# COMPLETE
+  RenewType_Monthly,
+  RenewType_None,
+  RenewType_Weekly,
+  RenewType'
+  #-}
diff --git a/gen/Amazonka/LicenseManager/Types/ReportContext.hs b/gen/Amazonka/LicenseManager/Types/ReportContext.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/ReportContext.hs
@@ -0,0 +1,90 @@
+{-# 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.LicenseManager.Types.ReportContext
+-- 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.LicenseManager.Types.ReportContext 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
+
+-- | Details of the license configuration that this generator reports on.
+--
+-- /See:/ 'newReportContext' smart constructor.
+data ReportContext = ReportContext'
+  { -- | Amazon Resource Name (ARN) of the license configuration that this
+    -- generator reports on.
+    licenseConfigurationArns :: [Prelude.Text]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ReportContext' 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:
+--
+-- 'licenseConfigurationArns', 'reportContext_licenseConfigurationArns' - Amazon Resource Name (ARN) of the license configuration that this
+-- generator reports on.
+newReportContext ::
+  ReportContext
+newReportContext =
+  ReportContext'
+    { licenseConfigurationArns =
+        Prelude.mempty
+    }
+
+-- | Amazon Resource Name (ARN) of the license configuration that this
+-- generator reports on.
+reportContext_licenseConfigurationArns :: Lens.Lens' ReportContext [Prelude.Text]
+reportContext_licenseConfigurationArns = Lens.lens (\ReportContext' {licenseConfigurationArns} -> licenseConfigurationArns) (\s@ReportContext' {} a -> s {licenseConfigurationArns = a} :: ReportContext) Prelude.. Lens.coerced
+
+instance Data.FromJSON ReportContext where
+  parseJSON =
+    Data.withObject
+      "ReportContext"
+      ( \x ->
+          ReportContext'
+            Prelude.<$> ( x
+                            Data..:? "licenseConfigurationArns"
+                            Data..!= Prelude.mempty
+                        )
+      )
+
+instance Prelude.Hashable ReportContext where
+  hashWithSalt _salt ReportContext' {..} =
+    _salt
+      `Prelude.hashWithSalt` licenseConfigurationArns
+
+instance Prelude.NFData ReportContext where
+  rnf ReportContext' {..} =
+    Prelude.rnf licenseConfigurationArns
+
+instance Data.ToJSON ReportContext where
+  toJSON ReportContext' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ( "licenseConfigurationArns"
+                  Data..= licenseConfigurationArns
+              )
+          ]
+      )
diff --git a/gen/Amazonka/LicenseManager/Types/ReportFrequency.hs b/gen/Amazonka/LicenseManager/Types/ReportFrequency.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/ReportFrequency.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.LicenseManager.Types.ReportFrequency
+-- 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.LicenseManager.Types.ReportFrequency where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types.ReportFrequencyType
+import qualified Amazonka.Prelude as Prelude
+
+-- | Details about how frequently reports are generated.
+--
+-- /See:/ 'newReportFrequency' smart constructor.
+data ReportFrequency = ReportFrequency'
+  { -- | Time period between each report. The period can be daily, weekly, or
+    -- monthly.
+    period :: Prelude.Maybe ReportFrequencyType,
+    -- | Number of times within the frequency period that a report is generated.
+    -- The only supported value is @1@.
+    value :: Prelude.Maybe Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ReportFrequency' 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:
+--
+-- 'period', 'reportFrequency_period' - Time period between each report. The period can be daily, weekly, or
+-- monthly.
+--
+-- 'value', 'reportFrequency_value' - Number of times within the frequency period that a report is generated.
+-- The only supported value is @1@.
+newReportFrequency ::
+  ReportFrequency
+newReportFrequency =
+  ReportFrequency'
+    { period = Prelude.Nothing,
+      value = Prelude.Nothing
+    }
+
+-- | Time period between each report. The period can be daily, weekly, or
+-- monthly.
+reportFrequency_period :: Lens.Lens' ReportFrequency (Prelude.Maybe ReportFrequencyType)
+reportFrequency_period = Lens.lens (\ReportFrequency' {period} -> period) (\s@ReportFrequency' {} a -> s {period = a} :: ReportFrequency)
+
+-- | Number of times within the frequency period that a report is generated.
+-- The only supported value is @1@.
+reportFrequency_value :: Lens.Lens' ReportFrequency (Prelude.Maybe Prelude.Int)
+reportFrequency_value = Lens.lens (\ReportFrequency' {value} -> value) (\s@ReportFrequency' {} a -> s {value = a} :: ReportFrequency)
+
+instance Data.FromJSON ReportFrequency where
+  parseJSON =
+    Data.withObject
+      "ReportFrequency"
+      ( \x ->
+          ReportFrequency'
+            Prelude.<$> (x Data..:? "period")
+            Prelude.<*> (x Data..:? "value")
+      )
+
+instance Prelude.Hashable ReportFrequency where
+  hashWithSalt _salt ReportFrequency' {..} =
+    _salt
+      `Prelude.hashWithSalt` period
+      `Prelude.hashWithSalt` value
+
+instance Prelude.NFData ReportFrequency where
+  rnf ReportFrequency' {..} =
+    Prelude.rnf period `Prelude.seq` Prelude.rnf value
+
+instance Data.ToJSON ReportFrequency where
+  toJSON ReportFrequency' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("period" Data..=) Prelude.<$> period,
+            ("value" Data..=) Prelude.<$> value
+          ]
+      )
diff --git a/gen/Amazonka/LicenseManager/Types/ReportFrequencyType.hs b/gen/Amazonka/LicenseManager/Types/ReportFrequencyType.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/ReportFrequencyType.hs
@@ -0,0 +1,76 @@
+{-# 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.LicenseManager.Types.ReportFrequencyType
+-- 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.LicenseManager.Types.ReportFrequencyType
+  ( ReportFrequencyType
+      ( ..,
+        ReportFrequencyType_DAY,
+        ReportFrequencyType_MONTH,
+        ReportFrequencyType_WEEK
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype ReportFrequencyType = ReportFrequencyType'
+  { fromReportFrequencyType ::
+      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 ReportFrequencyType_DAY :: ReportFrequencyType
+pattern ReportFrequencyType_DAY = ReportFrequencyType' "DAY"
+
+pattern ReportFrequencyType_MONTH :: ReportFrequencyType
+pattern ReportFrequencyType_MONTH = ReportFrequencyType' "MONTH"
+
+pattern ReportFrequencyType_WEEK :: ReportFrequencyType
+pattern ReportFrequencyType_WEEK = ReportFrequencyType' "WEEK"
+
+{-# COMPLETE
+  ReportFrequencyType_DAY,
+  ReportFrequencyType_MONTH,
+  ReportFrequencyType_WEEK,
+  ReportFrequencyType'
+  #-}
diff --git a/gen/Amazonka/LicenseManager/Types/ReportGenerator.hs b/gen/Amazonka/LicenseManager/Types/ReportGenerator.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/ReportGenerator.hs
@@ -0,0 +1,221 @@
+{-# 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.LicenseManager.Types.ReportGenerator
+-- 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.LicenseManager.Types.ReportGenerator where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types.ReportContext
+import Amazonka.LicenseManager.Types.ReportFrequency
+import Amazonka.LicenseManager.Types.ReportType
+import Amazonka.LicenseManager.Types.S3Location
+import Amazonka.LicenseManager.Types.Tag
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describe the details of a report generator.
+--
+-- /See:/ 'newReportGenerator' smart constructor.
+data ReportGenerator = ReportGenerator'
+  { -- | Time the report was created.
+    createTime :: Prelude.Maybe Prelude.Text,
+    -- | Description of the report generator.
+    description :: Prelude.Maybe Prelude.Text,
+    -- | Time the last report was generated at.
+    lastReportGenerationTime :: Prelude.Maybe Prelude.Text,
+    -- | Failure message for the last report generation attempt.
+    lastRunFailureReason :: Prelude.Maybe Prelude.Text,
+    -- | Status of the last report generation attempt.
+    lastRunStatus :: Prelude.Maybe Prelude.Text,
+    -- | Amazon Resource Name (ARN) of the report generator.
+    licenseManagerReportGeneratorArn :: Prelude.Maybe Prelude.Text,
+    -- | License configuration type for this generator.
+    reportContext :: Prelude.Maybe ReportContext,
+    -- | The Amazon Web Services account ID used to create the report generator.
+    reportCreatorAccount :: Prelude.Maybe Prelude.Text,
+    -- | Details about how frequently reports are generated.
+    reportFrequency :: Prelude.Maybe ReportFrequency,
+    -- | Name of the report generator.
+    reportGeneratorName :: Prelude.Maybe Prelude.Text,
+    -- | Type of reports that are generated.
+    reportType :: Prelude.Maybe [ReportType],
+    -- | Details of the S3 bucket that report generator reports are published to.
+    s3Location :: Prelude.Maybe S3Location,
+    -- | Tags associated with the report generator.
+    tags :: Prelude.Maybe [Tag]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ReportGenerator' 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:
+--
+-- 'createTime', 'reportGenerator_createTime' - Time the report was created.
+--
+-- 'description', 'reportGenerator_description' - Description of the report generator.
+--
+-- 'lastReportGenerationTime', 'reportGenerator_lastReportGenerationTime' - Time the last report was generated at.
+--
+-- 'lastRunFailureReason', 'reportGenerator_lastRunFailureReason' - Failure message for the last report generation attempt.
+--
+-- 'lastRunStatus', 'reportGenerator_lastRunStatus' - Status of the last report generation attempt.
+--
+-- 'licenseManagerReportGeneratorArn', 'reportGenerator_licenseManagerReportGeneratorArn' - Amazon Resource Name (ARN) of the report generator.
+--
+-- 'reportContext', 'reportGenerator_reportContext' - License configuration type for this generator.
+--
+-- 'reportCreatorAccount', 'reportGenerator_reportCreatorAccount' - The Amazon Web Services account ID used to create the report generator.
+--
+-- 'reportFrequency', 'reportGenerator_reportFrequency' - Details about how frequently reports are generated.
+--
+-- 'reportGeneratorName', 'reportGenerator_reportGeneratorName' - Name of the report generator.
+--
+-- 'reportType', 'reportGenerator_reportType' - Type of reports that are generated.
+--
+-- 's3Location', 'reportGenerator_s3Location' - Details of the S3 bucket that report generator reports are published to.
+--
+-- 'tags', 'reportGenerator_tags' - Tags associated with the report generator.
+newReportGenerator ::
+  ReportGenerator
+newReportGenerator =
+  ReportGenerator'
+    { createTime = Prelude.Nothing,
+      description = Prelude.Nothing,
+      lastReportGenerationTime = Prelude.Nothing,
+      lastRunFailureReason = Prelude.Nothing,
+      lastRunStatus = Prelude.Nothing,
+      licenseManagerReportGeneratorArn = Prelude.Nothing,
+      reportContext = Prelude.Nothing,
+      reportCreatorAccount = Prelude.Nothing,
+      reportFrequency = Prelude.Nothing,
+      reportGeneratorName = Prelude.Nothing,
+      reportType = Prelude.Nothing,
+      s3Location = Prelude.Nothing,
+      tags = Prelude.Nothing
+    }
+
+-- | Time the report was created.
+reportGenerator_createTime :: Lens.Lens' ReportGenerator (Prelude.Maybe Prelude.Text)
+reportGenerator_createTime = Lens.lens (\ReportGenerator' {createTime} -> createTime) (\s@ReportGenerator' {} a -> s {createTime = a} :: ReportGenerator)
+
+-- | Description of the report generator.
+reportGenerator_description :: Lens.Lens' ReportGenerator (Prelude.Maybe Prelude.Text)
+reportGenerator_description = Lens.lens (\ReportGenerator' {description} -> description) (\s@ReportGenerator' {} a -> s {description = a} :: ReportGenerator)
+
+-- | Time the last report was generated at.
+reportGenerator_lastReportGenerationTime :: Lens.Lens' ReportGenerator (Prelude.Maybe Prelude.Text)
+reportGenerator_lastReportGenerationTime = Lens.lens (\ReportGenerator' {lastReportGenerationTime} -> lastReportGenerationTime) (\s@ReportGenerator' {} a -> s {lastReportGenerationTime = a} :: ReportGenerator)
+
+-- | Failure message for the last report generation attempt.
+reportGenerator_lastRunFailureReason :: Lens.Lens' ReportGenerator (Prelude.Maybe Prelude.Text)
+reportGenerator_lastRunFailureReason = Lens.lens (\ReportGenerator' {lastRunFailureReason} -> lastRunFailureReason) (\s@ReportGenerator' {} a -> s {lastRunFailureReason = a} :: ReportGenerator)
+
+-- | Status of the last report generation attempt.
+reportGenerator_lastRunStatus :: Lens.Lens' ReportGenerator (Prelude.Maybe Prelude.Text)
+reportGenerator_lastRunStatus = Lens.lens (\ReportGenerator' {lastRunStatus} -> lastRunStatus) (\s@ReportGenerator' {} a -> s {lastRunStatus = a} :: ReportGenerator)
+
+-- | Amazon Resource Name (ARN) of the report generator.
+reportGenerator_licenseManagerReportGeneratorArn :: Lens.Lens' ReportGenerator (Prelude.Maybe Prelude.Text)
+reportGenerator_licenseManagerReportGeneratorArn = Lens.lens (\ReportGenerator' {licenseManagerReportGeneratorArn} -> licenseManagerReportGeneratorArn) (\s@ReportGenerator' {} a -> s {licenseManagerReportGeneratorArn = a} :: ReportGenerator)
+
+-- | License configuration type for this generator.
+reportGenerator_reportContext :: Lens.Lens' ReportGenerator (Prelude.Maybe ReportContext)
+reportGenerator_reportContext = Lens.lens (\ReportGenerator' {reportContext} -> reportContext) (\s@ReportGenerator' {} a -> s {reportContext = a} :: ReportGenerator)
+
+-- | The Amazon Web Services account ID used to create the report generator.
+reportGenerator_reportCreatorAccount :: Lens.Lens' ReportGenerator (Prelude.Maybe Prelude.Text)
+reportGenerator_reportCreatorAccount = Lens.lens (\ReportGenerator' {reportCreatorAccount} -> reportCreatorAccount) (\s@ReportGenerator' {} a -> s {reportCreatorAccount = a} :: ReportGenerator)
+
+-- | Details about how frequently reports are generated.
+reportGenerator_reportFrequency :: Lens.Lens' ReportGenerator (Prelude.Maybe ReportFrequency)
+reportGenerator_reportFrequency = Lens.lens (\ReportGenerator' {reportFrequency} -> reportFrequency) (\s@ReportGenerator' {} a -> s {reportFrequency = a} :: ReportGenerator)
+
+-- | Name of the report generator.
+reportGenerator_reportGeneratorName :: Lens.Lens' ReportGenerator (Prelude.Maybe Prelude.Text)
+reportGenerator_reportGeneratorName = Lens.lens (\ReportGenerator' {reportGeneratorName} -> reportGeneratorName) (\s@ReportGenerator' {} a -> s {reportGeneratorName = a} :: ReportGenerator)
+
+-- | Type of reports that are generated.
+reportGenerator_reportType :: Lens.Lens' ReportGenerator (Prelude.Maybe [ReportType])
+reportGenerator_reportType = Lens.lens (\ReportGenerator' {reportType} -> reportType) (\s@ReportGenerator' {} a -> s {reportType = a} :: ReportGenerator) Prelude.. Lens.mapping Lens.coerced
+
+-- | Details of the S3 bucket that report generator reports are published to.
+reportGenerator_s3Location :: Lens.Lens' ReportGenerator (Prelude.Maybe S3Location)
+reportGenerator_s3Location = Lens.lens (\ReportGenerator' {s3Location} -> s3Location) (\s@ReportGenerator' {} a -> s {s3Location = a} :: ReportGenerator)
+
+-- | Tags associated with the report generator.
+reportGenerator_tags :: Lens.Lens' ReportGenerator (Prelude.Maybe [Tag])
+reportGenerator_tags = Lens.lens (\ReportGenerator' {tags} -> tags) (\s@ReportGenerator' {} a -> s {tags = a} :: ReportGenerator) Prelude.. Lens.mapping Lens.coerced
+
+instance Data.FromJSON ReportGenerator where
+  parseJSON =
+    Data.withObject
+      "ReportGenerator"
+      ( \x ->
+          ReportGenerator'
+            Prelude.<$> (x Data..:? "CreateTime")
+            Prelude.<*> (x Data..:? "Description")
+            Prelude.<*> (x Data..:? "LastReportGenerationTime")
+            Prelude.<*> (x Data..:? "LastRunFailureReason")
+            Prelude.<*> (x Data..:? "LastRunStatus")
+            Prelude.<*> (x Data..:? "LicenseManagerReportGeneratorArn")
+            Prelude.<*> (x Data..:? "ReportContext")
+            Prelude.<*> (x Data..:? "ReportCreatorAccount")
+            Prelude.<*> (x Data..:? "ReportFrequency")
+            Prelude.<*> (x Data..:? "ReportGeneratorName")
+            Prelude.<*> (x Data..:? "ReportType" Data..!= Prelude.mempty)
+            Prelude.<*> (x Data..:? "S3Location")
+            Prelude.<*> (x Data..:? "Tags" Data..!= Prelude.mempty)
+      )
+
+instance Prelude.Hashable ReportGenerator where
+  hashWithSalt _salt ReportGenerator' {..} =
+    _salt
+      `Prelude.hashWithSalt` createTime
+      `Prelude.hashWithSalt` description
+      `Prelude.hashWithSalt` lastReportGenerationTime
+      `Prelude.hashWithSalt` lastRunFailureReason
+      `Prelude.hashWithSalt` lastRunStatus
+      `Prelude.hashWithSalt` licenseManagerReportGeneratorArn
+      `Prelude.hashWithSalt` reportContext
+      `Prelude.hashWithSalt` reportCreatorAccount
+      `Prelude.hashWithSalt` reportFrequency
+      `Prelude.hashWithSalt` reportGeneratorName
+      `Prelude.hashWithSalt` reportType
+      `Prelude.hashWithSalt` s3Location
+      `Prelude.hashWithSalt` tags
+
+instance Prelude.NFData ReportGenerator where
+  rnf ReportGenerator' {..} =
+    Prelude.rnf createTime
+      `Prelude.seq` Prelude.rnf description
+      `Prelude.seq` Prelude.rnf lastReportGenerationTime
+      `Prelude.seq` Prelude.rnf lastRunFailureReason
+      `Prelude.seq` Prelude.rnf lastRunStatus
+      `Prelude.seq` Prelude.rnf licenseManagerReportGeneratorArn
+      `Prelude.seq` Prelude.rnf reportContext
+      `Prelude.seq` Prelude.rnf reportCreatorAccount
+      `Prelude.seq` Prelude.rnf reportFrequency
+      `Prelude.seq` Prelude.rnf reportGeneratorName
+      `Prelude.seq` Prelude.rnf reportType
+      `Prelude.seq` Prelude.rnf s3Location
+      `Prelude.seq` Prelude.rnf tags
diff --git a/gen/Amazonka/LicenseManager/Types/ReportType.hs b/gen/Amazonka/LicenseManager/Types/ReportType.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/ReportType.hs
@@ -0,0 +1,71 @@
+{-# 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.LicenseManager.Types.ReportType
+-- 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.LicenseManager.Types.ReportType
+  ( ReportType
+      ( ..,
+        ReportType_LicenseConfigurationSummaryReport,
+        ReportType_LicenseConfigurationUsageReport
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype ReportType = ReportType'
+  { fromReportType ::
+      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 ReportType_LicenseConfigurationSummaryReport :: ReportType
+pattern ReportType_LicenseConfigurationSummaryReport = ReportType' "LicenseConfigurationSummaryReport"
+
+pattern ReportType_LicenseConfigurationUsageReport :: ReportType
+pattern ReportType_LicenseConfigurationUsageReport = ReportType' "LicenseConfigurationUsageReport"
+
+{-# COMPLETE
+  ReportType_LicenseConfigurationSummaryReport,
+  ReportType_LicenseConfigurationUsageReport,
+  ReportType'
+  #-}
diff --git a/gen/Amazonka/LicenseManager/Types/ResourceInventory.hs b/gen/Amazonka/LicenseManager/Types/ResourceInventory.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/ResourceInventory.hs
@@ -0,0 +1,133 @@
+{-# 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.LicenseManager.Types.ResourceInventory
+-- 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.LicenseManager.Types.ResourceInventory where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types.ResourceType
+import qualified Amazonka.Prelude as Prelude
+
+-- | Details about a resource.
+--
+-- /See:/ 'newResourceInventory' smart constructor.
+data ResourceInventory = ResourceInventory'
+  { -- | Platform of the resource.
+    platform :: Prelude.Maybe Prelude.Text,
+    -- | Platform version of the resource in the inventory.
+    platformVersion :: Prelude.Maybe Prelude.Text,
+    -- | Amazon Resource Name (ARN) of the resource.
+    resourceArn :: Prelude.Maybe Prelude.Text,
+    -- | ID of the resource.
+    resourceId :: Prelude.Maybe Prelude.Text,
+    -- | ID of the account that owns the resource.
+    resourceOwningAccountId :: Prelude.Maybe Prelude.Text,
+    -- | Type of resource.
+    resourceType :: Prelude.Maybe ResourceType
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ResourceInventory' 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:
+--
+-- 'platform', 'resourceInventory_platform' - Platform of the resource.
+--
+-- 'platformVersion', 'resourceInventory_platformVersion' - Platform version of the resource in the inventory.
+--
+-- 'resourceArn', 'resourceInventory_resourceArn' - Amazon Resource Name (ARN) of the resource.
+--
+-- 'resourceId', 'resourceInventory_resourceId' - ID of the resource.
+--
+-- 'resourceOwningAccountId', 'resourceInventory_resourceOwningAccountId' - ID of the account that owns the resource.
+--
+-- 'resourceType', 'resourceInventory_resourceType' - Type of resource.
+newResourceInventory ::
+  ResourceInventory
+newResourceInventory =
+  ResourceInventory'
+    { platform = Prelude.Nothing,
+      platformVersion = Prelude.Nothing,
+      resourceArn = Prelude.Nothing,
+      resourceId = Prelude.Nothing,
+      resourceOwningAccountId = Prelude.Nothing,
+      resourceType = Prelude.Nothing
+    }
+
+-- | Platform of the resource.
+resourceInventory_platform :: Lens.Lens' ResourceInventory (Prelude.Maybe Prelude.Text)
+resourceInventory_platform = Lens.lens (\ResourceInventory' {platform} -> platform) (\s@ResourceInventory' {} a -> s {platform = a} :: ResourceInventory)
+
+-- | Platform version of the resource in the inventory.
+resourceInventory_platformVersion :: Lens.Lens' ResourceInventory (Prelude.Maybe Prelude.Text)
+resourceInventory_platformVersion = Lens.lens (\ResourceInventory' {platformVersion} -> platformVersion) (\s@ResourceInventory' {} a -> s {platformVersion = a} :: ResourceInventory)
+
+-- | Amazon Resource Name (ARN) of the resource.
+resourceInventory_resourceArn :: Lens.Lens' ResourceInventory (Prelude.Maybe Prelude.Text)
+resourceInventory_resourceArn = Lens.lens (\ResourceInventory' {resourceArn} -> resourceArn) (\s@ResourceInventory' {} a -> s {resourceArn = a} :: ResourceInventory)
+
+-- | ID of the resource.
+resourceInventory_resourceId :: Lens.Lens' ResourceInventory (Prelude.Maybe Prelude.Text)
+resourceInventory_resourceId = Lens.lens (\ResourceInventory' {resourceId} -> resourceId) (\s@ResourceInventory' {} a -> s {resourceId = a} :: ResourceInventory)
+
+-- | ID of the account that owns the resource.
+resourceInventory_resourceOwningAccountId :: Lens.Lens' ResourceInventory (Prelude.Maybe Prelude.Text)
+resourceInventory_resourceOwningAccountId = Lens.lens (\ResourceInventory' {resourceOwningAccountId} -> resourceOwningAccountId) (\s@ResourceInventory' {} a -> s {resourceOwningAccountId = a} :: ResourceInventory)
+
+-- | Type of resource.
+resourceInventory_resourceType :: Lens.Lens' ResourceInventory (Prelude.Maybe ResourceType)
+resourceInventory_resourceType = Lens.lens (\ResourceInventory' {resourceType} -> resourceType) (\s@ResourceInventory' {} a -> s {resourceType = a} :: ResourceInventory)
+
+instance Data.FromJSON ResourceInventory where
+  parseJSON =
+    Data.withObject
+      "ResourceInventory"
+      ( \x ->
+          ResourceInventory'
+            Prelude.<$> (x Data..:? "Platform")
+            Prelude.<*> (x Data..:? "PlatformVersion")
+            Prelude.<*> (x Data..:? "ResourceArn")
+            Prelude.<*> (x Data..:? "ResourceId")
+            Prelude.<*> (x Data..:? "ResourceOwningAccountId")
+            Prelude.<*> (x Data..:? "ResourceType")
+      )
+
+instance Prelude.Hashable ResourceInventory where
+  hashWithSalt _salt ResourceInventory' {..} =
+    _salt
+      `Prelude.hashWithSalt` platform
+      `Prelude.hashWithSalt` platformVersion
+      `Prelude.hashWithSalt` resourceArn
+      `Prelude.hashWithSalt` resourceId
+      `Prelude.hashWithSalt` resourceOwningAccountId
+      `Prelude.hashWithSalt` resourceType
+
+instance Prelude.NFData ResourceInventory where
+  rnf ResourceInventory' {..} =
+    Prelude.rnf platform
+      `Prelude.seq` Prelude.rnf platformVersion
+      `Prelude.seq` Prelude.rnf resourceArn
+      `Prelude.seq` Prelude.rnf resourceId
+      `Prelude.seq` Prelude.rnf resourceOwningAccountId
+      `Prelude.seq` Prelude.rnf resourceType
diff --git a/gen/Amazonka/LicenseManager/Types/ResourceType.hs b/gen/Amazonka/LicenseManager/Types/ResourceType.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/ResourceType.hs
@@ -0,0 +1,86 @@
+{-# 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.LicenseManager.Types.ResourceType
+-- 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.LicenseManager.Types.ResourceType
+  ( ResourceType
+      ( ..,
+        ResourceType_EC2_AMI,
+        ResourceType_EC2_HOST,
+        ResourceType_EC2_INSTANCE,
+        ResourceType_RDS,
+        ResourceType_SYSTEMS_MANAGER_MANAGED_INSTANCE
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype ResourceType = ResourceType'
+  { fromResourceType ::
+      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 ResourceType_EC2_AMI :: ResourceType
+pattern ResourceType_EC2_AMI = ResourceType' "EC2_AMI"
+
+pattern ResourceType_EC2_HOST :: ResourceType
+pattern ResourceType_EC2_HOST = ResourceType' "EC2_HOST"
+
+pattern ResourceType_EC2_INSTANCE :: ResourceType
+pattern ResourceType_EC2_INSTANCE = ResourceType' "EC2_INSTANCE"
+
+pattern ResourceType_RDS :: ResourceType
+pattern ResourceType_RDS = ResourceType' "RDS"
+
+pattern ResourceType_SYSTEMS_MANAGER_MANAGED_INSTANCE :: ResourceType
+pattern ResourceType_SYSTEMS_MANAGER_MANAGED_INSTANCE = ResourceType' "SYSTEMS_MANAGER_MANAGED_INSTANCE"
+
+{-# COMPLETE
+  ResourceType_EC2_AMI,
+  ResourceType_EC2_HOST,
+  ResourceType_EC2_INSTANCE,
+  ResourceType_RDS,
+  ResourceType_SYSTEMS_MANAGER_MANAGED_INSTANCE,
+  ResourceType'
+  #-}
diff --git a/gen/Amazonka/LicenseManager/Types/S3Location.hs b/gen/Amazonka/LicenseManager/Types/S3Location.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/S3Location.hs
@@ -0,0 +1,84 @@
+{-# 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.LicenseManager.Types.S3Location
+-- 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.LicenseManager.Types.S3Location 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
+
+-- | Details of the S3 bucket that report generator reports are published to.
+--
+-- /See:/ 'newS3Location' smart constructor.
+data S3Location = S3Location'
+  { -- | Name of the S3 bucket reports are published to.
+    bucket :: Prelude.Maybe Prelude.Text,
+    -- | Prefix of the S3 bucket reports are published to.
+    keyPrefix :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'S3Location' 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:
+--
+-- 'bucket', 's3Location_bucket' - Name of the S3 bucket reports are published to.
+--
+-- 'keyPrefix', 's3Location_keyPrefix' - Prefix of the S3 bucket reports are published to.
+newS3Location ::
+  S3Location
+newS3Location =
+  S3Location'
+    { bucket = Prelude.Nothing,
+      keyPrefix = Prelude.Nothing
+    }
+
+-- | Name of the S3 bucket reports are published to.
+s3Location_bucket :: Lens.Lens' S3Location (Prelude.Maybe Prelude.Text)
+s3Location_bucket = Lens.lens (\S3Location' {bucket} -> bucket) (\s@S3Location' {} a -> s {bucket = a} :: S3Location)
+
+-- | Prefix of the S3 bucket reports are published to.
+s3Location_keyPrefix :: Lens.Lens' S3Location (Prelude.Maybe Prelude.Text)
+s3Location_keyPrefix = Lens.lens (\S3Location' {keyPrefix} -> keyPrefix) (\s@S3Location' {} a -> s {keyPrefix = a} :: S3Location)
+
+instance Data.FromJSON S3Location where
+  parseJSON =
+    Data.withObject
+      "S3Location"
+      ( \x ->
+          S3Location'
+            Prelude.<$> (x Data..:? "bucket")
+            Prelude.<*> (x Data..:? "keyPrefix")
+      )
+
+instance Prelude.Hashable S3Location where
+  hashWithSalt _salt S3Location' {..} =
+    _salt
+      `Prelude.hashWithSalt` bucket
+      `Prelude.hashWithSalt` keyPrefix
+
+instance Prelude.NFData S3Location where
+  rnf S3Location' {..} =
+    Prelude.rnf bucket
+      `Prelude.seq` Prelude.rnf keyPrefix
diff --git a/gen/Amazonka/LicenseManager/Types/Tag.hs b/gen/Amazonka/LicenseManager/Types/Tag.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/Tag.hs
@@ -0,0 +1,92 @@
+{-# 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.LicenseManager.Types.Tag
+-- 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.LicenseManager.Types.Tag 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
+
+-- | Details about a tag for a license configuration.
+--
+-- /See:/ 'newTag' smart constructor.
+data Tag = Tag'
+  { -- | Tag key.
+    key :: Prelude.Maybe Prelude.Text,
+    -- | Tag value.
+    value :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'Tag' 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:
+--
+-- 'key', 'tag_key' - Tag key.
+--
+-- 'value', 'tag_value' - Tag value.
+newTag ::
+  Tag
+newTag =
+  Tag'
+    { key = Prelude.Nothing,
+      value = Prelude.Nothing
+    }
+
+-- | Tag key.
+tag_key :: Lens.Lens' Tag (Prelude.Maybe Prelude.Text)
+tag_key = Lens.lens (\Tag' {key} -> key) (\s@Tag' {} a -> s {key = a} :: Tag)
+
+-- | Tag value.
+tag_value :: Lens.Lens' Tag (Prelude.Maybe Prelude.Text)
+tag_value = Lens.lens (\Tag' {value} -> value) (\s@Tag' {} a -> s {value = a} :: Tag)
+
+instance Data.FromJSON Tag where
+  parseJSON =
+    Data.withObject
+      "Tag"
+      ( \x ->
+          Tag'
+            Prelude.<$> (x Data..:? "Key")
+            Prelude.<*> (x Data..:? "Value")
+      )
+
+instance Prelude.Hashable Tag where
+  hashWithSalt _salt Tag' {..} =
+    _salt
+      `Prelude.hashWithSalt` key
+      `Prelude.hashWithSalt` value
+
+instance Prelude.NFData Tag where
+  rnf Tag' {..} =
+    Prelude.rnf key `Prelude.seq` Prelude.rnf value
+
+instance Data.ToJSON Tag where
+  toJSON Tag' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("Key" Data..=) Prelude.<$> key,
+            ("Value" Data..=) Prelude.<$> value
+          ]
+      )
diff --git a/gen/Amazonka/LicenseManager/Types/TokenData.hs b/gen/Amazonka/LicenseManager/Types/TokenData.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/TokenData.hs
@@ -0,0 +1,147 @@
+{-# 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.LicenseManager.Types.TokenData
+-- 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.LicenseManager.Types.TokenData 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
+
+-- | Describes a token.
+--
+-- /See:/ 'newTokenData' smart constructor.
+data TokenData = TokenData'
+  { -- | Token expiration time, in ISO8601-UTC format.
+    expirationTime :: Prelude.Maybe Prelude.Text,
+    -- | Amazon Resource Name (ARN) of the license.
+    licenseArn :: Prelude.Maybe Prelude.Text,
+    -- | Amazon Resource Names (ARN) of the roles included in the token.
+    roleArns :: Prelude.Maybe [Prelude.Text],
+    -- | Token status. The possible values are @AVAILABLE@ and @DELETED@.
+    status :: Prelude.Maybe Prelude.Text,
+    -- | Token ID.
+    tokenId :: Prelude.Maybe Prelude.Text,
+    -- | Data specified by the caller.
+    tokenProperties :: Prelude.Maybe [Prelude.Text],
+    -- | Type of token generated. The supported value is @REFRESH_TOKEN@.
+    tokenType :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'TokenData' 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:
+--
+-- 'expirationTime', 'tokenData_expirationTime' - Token expiration time, in ISO8601-UTC format.
+--
+-- 'licenseArn', 'tokenData_licenseArn' - Amazon Resource Name (ARN) of the license.
+--
+-- 'roleArns', 'tokenData_roleArns' - Amazon Resource Names (ARN) of the roles included in the token.
+--
+-- 'status', 'tokenData_status' - Token status. The possible values are @AVAILABLE@ and @DELETED@.
+--
+-- 'tokenId', 'tokenData_tokenId' - Token ID.
+--
+-- 'tokenProperties', 'tokenData_tokenProperties' - Data specified by the caller.
+--
+-- 'tokenType', 'tokenData_tokenType' - Type of token generated. The supported value is @REFRESH_TOKEN@.
+newTokenData ::
+  TokenData
+newTokenData =
+  TokenData'
+    { expirationTime = Prelude.Nothing,
+      licenseArn = Prelude.Nothing,
+      roleArns = Prelude.Nothing,
+      status = Prelude.Nothing,
+      tokenId = Prelude.Nothing,
+      tokenProperties = Prelude.Nothing,
+      tokenType = Prelude.Nothing
+    }
+
+-- | Token expiration time, in ISO8601-UTC format.
+tokenData_expirationTime :: Lens.Lens' TokenData (Prelude.Maybe Prelude.Text)
+tokenData_expirationTime = Lens.lens (\TokenData' {expirationTime} -> expirationTime) (\s@TokenData' {} a -> s {expirationTime = a} :: TokenData)
+
+-- | Amazon Resource Name (ARN) of the license.
+tokenData_licenseArn :: Lens.Lens' TokenData (Prelude.Maybe Prelude.Text)
+tokenData_licenseArn = Lens.lens (\TokenData' {licenseArn} -> licenseArn) (\s@TokenData' {} a -> s {licenseArn = a} :: TokenData)
+
+-- | Amazon Resource Names (ARN) of the roles included in the token.
+tokenData_roleArns :: Lens.Lens' TokenData (Prelude.Maybe [Prelude.Text])
+tokenData_roleArns = Lens.lens (\TokenData' {roleArns} -> roleArns) (\s@TokenData' {} a -> s {roleArns = a} :: TokenData) Prelude.. Lens.mapping Lens.coerced
+
+-- | Token status. The possible values are @AVAILABLE@ and @DELETED@.
+tokenData_status :: Lens.Lens' TokenData (Prelude.Maybe Prelude.Text)
+tokenData_status = Lens.lens (\TokenData' {status} -> status) (\s@TokenData' {} a -> s {status = a} :: TokenData)
+
+-- | Token ID.
+tokenData_tokenId :: Lens.Lens' TokenData (Prelude.Maybe Prelude.Text)
+tokenData_tokenId = Lens.lens (\TokenData' {tokenId} -> tokenId) (\s@TokenData' {} a -> s {tokenId = a} :: TokenData)
+
+-- | Data specified by the caller.
+tokenData_tokenProperties :: Lens.Lens' TokenData (Prelude.Maybe [Prelude.Text])
+tokenData_tokenProperties = Lens.lens (\TokenData' {tokenProperties} -> tokenProperties) (\s@TokenData' {} a -> s {tokenProperties = a} :: TokenData) Prelude.. Lens.mapping Lens.coerced
+
+-- | Type of token generated. The supported value is @REFRESH_TOKEN@.
+tokenData_tokenType :: Lens.Lens' TokenData (Prelude.Maybe Prelude.Text)
+tokenData_tokenType = Lens.lens (\TokenData' {tokenType} -> tokenType) (\s@TokenData' {} a -> s {tokenType = a} :: TokenData)
+
+instance Data.FromJSON TokenData where
+  parseJSON =
+    Data.withObject
+      "TokenData"
+      ( \x ->
+          TokenData'
+            Prelude.<$> (x Data..:? "ExpirationTime")
+            Prelude.<*> (x Data..:? "LicenseArn")
+            Prelude.<*> (x Data..:? "RoleArns" Data..!= Prelude.mempty)
+            Prelude.<*> (x Data..:? "Status")
+            Prelude.<*> (x Data..:? "TokenId")
+            Prelude.<*> ( x
+                            Data..:? "TokenProperties"
+                            Data..!= Prelude.mempty
+                        )
+            Prelude.<*> (x Data..:? "TokenType")
+      )
+
+instance Prelude.Hashable TokenData where
+  hashWithSalt _salt TokenData' {..} =
+    _salt
+      `Prelude.hashWithSalt` expirationTime
+      `Prelude.hashWithSalt` licenseArn
+      `Prelude.hashWithSalt` roleArns
+      `Prelude.hashWithSalt` status
+      `Prelude.hashWithSalt` tokenId
+      `Prelude.hashWithSalt` tokenProperties
+      `Prelude.hashWithSalt` tokenType
+
+instance Prelude.NFData TokenData where
+  rnf TokenData' {..} =
+    Prelude.rnf expirationTime
+      `Prelude.seq` Prelude.rnf licenseArn
+      `Prelude.seq` Prelude.rnf roleArns
+      `Prelude.seq` Prelude.rnf status
+      `Prelude.seq` Prelude.rnf tokenId
+      `Prelude.seq` Prelude.rnf tokenProperties
+      `Prelude.seq` Prelude.rnf tokenType
diff --git a/gen/Amazonka/LicenseManager/Types/TokenType.hs b/gen/Amazonka/LicenseManager/Types/TokenType.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/Types/TokenType.hs
@@ -0,0 +1,66 @@
+{-# 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.LicenseManager.Types.TokenType
+-- 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.LicenseManager.Types.TokenType
+  ( TokenType
+      ( ..,
+        TokenType_REFRESH_TOKEN
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype TokenType = TokenType'
+  { fromTokenType ::
+      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 TokenType_REFRESH_TOKEN :: TokenType
+pattern TokenType_REFRESH_TOKEN = TokenType' "REFRESH_TOKEN"
+
+{-# COMPLETE
+  TokenType_REFRESH_TOKEN,
+  TokenType'
+  #-}
diff --git a/gen/Amazonka/LicenseManager/UntagResource.hs b/gen/Amazonka/LicenseManager/UntagResource.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/UntagResource.hs
@@ -0,0 +1,171 @@
+{-# 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.LicenseManager.UntagResource
+-- 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 the specified tags from the specified license configuration.
+module Amazonka.LicenseManager.UntagResource
+  ( -- * Creating a Request
+    UntagResource (..),
+    newUntagResource,
+
+    -- * Request Lenses
+    untagResource_resourceArn,
+    untagResource_tagKeys,
+
+    -- * Destructuring the Response
+    UntagResourceResponse (..),
+    newUntagResourceResponse,
+
+    -- * Response Lenses
+    untagResourceResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newUntagResource' smart constructor.
+data UntagResource = UntagResource'
+  { -- | Amazon Resource Name (ARN) of the license configuration.
+    resourceArn :: Prelude.Text,
+    -- | Keys identifying the tags to remove.
+    tagKeys :: [Prelude.Text]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UntagResource' 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', 'untagResource_resourceArn' - Amazon Resource Name (ARN) of the license configuration.
+--
+-- 'tagKeys', 'untagResource_tagKeys' - Keys identifying the tags to remove.
+newUntagResource ::
+  -- | 'resourceArn'
+  Prelude.Text ->
+  UntagResource
+newUntagResource pResourceArn_ =
+  UntagResource'
+    { resourceArn = pResourceArn_,
+      tagKeys = Prelude.mempty
+    }
+
+-- | Amazon Resource Name (ARN) of the license configuration.
+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text
+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)
+
+-- | Keys identifying the tags to remove.
+untagResource_tagKeys :: Lens.Lens' UntagResource [Prelude.Text]
+untagResource_tagKeys = Lens.lens (\UntagResource' {tagKeys} -> tagKeys) (\s@UntagResource' {} a -> s {tagKeys = a} :: UntagResource) Prelude.. Lens.coerced
+
+instance Core.AWSRequest UntagResource where
+  type
+    AWSResponse UntagResource =
+      UntagResourceResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveEmpty
+      ( \s h x ->
+          UntagResourceResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable UntagResource where
+  hashWithSalt _salt UntagResource' {..} =
+    _salt
+      `Prelude.hashWithSalt` resourceArn
+      `Prelude.hashWithSalt` tagKeys
+
+instance Prelude.NFData UntagResource where
+  rnf UntagResource' {..} =
+    Prelude.rnf resourceArn
+      `Prelude.seq` Prelude.rnf tagKeys
+
+instance Data.ToHeaders UntagResource where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.UntagResource" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON UntagResource where
+  toJSON UntagResource' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just ("ResourceArn" Data..= resourceArn),
+            Prelude.Just ("TagKeys" Data..= tagKeys)
+          ]
+      )
+
+instance Data.ToPath UntagResource where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery UntagResource where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newUntagResourceResponse' smart constructor.
+data UntagResourceResponse = UntagResourceResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UntagResourceResponse' 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', 'untagResourceResponse_httpStatus' - The response's http status code.
+newUntagResourceResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  UntagResourceResponse
+newUntagResourceResponse pHttpStatus_ =
+  UntagResourceResponse' {httpStatus = pHttpStatus_}
+
+-- | The response's http status code.
+untagResourceResponse_httpStatus :: Lens.Lens' UntagResourceResponse Prelude.Int
+untagResourceResponse_httpStatus = Lens.lens (\UntagResourceResponse' {httpStatus} -> httpStatus) (\s@UntagResourceResponse' {} a -> s {httpStatus = a} :: UntagResourceResponse)
+
+instance Prelude.NFData UntagResourceResponse where
+  rnf UntagResourceResponse' {..} =
+    Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/UpdateLicenseConfiguration.hs b/gen/Amazonka/LicenseManager/UpdateLicenseConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/UpdateLicenseConfiguration.hs
@@ -0,0 +1,281 @@
+{-# 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.LicenseManager.UpdateLicenseConfiguration
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Modifies the attributes of an existing license configuration.
+module Amazonka.LicenseManager.UpdateLicenseConfiguration
+  ( -- * Creating a Request
+    UpdateLicenseConfiguration (..),
+    newUpdateLicenseConfiguration,
+
+    -- * Request Lenses
+    updateLicenseConfiguration_description,
+    updateLicenseConfiguration_disassociateWhenNotFound,
+    updateLicenseConfiguration_licenseConfigurationStatus,
+    updateLicenseConfiguration_licenseCount,
+    updateLicenseConfiguration_licenseCountHardLimit,
+    updateLicenseConfiguration_licenseRules,
+    updateLicenseConfiguration_name,
+    updateLicenseConfiguration_productInformationList,
+    updateLicenseConfiguration_licenseConfigurationArn,
+
+    -- * Destructuring the Response
+    UpdateLicenseConfigurationResponse (..),
+    newUpdateLicenseConfigurationResponse,
+
+    -- * Response Lenses
+    updateLicenseConfigurationResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newUpdateLicenseConfiguration' smart constructor.
+data UpdateLicenseConfiguration = UpdateLicenseConfiguration'
+  { -- | New description of the license configuration.
+    description :: Prelude.Maybe Prelude.Text,
+    -- | When true, disassociates a resource when software is uninstalled.
+    disassociateWhenNotFound :: Prelude.Maybe Prelude.Bool,
+    -- | New status of the license configuration.
+    licenseConfigurationStatus :: Prelude.Maybe LicenseConfigurationStatus,
+    -- | New number of licenses managed by the license configuration.
+    licenseCount :: Prelude.Maybe Prelude.Integer,
+    -- | New hard limit of the number of available licenses.
+    licenseCountHardLimit :: Prelude.Maybe Prelude.Bool,
+    -- | New license rule. The only rule that you can add after you create a
+    -- license configuration is licenseAffinityToHost.
+    licenseRules :: Prelude.Maybe [Prelude.Text],
+    -- | New name of the license configuration.
+    name :: Prelude.Maybe Prelude.Text,
+    -- | New product information.
+    productInformationList :: Prelude.Maybe [ProductInformation],
+    -- | Amazon Resource Name (ARN) of the license configuration.
+    licenseConfigurationArn :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateLicenseConfiguration' 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', 'updateLicenseConfiguration_description' - New description of the license configuration.
+--
+-- 'disassociateWhenNotFound', 'updateLicenseConfiguration_disassociateWhenNotFound' - When true, disassociates a resource when software is uninstalled.
+--
+-- 'licenseConfigurationStatus', 'updateLicenseConfiguration_licenseConfigurationStatus' - New status of the license configuration.
+--
+-- 'licenseCount', 'updateLicenseConfiguration_licenseCount' - New number of licenses managed by the license configuration.
+--
+-- 'licenseCountHardLimit', 'updateLicenseConfiguration_licenseCountHardLimit' - New hard limit of the number of available licenses.
+--
+-- 'licenseRules', 'updateLicenseConfiguration_licenseRules' - New license rule. The only rule that you can add after you create a
+-- license configuration is licenseAffinityToHost.
+--
+-- 'name', 'updateLicenseConfiguration_name' - New name of the license configuration.
+--
+-- 'productInformationList', 'updateLicenseConfiguration_productInformationList' - New product information.
+--
+-- 'licenseConfigurationArn', 'updateLicenseConfiguration_licenseConfigurationArn' - Amazon Resource Name (ARN) of the license configuration.
+newUpdateLicenseConfiguration ::
+  -- | 'licenseConfigurationArn'
+  Prelude.Text ->
+  UpdateLicenseConfiguration
+newUpdateLicenseConfiguration
+  pLicenseConfigurationArn_ =
+    UpdateLicenseConfiguration'
+      { description =
+          Prelude.Nothing,
+        disassociateWhenNotFound = Prelude.Nothing,
+        licenseConfigurationStatus = Prelude.Nothing,
+        licenseCount = Prelude.Nothing,
+        licenseCountHardLimit = Prelude.Nothing,
+        licenseRules = Prelude.Nothing,
+        name = Prelude.Nothing,
+        productInformationList = Prelude.Nothing,
+        licenseConfigurationArn =
+          pLicenseConfigurationArn_
+      }
+
+-- | New description of the license configuration.
+updateLicenseConfiguration_description :: Lens.Lens' UpdateLicenseConfiguration (Prelude.Maybe Prelude.Text)
+updateLicenseConfiguration_description = Lens.lens (\UpdateLicenseConfiguration' {description} -> description) (\s@UpdateLicenseConfiguration' {} a -> s {description = a} :: UpdateLicenseConfiguration)
+
+-- | When true, disassociates a resource when software is uninstalled.
+updateLicenseConfiguration_disassociateWhenNotFound :: Lens.Lens' UpdateLicenseConfiguration (Prelude.Maybe Prelude.Bool)
+updateLicenseConfiguration_disassociateWhenNotFound = Lens.lens (\UpdateLicenseConfiguration' {disassociateWhenNotFound} -> disassociateWhenNotFound) (\s@UpdateLicenseConfiguration' {} a -> s {disassociateWhenNotFound = a} :: UpdateLicenseConfiguration)
+
+-- | New status of the license configuration.
+updateLicenseConfiguration_licenseConfigurationStatus :: Lens.Lens' UpdateLicenseConfiguration (Prelude.Maybe LicenseConfigurationStatus)
+updateLicenseConfiguration_licenseConfigurationStatus = Lens.lens (\UpdateLicenseConfiguration' {licenseConfigurationStatus} -> licenseConfigurationStatus) (\s@UpdateLicenseConfiguration' {} a -> s {licenseConfigurationStatus = a} :: UpdateLicenseConfiguration)
+
+-- | New number of licenses managed by the license configuration.
+updateLicenseConfiguration_licenseCount :: Lens.Lens' UpdateLicenseConfiguration (Prelude.Maybe Prelude.Integer)
+updateLicenseConfiguration_licenseCount = Lens.lens (\UpdateLicenseConfiguration' {licenseCount} -> licenseCount) (\s@UpdateLicenseConfiguration' {} a -> s {licenseCount = a} :: UpdateLicenseConfiguration)
+
+-- | New hard limit of the number of available licenses.
+updateLicenseConfiguration_licenseCountHardLimit :: Lens.Lens' UpdateLicenseConfiguration (Prelude.Maybe Prelude.Bool)
+updateLicenseConfiguration_licenseCountHardLimit = Lens.lens (\UpdateLicenseConfiguration' {licenseCountHardLimit} -> licenseCountHardLimit) (\s@UpdateLicenseConfiguration' {} a -> s {licenseCountHardLimit = a} :: UpdateLicenseConfiguration)
+
+-- | New license rule. The only rule that you can add after you create a
+-- license configuration is licenseAffinityToHost.
+updateLicenseConfiguration_licenseRules :: Lens.Lens' UpdateLicenseConfiguration (Prelude.Maybe [Prelude.Text])
+updateLicenseConfiguration_licenseRules = Lens.lens (\UpdateLicenseConfiguration' {licenseRules} -> licenseRules) (\s@UpdateLicenseConfiguration' {} a -> s {licenseRules = a} :: UpdateLicenseConfiguration) Prelude.. Lens.mapping Lens.coerced
+
+-- | New name of the license configuration.
+updateLicenseConfiguration_name :: Lens.Lens' UpdateLicenseConfiguration (Prelude.Maybe Prelude.Text)
+updateLicenseConfiguration_name = Lens.lens (\UpdateLicenseConfiguration' {name} -> name) (\s@UpdateLicenseConfiguration' {} a -> s {name = a} :: UpdateLicenseConfiguration)
+
+-- | New product information.
+updateLicenseConfiguration_productInformationList :: Lens.Lens' UpdateLicenseConfiguration (Prelude.Maybe [ProductInformation])
+updateLicenseConfiguration_productInformationList = Lens.lens (\UpdateLicenseConfiguration' {productInformationList} -> productInformationList) (\s@UpdateLicenseConfiguration' {} a -> s {productInformationList = a} :: UpdateLicenseConfiguration) Prelude.. Lens.mapping Lens.coerced
+
+-- | Amazon Resource Name (ARN) of the license configuration.
+updateLicenseConfiguration_licenseConfigurationArn :: Lens.Lens' UpdateLicenseConfiguration Prelude.Text
+updateLicenseConfiguration_licenseConfigurationArn = Lens.lens (\UpdateLicenseConfiguration' {licenseConfigurationArn} -> licenseConfigurationArn) (\s@UpdateLicenseConfiguration' {} a -> s {licenseConfigurationArn = a} :: UpdateLicenseConfiguration)
+
+instance Core.AWSRequest UpdateLicenseConfiguration where
+  type
+    AWSResponse UpdateLicenseConfiguration =
+      UpdateLicenseConfigurationResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveEmpty
+      ( \s h x ->
+          UpdateLicenseConfigurationResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable UpdateLicenseConfiguration where
+  hashWithSalt _salt UpdateLicenseConfiguration' {..} =
+    _salt
+      `Prelude.hashWithSalt` description
+      `Prelude.hashWithSalt` disassociateWhenNotFound
+      `Prelude.hashWithSalt` licenseConfigurationStatus
+      `Prelude.hashWithSalt` licenseCount
+      `Prelude.hashWithSalt` licenseCountHardLimit
+      `Prelude.hashWithSalt` licenseRules
+      `Prelude.hashWithSalt` name
+      `Prelude.hashWithSalt` productInformationList
+      `Prelude.hashWithSalt` licenseConfigurationArn
+
+instance Prelude.NFData UpdateLicenseConfiguration where
+  rnf UpdateLicenseConfiguration' {..} =
+    Prelude.rnf description
+      `Prelude.seq` Prelude.rnf disassociateWhenNotFound
+      `Prelude.seq` Prelude.rnf licenseConfigurationStatus
+      `Prelude.seq` Prelude.rnf licenseCount
+      `Prelude.seq` Prelude.rnf licenseCountHardLimit
+      `Prelude.seq` Prelude.rnf licenseRules
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf productInformationList
+      `Prelude.seq` Prelude.rnf licenseConfigurationArn
+
+instance Data.ToHeaders UpdateLicenseConfiguration where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.UpdateLicenseConfiguration" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON UpdateLicenseConfiguration where
+  toJSON UpdateLicenseConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("Description" Data..=) Prelude.<$> description,
+            ("DisassociateWhenNotFound" Data..=)
+              Prelude.<$> disassociateWhenNotFound,
+            ("LicenseConfigurationStatus" Data..=)
+              Prelude.<$> licenseConfigurationStatus,
+            ("LicenseCount" Data..=) Prelude.<$> licenseCount,
+            ("LicenseCountHardLimit" Data..=)
+              Prelude.<$> licenseCountHardLimit,
+            ("LicenseRules" Data..=) Prelude.<$> licenseRules,
+            ("Name" Data..=) Prelude.<$> name,
+            ("ProductInformationList" Data..=)
+              Prelude.<$> productInformationList,
+            Prelude.Just
+              ( "LicenseConfigurationArn"
+                  Data..= licenseConfigurationArn
+              )
+          ]
+      )
+
+instance Data.ToPath UpdateLicenseConfiguration where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery UpdateLicenseConfiguration where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newUpdateLicenseConfigurationResponse' smart constructor.
+data UpdateLicenseConfigurationResponse = UpdateLicenseConfigurationResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateLicenseConfigurationResponse' 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', 'updateLicenseConfigurationResponse_httpStatus' - The response's http status code.
+newUpdateLicenseConfigurationResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  UpdateLicenseConfigurationResponse
+newUpdateLicenseConfigurationResponse pHttpStatus_ =
+  UpdateLicenseConfigurationResponse'
+    { httpStatus =
+        pHttpStatus_
+    }
+
+-- | The response's http status code.
+updateLicenseConfigurationResponse_httpStatus :: Lens.Lens' UpdateLicenseConfigurationResponse Prelude.Int
+updateLicenseConfigurationResponse_httpStatus = Lens.lens (\UpdateLicenseConfigurationResponse' {httpStatus} -> httpStatus) (\s@UpdateLicenseConfigurationResponse' {} a -> s {httpStatus = a} :: UpdateLicenseConfigurationResponse)
+
+instance
+  Prelude.NFData
+    UpdateLicenseConfigurationResponse
+  where
+  rnf UpdateLicenseConfigurationResponse' {..} =
+    Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/UpdateLicenseManagerReportGenerator.hs b/gen/Amazonka/LicenseManager/UpdateLicenseManagerReportGenerator.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/UpdateLicenseManagerReportGenerator.hs
@@ -0,0 +1,311 @@
+{-# 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.LicenseManager.UpdateLicenseManagerReportGenerator
+-- 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 a report generator.
+--
+-- After you make changes to a report generator, it starts generating new
+-- reports within 60 minutes of being updated.
+module Amazonka.LicenseManager.UpdateLicenseManagerReportGenerator
+  ( -- * Creating a Request
+    UpdateLicenseManagerReportGenerator (..),
+    newUpdateLicenseManagerReportGenerator,
+
+    -- * Request Lenses
+    updateLicenseManagerReportGenerator_description,
+    updateLicenseManagerReportGenerator_licenseManagerReportGeneratorArn,
+    updateLicenseManagerReportGenerator_reportGeneratorName,
+    updateLicenseManagerReportGenerator_type,
+    updateLicenseManagerReportGenerator_reportContext,
+    updateLicenseManagerReportGenerator_reportFrequency,
+    updateLicenseManagerReportGenerator_clientToken,
+
+    -- * Destructuring the Response
+    UpdateLicenseManagerReportGeneratorResponse (..),
+    newUpdateLicenseManagerReportGeneratorResponse,
+
+    -- * Response Lenses
+    updateLicenseManagerReportGeneratorResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newUpdateLicenseManagerReportGenerator' smart constructor.
+data UpdateLicenseManagerReportGenerator = UpdateLicenseManagerReportGenerator'
+  { -- | Description of the report generator.
+    description :: Prelude.Maybe Prelude.Text,
+    -- | Amazon Resource Name (ARN) of the report generator to update.
+    licenseManagerReportGeneratorArn :: Prelude.Text,
+    -- | Name of the report generator.
+    reportGeneratorName :: Prelude.Text,
+    -- | Type of reports to generate. The following report types are supported:
+    --
+    -- -   License configuration report - Reports the number and details of
+    --     consumed licenses for a license configuration.
+    --
+    -- -   Resource report - Reports the tracked licenses and resource
+    --     consumption for a license configuration.
+    type' :: [ReportType],
+    -- | The report context.
+    reportContext :: ReportContext,
+    -- | Frequency by which reports are generated.
+    reportFrequency :: ReportFrequency,
+    -- | Unique, case-sensitive identifier that you provide to ensure the
+    -- idempotency of the request.
+    clientToken :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateLicenseManagerReportGenerator' 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', 'updateLicenseManagerReportGenerator_description' - Description of the report generator.
+--
+-- 'licenseManagerReportGeneratorArn', 'updateLicenseManagerReportGenerator_licenseManagerReportGeneratorArn' - Amazon Resource Name (ARN) of the report generator to update.
+--
+-- 'reportGeneratorName', 'updateLicenseManagerReportGenerator_reportGeneratorName' - Name of the report generator.
+--
+-- 'type'', 'updateLicenseManagerReportGenerator_type' - Type of reports to generate. The following report types are supported:
+--
+-- -   License configuration report - Reports the number and details of
+--     consumed licenses for a license configuration.
+--
+-- -   Resource report - Reports the tracked licenses and resource
+--     consumption for a license configuration.
+--
+-- 'reportContext', 'updateLicenseManagerReportGenerator_reportContext' - The report context.
+--
+-- 'reportFrequency', 'updateLicenseManagerReportGenerator_reportFrequency' - Frequency by which reports are generated.
+--
+-- 'clientToken', 'updateLicenseManagerReportGenerator_clientToken' - Unique, case-sensitive identifier that you provide to ensure the
+-- idempotency of the request.
+newUpdateLicenseManagerReportGenerator ::
+  -- | 'licenseManagerReportGeneratorArn'
+  Prelude.Text ->
+  -- | 'reportGeneratorName'
+  Prelude.Text ->
+  -- | 'reportContext'
+  ReportContext ->
+  -- | 'reportFrequency'
+  ReportFrequency ->
+  -- | 'clientToken'
+  Prelude.Text ->
+  UpdateLicenseManagerReportGenerator
+newUpdateLicenseManagerReportGenerator
+  pLicenseManagerReportGeneratorArn_
+  pReportGeneratorName_
+  pReportContext_
+  pReportFrequency_
+  pClientToken_ =
+    UpdateLicenseManagerReportGenerator'
+      { description =
+          Prelude.Nothing,
+        licenseManagerReportGeneratorArn =
+          pLicenseManagerReportGeneratorArn_,
+        reportGeneratorName =
+          pReportGeneratorName_,
+        type' = Prelude.mempty,
+        reportContext = pReportContext_,
+        reportFrequency = pReportFrequency_,
+        clientToken = pClientToken_
+      }
+
+-- | Description of the report generator.
+updateLicenseManagerReportGenerator_description :: Lens.Lens' UpdateLicenseManagerReportGenerator (Prelude.Maybe Prelude.Text)
+updateLicenseManagerReportGenerator_description = Lens.lens (\UpdateLicenseManagerReportGenerator' {description} -> description) (\s@UpdateLicenseManagerReportGenerator' {} a -> s {description = a} :: UpdateLicenseManagerReportGenerator)
+
+-- | Amazon Resource Name (ARN) of the report generator to update.
+updateLicenseManagerReportGenerator_licenseManagerReportGeneratorArn :: Lens.Lens' UpdateLicenseManagerReportGenerator Prelude.Text
+updateLicenseManagerReportGenerator_licenseManagerReportGeneratorArn = Lens.lens (\UpdateLicenseManagerReportGenerator' {licenseManagerReportGeneratorArn} -> licenseManagerReportGeneratorArn) (\s@UpdateLicenseManagerReportGenerator' {} a -> s {licenseManagerReportGeneratorArn = a} :: UpdateLicenseManagerReportGenerator)
+
+-- | Name of the report generator.
+updateLicenseManagerReportGenerator_reportGeneratorName :: Lens.Lens' UpdateLicenseManagerReportGenerator Prelude.Text
+updateLicenseManagerReportGenerator_reportGeneratorName = Lens.lens (\UpdateLicenseManagerReportGenerator' {reportGeneratorName} -> reportGeneratorName) (\s@UpdateLicenseManagerReportGenerator' {} a -> s {reportGeneratorName = a} :: UpdateLicenseManagerReportGenerator)
+
+-- | Type of reports to generate. The following report types are supported:
+--
+-- -   License configuration report - Reports the number and details of
+--     consumed licenses for a license configuration.
+--
+-- -   Resource report - Reports the tracked licenses and resource
+--     consumption for a license configuration.
+updateLicenseManagerReportGenerator_type :: Lens.Lens' UpdateLicenseManagerReportGenerator [ReportType]
+updateLicenseManagerReportGenerator_type = Lens.lens (\UpdateLicenseManagerReportGenerator' {type'} -> type') (\s@UpdateLicenseManagerReportGenerator' {} a -> s {type' = a} :: UpdateLicenseManagerReportGenerator) Prelude.. Lens.coerced
+
+-- | The report context.
+updateLicenseManagerReportGenerator_reportContext :: Lens.Lens' UpdateLicenseManagerReportGenerator ReportContext
+updateLicenseManagerReportGenerator_reportContext = Lens.lens (\UpdateLicenseManagerReportGenerator' {reportContext} -> reportContext) (\s@UpdateLicenseManagerReportGenerator' {} a -> s {reportContext = a} :: UpdateLicenseManagerReportGenerator)
+
+-- | Frequency by which reports are generated.
+updateLicenseManagerReportGenerator_reportFrequency :: Lens.Lens' UpdateLicenseManagerReportGenerator ReportFrequency
+updateLicenseManagerReportGenerator_reportFrequency = Lens.lens (\UpdateLicenseManagerReportGenerator' {reportFrequency} -> reportFrequency) (\s@UpdateLicenseManagerReportGenerator' {} a -> s {reportFrequency = a} :: UpdateLicenseManagerReportGenerator)
+
+-- | Unique, case-sensitive identifier that you provide to ensure the
+-- idempotency of the request.
+updateLicenseManagerReportGenerator_clientToken :: Lens.Lens' UpdateLicenseManagerReportGenerator Prelude.Text
+updateLicenseManagerReportGenerator_clientToken = Lens.lens (\UpdateLicenseManagerReportGenerator' {clientToken} -> clientToken) (\s@UpdateLicenseManagerReportGenerator' {} a -> s {clientToken = a} :: UpdateLicenseManagerReportGenerator)
+
+instance
+  Core.AWSRequest
+    UpdateLicenseManagerReportGenerator
+  where
+  type
+    AWSResponse UpdateLicenseManagerReportGenerator =
+      UpdateLicenseManagerReportGeneratorResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveEmpty
+      ( \s h x ->
+          UpdateLicenseManagerReportGeneratorResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    UpdateLicenseManagerReportGenerator
+  where
+  hashWithSalt
+    _salt
+    UpdateLicenseManagerReportGenerator' {..} =
+      _salt
+        `Prelude.hashWithSalt` description
+        `Prelude.hashWithSalt` licenseManagerReportGeneratorArn
+        `Prelude.hashWithSalt` reportGeneratorName
+        `Prelude.hashWithSalt` type'
+        `Prelude.hashWithSalt` reportContext
+        `Prelude.hashWithSalt` reportFrequency
+        `Prelude.hashWithSalt` clientToken
+
+instance
+  Prelude.NFData
+    UpdateLicenseManagerReportGenerator
+  where
+  rnf UpdateLicenseManagerReportGenerator' {..} =
+    Prelude.rnf description
+      `Prelude.seq` Prelude.rnf licenseManagerReportGeneratorArn
+      `Prelude.seq` Prelude.rnf reportGeneratorName
+      `Prelude.seq` Prelude.rnf type'
+      `Prelude.seq` Prelude.rnf reportContext
+      `Prelude.seq` Prelude.rnf reportFrequency
+      `Prelude.seq` Prelude.rnf clientToken
+
+instance
+  Data.ToHeaders
+    UpdateLicenseManagerReportGenerator
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.UpdateLicenseManagerReportGenerator" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    UpdateLicenseManagerReportGenerator
+  where
+  toJSON UpdateLicenseManagerReportGenerator' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("Description" Data..=) Prelude.<$> description,
+            Prelude.Just
+              ( "LicenseManagerReportGeneratorArn"
+                  Data..= licenseManagerReportGeneratorArn
+              ),
+            Prelude.Just
+              ("ReportGeneratorName" Data..= reportGeneratorName),
+            Prelude.Just ("Type" Data..= type'),
+            Prelude.Just ("ReportContext" Data..= reportContext),
+            Prelude.Just
+              ("ReportFrequency" Data..= reportFrequency),
+            Prelude.Just ("ClientToken" Data..= clientToken)
+          ]
+      )
+
+instance
+  Data.ToPath
+    UpdateLicenseManagerReportGenerator
+  where
+  toPath = Prelude.const "/"
+
+instance
+  Data.ToQuery
+    UpdateLicenseManagerReportGenerator
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newUpdateLicenseManagerReportGeneratorResponse' smart constructor.
+data UpdateLicenseManagerReportGeneratorResponse = UpdateLicenseManagerReportGeneratorResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateLicenseManagerReportGeneratorResponse' 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', 'updateLicenseManagerReportGeneratorResponse_httpStatus' - The response's http status code.
+newUpdateLicenseManagerReportGeneratorResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  UpdateLicenseManagerReportGeneratorResponse
+newUpdateLicenseManagerReportGeneratorResponse
+  pHttpStatus_ =
+    UpdateLicenseManagerReportGeneratorResponse'
+      { httpStatus =
+          pHttpStatus_
+      }
+
+-- | The response's http status code.
+updateLicenseManagerReportGeneratorResponse_httpStatus :: Lens.Lens' UpdateLicenseManagerReportGeneratorResponse Prelude.Int
+updateLicenseManagerReportGeneratorResponse_httpStatus = Lens.lens (\UpdateLicenseManagerReportGeneratorResponse' {httpStatus} -> httpStatus) (\s@UpdateLicenseManagerReportGeneratorResponse' {} a -> s {httpStatus = a} :: UpdateLicenseManagerReportGeneratorResponse)
+
+instance
+  Prelude.NFData
+    UpdateLicenseManagerReportGeneratorResponse
+  where
+  rnf UpdateLicenseManagerReportGeneratorResponse' {..} =
+    Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/UpdateLicenseSpecificationsForResource.hs b/gen/Amazonka/LicenseManager/UpdateLicenseSpecificationsForResource.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/UpdateLicenseSpecificationsForResource.hs
@@ -0,0 +1,227 @@
+{-# 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.LicenseManager.UpdateLicenseSpecificationsForResource
+-- 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 or removes the specified license configurations for the specified
+-- Amazon Web Services resource.
+--
+-- You can update the license specifications of AMIs, instances, and hosts.
+-- You cannot update the license specifications for launch templates and
+-- CloudFormation templates, as they send license configurations to the
+-- operation that creates the resource.
+module Amazonka.LicenseManager.UpdateLicenseSpecificationsForResource
+  ( -- * Creating a Request
+    UpdateLicenseSpecificationsForResource (..),
+    newUpdateLicenseSpecificationsForResource,
+
+    -- * Request Lenses
+    updateLicenseSpecificationsForResource_addLicenseSpecifications,
+    updateLicenseSpecificationsForResource_removeLicenseSpecifications,
+    updateLicenseSpecificationsForResource_resourceArn,
+
+    -- * Destructuring the Response
+    UpdateLicenseSpecificationsForResourceResponse (..),
+    newUpdateLicenseSpecificationsForResourceResponse,
+
+    -- * Response Lenses
+    updateLicenseSpecificationsForResourceResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newUpdateLicenseSpecificationsForResource' smart constructor.
+data UpdateLicenseSpecificationsForResource = UpdateLicenseSpecificationsForResource'
+  { -- | ARNs of the license configurations to add.
+    addLicenseSpecifications :: Prelude.Maybe [LicenseSpecification],
+    -- | ARNs of the license configurations to remove.
+    removeLicenseSpecifications :: Prelude.Maybe [LicenseSpecification],
+    -- | Amazon Resource Name (ARN) of the Amazon Web Services resource.
+    resourceArn :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateLicenseSpecificationsForResource' 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:
+--
+-- 'addLicenseSpecifications', 'updateLicenseSpecificationsForResource_addLicenseSpecifications' - ARNs of the license configurations to add.
+--
+-- 'removeLicenseSpecifications', 'updateLicenseSpecificationsForResource_removeLicenseSpecifications' - ARNs of the license configurations to remove.
+--
+-- 'resourceArn', 'updateLicenseSpecificationsForResource_resourceArn' - Amazon Resource Name (ARN) of the Amazon Web Services resource.
+newUpdateLicenseSpecificationsForResource ::
+  -- | 'resourceArn'
+  Prelude.Text ->
+  UpdateLicenseSpecificationsForResource
+newUpdateLicenseSpecificationsForResource
+  pResourceArn_ =
+    UpdateLicenseSpecificationsForResource'
+      { addLicenseSpecifications =
+          Prelude.Nothing,
+        removeLicenseSpecifications =
+          Prelude.Nothing,
+        resourceArn = pResourceArn_
+      }
+
+-- | ARNs of the license configurations to add.
+updateLicenseSpecificationsForResource_addLicenseSpecifications :: Lens.Lens' UpdateLicenseSpecificationsForResource (Prelude.Maybe [LicenseSpecification])
+updateLicenseSpecificationsForResource_addLicenseSpecifications = Lens.lens (\UpdateLicenseSpecificationsForResource' {addLicenseSpecifications} -> addLicenseSpecifications) (\s@UpdateLicenseSpecificationsForResource' {} a -> s {addLicenseSpecifications = a} :: UpdateLicenseSpecificationsForResource) Prelude.. Lens.mapping Lens.coerced
+
+-- | ARNs of the license configurations to remove.
+updateLicenseSpecificationsForResource_removeLicenseSpecifications :: Lens.Lens' UpdateLicenseSpecificationsForResource (Prelude.Maybe [LicenseSpecification])
+updateLicenseSpecificationsForResource_removeLicenseSpecifications = Lens.lens (\UpdateLicenseSpecificationsForResource' {removeLicenseSpecifications} -> removeLicenseSpecifications) (\s@UpdateLicenseSpecificationsForResource' {} a -> s {removeLicenseSpecifications = a} :: UpdateLicenseSpecificationsForResource) Prelude.. Lens.mapping Lens.coerced
+
+-- | Amazon Resource Name (ARN) of the Amazon Web Services resource.
+updateLicenseSpecificationsForResource_resourceArn :: Lens.Lens' UpdateLicenseSpecificationsForResource Prelude.Text
+updateLicenseSpecificationsForResource_resourceArn = Lens.lens (\UpdateLicenseSpecificationsForResource' {resourceArn} -> resourceArn) (\s@UpdateLicenseSpecificationsForResource' {} a -> s {resourceArn = a} :: UpdateLicenseSpecificationsForResource)
+
+instance
+  Core.AWSRequest
+    UpdateLicenseSpecificationsForResource
+  where
+  type
+    AWSResponse
+      UpdateLicenseSpecificationsForResource =
+      UpdateLicenseSpecificationsForResourceResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveEmpty
+      ( \s h x ->
+          UpdateLicenseSpecificationsForResourceResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    UpdateLicenseSpecificationsForResource
+  where
+  hashWithSalt
+    _salt
+    UpdateLicenseSpecificationsForResource' {..} =
+      _salt
+        `Prelude.hashWithSalt` addLicenseSpecifications
+        `Prelude.hashWithSalt` removeLicenseSpecifications
+        `Prelude.hashWithSalt` resourceArn
+
+instance
+  Prelude.NFData
+    UpdateLicenseSpecificationsForResource
+  where
+  rnf UpdateLicenseSpecificationsForResource' {..} =
+    Prelude.rnf addLicenseSpecifications
+      `Prelude.seq` Prelude.rnf removeLicenseSpecifications
+      `Prelude.seq` Prelude.rnf resourceArn
+
+instance
+  Data.ToHeaders
+    UpdateLicenseSpecificationsForResource
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.UpdateLicenseSpecificationsForResource" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    UpdateLicenseSpecificationsForResource
+  where
+  toJSON UpdateLicenseSpecificationsForResource' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("AddLicenseSpecifications" Data..=)
+              Prelude.<$> addLicenseSpecifications,
+            ("RemoveLicenseSpecifications" Data..=)
+              Prelude.<$> removeLicenseSpecifications,
+            Prelude.Just ("ResourceArn" Data..= resourceArn)
+          ]
+      )
+
+instance
+  Data.ToPath
+    UpdateLicenseSpecificationsForResource
+  where
+  toPath = Prelude.const "/"
+
+instance
+  Data.ToQuery
+    UpdateLicenseSpecificationsForResource
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newUpdateLicenseSpecificationsForResourceResponse' smart constructor.
+data UpdateLicenseSpecificationsForResourceResponse = UpdateLicenseSpecificationsForResourceResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateLicenseSpecificationsForResourceResponse' 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', 'updateLicenseSpecificationsForResourceResponse_httpStatus' - The response's http status code.
+newUpdateLicenseSpecificationsForResourceResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  UpdateLicenseSpecificationsForResourceResponse
+newUpdateLicenseSpecificationsForResourceResponse
+  pHttpStatus_ =
+    UpdateLicenseSpecificationsForResourceResponse'
+      { httpStatus =
+          pHttpStatus_
+      }
+
+-- | The response's http status code.
+updateLicenseSpecificationsForResourceResponse_httpStatus :: Lens.Lens' UpdateLicenseSpecificationsForResourceResponse Prelude.Int
+updateLicenseSpecificationsForResourceResponse_httpStatus = Lens.lens (\UpdateLicenseSpecificationsForResourceResponse' {httpStatus} -> httpStatus) (\s@UpdateLicenseSpecificationsForResourceResponse' {} a -> s {httpStatus = a} :: UpdateLicenseSpecificationsForResourceResponse)
+
+instance
+  Prelude.NFData
+    UpdateLicenseSpecificationsForResourceResponse
+  where
+  rnf
+    UpdateLicenseSpecificationsForResourceResponse' {..} =
+      Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/UpdateServiceSettings.hs b/gen/Amazonka/LicenseManager/UpdateServiceSettings.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/UpdateServiceSettings.hs
@@ -0,0 +1,207 @@
+{-# 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.LicenseManager.UpdateServiceSettings
+-- 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 License Manager settings for the current Region.
+module Amazonka.LicenseManager.UpdateServiceSettings
+  ( -- * Creating a Request
+    UpdateServiceSettings (..),
+    newUpdateServiceSettings,
+
+    -- * Request Lenses
+    updateServiceSettings_enableCrossAccountsDiscovery,
+    updateServiceSettings_organizationConfiguration,
+    updateServiceSettings_s3BucketArn,
+    updateServiceSettings_snsTopicArn,
+
+    -- * Destructuring the Response
+    UpdateServiceSettingsResponse (..),
+    newUpdateServiceSettingsResponse,
+
+    -- * Response Lenses
+    updateServiceSettingsResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newUpdateServiceSettings' smart constructor.
+data UpdateServiceSettings = UpdateServiceSettings'
+  { -- | Activates cross-account discovery.
+    enableCrossAccountsDiscovery :: Prelude.Maybe Prelude.Bool,
+    -- | Enables integration with Organizations for cross-account discovery.
+    organizationConfiguration :: Prelude.Maybe OrganizationConfiguration,
+    -- | Amazon Resource Name (ARN) of the Amazon S3 bucket where the License
+    -- Manager information is stored.
+    s3BucketArn :: Prelude.Maybe Prelude.Text,
+    -- | Amazon Resource Name (ARN) of the Amazon SNS topic used for License
+    -- Manager alerts.
+    snsTopicArn :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateServiceSettings' 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:
+--
+-- 'enableCrossAccountsDiscovery', 'updateServiceSettings_enableCrossAccountsDiscovery' - Activates cross-account discovery.
+--
+-- 'organizationConfiguration', 'updateServiceSettings_organizationConfiguration' - Enables integration with Organizations for cross-account discovery.
+--
+-- 's3BucketArn', 'updateServiceSettings_s3BucketArn' - Amazon Resource Name (ARN) of the Amazon S3 bucket where the License
+-- Manager information is stored.
+--
+-- 'snsTopicArn', 'updateServiceSettings_snsTopicArn' - Amazon Resource Name (ARN) of the Amazon SNS topic used for License
+-- Manager alerts.
+newUpdateServiceSettings ::
+  UpdateServiceSettings
+newUpdateServiceSettings =
+  UpdateServiceSettings'
+    { enableCrossAccountsDiscovery =
+        Prelude.Nothing,
+      organizationConfiguration = Prelude.Nothing,
+      s3BucketArn = Prelude.Nothing,
+      snsTopicArn = Prelude.Nothing
+    }
+
+-- | Activates cross-account discovery.
+updateServiceSettings_enableCrossAccountsDiscovery :: Lens.Lens' UpdateServiceSettings (Prelude.Maybe Prelude.Bool)
+updateServiceSettings_enableCrossAccountsDiscovery = Lens.lens (\UpdateServiceSettings' {enableCrossAccountsDiscovery} -> enableCrossAccountsDiscovery) (\s@UpdateServiceSettings' {} a -> s {enableCrossAccountsDiscovery = a} :: UpdateServiceSettings)
+
+-- | Enables integration with Organizations for cross-account discovery.
+updateServiceSettings_organizationConfiguration :: Lens.Lens' UpdateServiceSettings (Prelude.Maybe OrganizationConfiguration)
+updateServiceSettings_organizationConfiguration = Lens.lens (\UpdateServiceSettings' {organizationConfiguration} -> organizationConfiguration) (\s@UpdateServiceSettings' {} a -> s {organizationConfiguration = a} :: UpdateServiceSettings)
+
+-- | Amazon Resource Name (ARN) of the Amazon S3 bucket where the License
+-- Manager information is stored.
+updateServiceSettings_s3BucketArn :: Lens.Lens' UpdateServiceSettings (Prelude.Maybe Prelude.Text)
+updateServiceSettings_s3BucketArn = Lens.lens (\UpdateServiceSettings' {s3BucketArn} -> s3BucketArn) (\s@UpdateServiceSettings' {} a -> s {s3BucketArn = a} :: UpdateServiceSettings)
+
+-- | Amazon Resource Name (ARN) of the Amazon SNS topic used for License
+-- Manager alerts.
+updateServiceSettings_snsTopicArn :: Lens.Lens' UpdateServiceSettings (Prelude.Maybe Prelude.Text)
+updateServiceSettings_snsTopicArn = Lens.lens (\UpdateServiceSettings' {snsTopicArn} -> snsTopicArn) (\s@UpdateServiceSettings' {} a -> s {snsTopicArn = a} :: UpdateServiceSettings)
+
+instance Core.AWSRequest UpdateServiceSettings where
+  type
+    AWSResponse UpdateServiceSettings =
+      UpdateServiceSettingsResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveEmpty
+      ( \s h x ->
+          UpdateServiceSettingsResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable UpdateServiceSettings where
+  hashWithSalt _salt UpdateServiceSettings' {..} =
+    _salt
+      `Prelude.hashWithSalt` enableCrossAccountsDiscovery
+      `Prelude.hashWithSalt` organizationConfiguration
+      `Prelude.hashWithSalt` s3BucketArn
+      `Prelude.hashWithSalt` snsTopicArn
+
+instance Prelude.NFData UpdateServiceSettings where
+  rnf UpdateServiceSettings' {..} =
+    Prelude.rnf enableCrossAccountsDiscovery
+      `Prelude.seq` Prelude.rnf organizationConfiguration
+      `Prelude.seq` Prelude.rnf s3BucketArn
+      `Prelude.seq` Prelude.rnf snsTopicArn
+
+instance Data.ToHeaders UpdateServiceSettings where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "AWSLicenseManager.UpdateServiceSettings" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON UpdateServiceSettings where
+  toJSON UpdateServiceSettings' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("EnableCrossAccountsDiscovery" Data..=)
+              Prelude.<$> enableCrossAccountsDiscovery,
+            ("OrganizationConfiguration" Data..=)
+              Prelude.<$> organizationConfiguration,
+            ("S3BucketArn" Data..=) Prelude.<$> s3BucketArn,
+            ("SnsTopicArn" Data..=) Prelude.<$> snsTopicArn
+          ]
+      )
+
+instance Data.ToPath UpdateServiceSettings where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery UpdateServiceSettings where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newUpdateServiceSettingsResponse' smart constructor.
+data UpdateServiceSettingsResponse = UpdateServiceSettingsResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateServiceSettingsResponse' 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', 'updateServiceSettingsResponse_httpStatus' - The response's http status code.
+newUpdateServiceSettingsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  UpdateServiceSettingsResponse
+newUpdateServiceSettingsResponse pHttpStatus_ =
+  UpdateServiceSettingsResponse'
+    { httpStatus =
+        pHttpStatus_
+    }
+
+-- | The response's http status code.
+updateServiceSettingsResponse_httpStatus :: Lens.Lens' UpdateServiceSettingsResponse Prelude.Int
+updateServiceSettingsResponse_httpStatus = Lens.lens (\UpdateServiceSettingsResponse' {httpStatus} -> httpStatus) (\s@UpdateServiceSettingsResponse' {} a -> s {httpStatus = a} :: UpdateServiceSettingsResponse)
+
+instance Prelude.NFData UpdateServiceSettingsResponse where
+  rnf UpdateServiceSettingsResponse' {..} =
+    Prelude.rnf httpStatus
diff --git a/gen/Amazonka/LicenseManager/Waiters.hs b/gen/Amazonka/LicenseManager/Waiters.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/LicenseManager/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.LicenseManager.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.LicenseManager.Waiters where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.LicenseManager.Lens
+import Amazonka.LicenseManager.Types
+import qualified Amazonka.Prelude as Prelude
diff --git a/src/.gitkeep b/src/.gitkeep
new file mode 100644
--- /dev/null
+++ b/src/.gitkeep
diff --git a/test/Main.hs b/test/Main.hs
new file mode 100644
--- /dev/null
+++ b/test/Main.hs
@@ -0,0 +1,23 @@
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module      : Main
+-- 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 Main (main) where
+
+import Test.Amazonka.LicenseManager
+import Test.Amazonka.LicenseManager.Internal
+import Test.Tasty
+
+main :: IO ()
+main =
+  defaultMain $
+    testGroup
+      "LicenseManager"
+      [ testGroup "tests" tests,
+        testGroup "fixtures" fixtures
+      ]
diff --git a/test/Test/Amazonka/Gen/LicenseManager.hs b/test/Test/Amazonka/Gen/LicenseManager.hs
new file mode 100644
--- /dev/null
+++ b/test/Test/Amazonka/Gen/LicenseManager.hs
@@ -0,0 +1,1038 @@
+{-# 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.LicenseManager
+-- 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.LicenseManager where
+
+import Amazonka.LicenseManager
+import qualified Data.Proxy as Proxy
+import Test.Amazonka.Fixture
+import Test.Amazonka.LicenseManager.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"
+--         [ requestAcceptGrant $
+--             newAcceptGrant
+--
+--         , requestCheckInLicense $
+--             newCheckInLicense
+--
+--         , requestCheckoutBorrowLicense $
+--             newCheckoutBorrowLicense
+--
+--         , requestCheckoutLicense $
+--             newCheckoutLicense
+--
+--         , requestCreateGrant $
+--             newCreateGrant
+--
+--         , requestCreateGrantVersion $
+--             newCreateGrantVersion
+--
+--         , requestCreateLicense $
+--             newCreateLicense
+--
+--         , requestCreateLicenseConfiguration $
+--             newCreateLicenseConfiguration
+--
+--         , requestCreateLicenseConversionTaskForResource $
+--             newCreateLicenseConversionTaskForResource
+--
+--         , requestCreateLicenseManagerReportGenerator $
+--             newCreateLicenseManagerReportGenerator
+--
+--         , requestCreateLicenseVersion $
+--             newCreateLicenseVersion
+--
+--         , requestCreateToken $
+--             newCreateToken
+--
+--         , requestDeleteGrant $
+--             newDeleteGrant
+--
+--         , requestDeleteLicense $
+--             newDeleteLicense
+--
+--         , requestDeleteLicenseConfiguration $
+--             newDeleteLicenseConfiguration
+--
+--         , requestDeleteLicenseManagerReportGenerator $
+--             newDeleteLicenseManagerReportGenerator
+--
+--         , requestDeleteToken $
+--             newDeleteToken
+--
+--         , requestExtendLicenseConsumption $
+--             newExtendLicenseConsumption
+--
+--         , requestGetAccessToken $
+--             newGetAccessToken
+--
+--         , requestGetGrant $
+--             newGetGrant
+--
+--         , requestGetLicense $
+--             newGetLicense
+--
+--         , requestGetLicenseConfiguration $
+--             newGetLicenseConfiguration
+--
+--         , requestGetLicenseConversionTask $
+--             newGetLicenseConversionTask
+--
+--         , requestGetLicenseManagerReportGenerator $
+--             newGetLicenseManagerReportGenerator
+--
+--         , requestGetLicenseUsage $
+--             newGetLicenseUsage
+--
+--         , requestGetServiceSettings $
+--             newGetServiceSettings
+--
+--         , requestListAssociationsForLicenseConfiguration $
+--             newListAssociationsForLicenseConfiguration
+--
+--         , requestListDistributedGrants $
+--             newListDistributedGrants
+--
+--         , requestListFailuresForLicenseConfigurationOperations $
+--             newListFailuresForLicenseConfigurationOperations
+--
+--         , requestListLicenseConfigurations $
+--             newListLicenseConfigurations
+--
+--         , requestListLicenseConversionTasks $
+--             newListLicenseConversionTasks
+--
+--         , requestListLicenseManagerReportGenerators $
+--             newListLicenseManagerReportGenerators
+--
+--         , requestListLicenseSpecificationsForResource $
+--             newListLicenseSpecificationsForResource
+--
+--         , requestListLicenseVersions $
+--             newListLicenseVersions
+--
+--         , requestListLicenses $
+--             newListLicenses
+--
+--         , requestListReceivedGrants $
+--             newListReceivedGrants
+--
+--         , requestListReceivedGrantsForOrganization $
+--             newListReceivedGrantsForOrganization
+--
+--         , requestListReceivedLicenses $
+--             newListReceivedLicenses
+--
+--         , requestListReceivedLicensesForOrganization $
+--             newListReceivedLicensesForOrganization
+--
+--         , requestListResourceInventory $
+--             newListResourceInventory
+--
+--         , requestListTagsForResource $
+--             newListTagsForResource
+--
+--         , requestListTokens $
+--             newListTokens
+--
+--         , requestListUsageForLicenseConfiguration $
+--             newListUsageForLicenseConfiguration
+--
+--         , requestRejectGrant $
+--             newRejectGrant
+--
+--         , requestTagResource $
+--             newTagResource
+--
+--         , requestUntagResource $
+--             newUntagResource
+--
+--         , requestUpdateLicenseConfiguration $
+--             newUpdateLicenseConfiguration
+--
+--         , requestUpdateLicenseManagerReportGenerator $
+--             newUpdateLicenseManagerReportGenerator
+--
+--         , requestUpdateLicenseSpecificationsForResource $
+--             newUpdateLicenseSpecificationsForResource
+--
+--         , requestUpdateServiceSettings $
+--             newUpdateServiceSettings
+--
+--           ]
+
+--     , testGroup "response"
+--         [ responseAcceptGrant $
+--             newAcceptGrantResponse
+--
+--         , responseCheckInLicense $
+--             newCheckInLicenseResponse
+--
+--         , responseCheckoutBorrowLicense $
+--             newCheckoutBorrowLicenseResponse
+--
+--         , responseCheckoutLicense $
+--             newCheckoutLicenseResponse
+--
+--         , responseCreateGrant $
+--             newCreateGrantResponse
+--
+--         , responseCreateGrantVersion $
+--             newCreateGrantVersionResponse
+--
+--         , responseCreateLicense $
+--             newCreateLicenseResponse
+--
+--         , responseCreateLicenseConfiguration $
+--             newCreateLicenseConfigurationResponse
+--
+--         , responseCreateLicenseConversionTaskForResource $
+--             newCreateLicenseConversionTaskForResourceResponse
+--
+--         , responseCreateLicenseManagerReportGenerator $
+--             newCreateLicenseManagerReportGeneratorResponse
+--
+--         , responseCreateLicenseVersion $
+--             newCreateLicenseVersionResponse
+--
+--         , responseCreateToken $
+--             newCreateTokenResponse
+--
+--         , responseDeleteGrant $
+--             newDeleteGrantResponse
+--
+--         , responseDeleteLicense $
+--             newDeleteLicenseResponse
+--
+--         , responseDeleteLicenseConfiguration $
+--             newDeleteLicenseConfigurationResponse
+--
+--         , responseDeleteLicenseManagerReportGenerator $
+--             newDeleteLicenseManagerReportGeneratorResponse
+--
+--         , responseDeleteToken $
+--             newDeleteTokenResponse
+--
+--         , responseExtendLicenseConsumption $
+--             newExtendLicenseConsumptionResponse
+--
+--         , responseGetAccessToken $
+--             newGetAccessTokenResponse
+--
+--         , responseGetGrant $
+--             newGetGrantResponse
+--
+--         , responseGetLicense $
+--             newGetLicenseResponse
+--
+--         , responseGetLicenseConfiguration $
+--             newGetLicenseConfigurationResponse
+--
+--         , responseGetLicenseConversionTask $
+--             newGetLicenseConversionTaskResponse
+--
+--         , responseGetLicenseManagerReportGenerator $
+--             newGetLicenseManagerReportGeneratorResponse
+--
+--         , responseGetLicenseUsage $
+--             newGetLicenseUsageResponse
+--
+--         , responseGetServiceSettings $
+--             newGetServiceSettingsResponse
+--
+--         , responseListAssociationsForLicenseConfiguration $
+--             newListAssociationsForLicenseConfigurationResponse
+--
+--         , responseListDistributedGrants $
+--             newListDistributedGrantsResponse
+--
+--         , responseListFailuresForLicenseConfigurationOperations $
+--             newListFailuresForLicenseConfigurationOperationsResponse
+--
+--         , responseListLicenseConfigurations $
+--             newListLicenseConfigurationsResponse
+--
+--         , responseListLicenseConversionTasks $
+--             newListLicenseConversionTasksResponse
+--
+--         , responseListLicenseManagerReportGenerators $
+--             newListLicenseManagerReportGeneratorsResponse
+--
+--         , responseListLicenseSpecificationsForResource $
+--             newListLicenseSpecificationsForResourceResponse
+--
+--         , responseListLicenseVersions $
+--             newListLicenseVersionsResponse
+--
+--         , responseListLicenses $
+--             newListLicensesResponse
+--
+--         , responseListReceivedGrants $
+--             newListReceivedGrantsResponse
+--
+--         , responseListReceivedGrantsForOrganization $
+--             newListReceivedGrantsForOrganizationResponse
+--
+--         , responseListReceivedLicenses $
+--             newListReceivedLicensesResponse
+--
+--         , responseListReceivedLicensesForOrganization $
+--             newListReceivedLicensesForOrganizationResponse
+--
+--         , responseListResourceInventory $
+--             newListResourceInventoryResponse
+--
+--         , responseListTagsForResource $
+--             newListTagsForResourceResponse
+--
+--         , responseListTokens $
+--             newListTokensResponse
+--
+--         , responseListUsageForLicenseConfiguration $
+--             newListUsageForLicenseConfigurationResponse
+--
+--         , responseRejectGrant $
+--             newRejectGrantResponse
+--
+--         , responseTagResource $
+--             newTagResourceResponse
+--
+--         , responseUntagResource $
+--             newUntagResourceResponse
+--
+--         , responseUpdateLicenseConfiguration $
+--             newUpdateLicenseConfigurationResponse
+--
+--         , responseUpdateLicenseManagerReportGenerator $
+--             newUpdateLicenseManagerReportGeneratorResponse
+--
+--         , responseUpdateLicenseSpecificationsForResource $
+--             newUpdateLicenseSpecificationsForResourceResponse
+--
+--         , responseUpdateServiceSettings $
+--             newUpdateServiceSettingsResponse
+--
+--           ]
+--     ]
+
+-- Requests
+
+requestAcceptGrant :: AcceptGrant -> TestTree
+requestAcceptGrant =
+  req
+    "AcceptGrant"
+    "fixture/AcceptGrant.yaml"
+
+requestCheckInLicense :: CheckInLicense -> TestTree
+requestCheckInLicense =
+  req
+    "CheckInLicense"
+    "fixture/CheckInLicense.yaml"
+
+requestCheckoutBorrowLicense :: CheckoutBorrowLicense -> TestTree
+requestCheckoutBorrowLicense =
+  req
+    "CheckoutBorrowLicense"
+    "fixture/CheckoutBorrowLicense.yaml"
+
+requestCheckoutLicense :: CheckoutLicense -> TestTree
+requestCheckoutLicense =
+  req
+    "CheckoutLicense"
+    "fixture/CheckoutLicense.yaml"
+
+requestCreateGrant :: CreateGrant -> TestTree
+requestCreateGrant =
+  req
+    "CreateGrant"
+    "fixture/CreateGrant.yaml"
+
+requestCreateGrantVersion :: CreateGrantVersion -> TestTree
+requestCreateGrantVersion =
+  req
+    "CreateGrantVersion"
+    "fixture/CreateGrantVersion.yaml"
+
+requestCreateLicense :: CreateLicense -> TestTree
+requestCreateLicense =
+  req
+    "CreateLicense"
+    "fixture/CreateLicense.yaml"
+
+requestCreateLicenseConfiguration :: CreateLicenseConfiguration -> TestTree
+requestCreateLicenseConfiguration =
+  req
+    "CreateLicenseConfiguration"
+    "fixture/CreateLicenseConfiguration.yaml"
+
+requestCreateLicenseConversionTaskForResource :: CreateLicenseConversionTaskForResource -> TestTree
+requestCreateLicenseConversionTaskForResource =
+  req
+    "CreateLicenseConversionTaskForResource"
+    "fixture/CreateLicenseConversionTaskForResource.yaml"
+
+requestCreateLicenseManagerReportGenerator :: CreateLicenseManagerReportGenerator -> TestTree
+requestCreateLicenseManagerReportGenerator =
+  req
+    "CreateLicenseManagerReportGenerator"
+    "fixture/CreateLicenseManagerReportGenerator.yaml"
+
+requestCreateLicenseVersion :: CreateLicenseVersion -> TestTree
+requestCreateLicenseVersion =
+  req
+    "CreateLicenseVersion"
+    "fixture/CreateLicenseVersion.yaml"
+
+requestCreateToken :: CreateToken -> TestTree
+requestCreateToken =
+  req
+    "CreateToken"
+    "fixture/CreateToken.yaml"
+
+requestDeleteGrant :: DeleteGrant -> TestTree
+requestDeleteGrant =
+  req
+    "DeleteGrant"
+    "fixture/DeleteGrant.yaml"
+
+requestDeleteLicense :: DeleteLicense -> TestTree
+requestDeleteLicense =
+  req
+    "DeleteLicense"
+    "fixture/DeleteLicense.yaml"
+
+requestDeleteLicenseConfiguration :: DeleteLicenseConfiguration -> TestTree
+requestDeleteLicenseConfiguration =
+  req
+    "DeleteLicenseConfiguration"
+    "fixture/DeleteLicenseConfiguration.yaml"
+
+requestDeleteLicenseManagerReportGenerator :: DeleteLicenseManagerReportGenerator -> TestTree
+requestDeleteLicenseManagerReportGenerator =
+  req
+    "DeleteLicenseManagerReportGenerator"
+    "fixture/DeleteLicenseManagerReportGenerator.yaml"
+
+requestDeleteToken :: DeleteToken -> TestTree
+requestDeleteToken =
+  req
+    "DeleteToken"
+    "fixture/DeleteToken.yaml"
+
+requestExtendLicenseConsumption :: ExtendLicenseConsumption -> TestTree
+requestExtendLicenseConsumption =
+  req
+    "ExtendLicenseConsumption"
+    "fixture/ExtendLicenseConsumption.yaml"
+
+requestGetAccessToken :: GetAccessToken -> TestTree
+requestGetAccessToken =
+  req
+    "GetAccessToken"
+    "fixture/GetAccessToken.yaml"
+
+requestGetGrant :: GetGrant -> TestTree
+requestGetGrant =
+  req
+    "GetGrant"
+    "fixture/GetGrant.yaml"
+
+requestGetLicense :: GetLicense -> TestTree
+requestGetLicense =
+  req
+    "GetLicense"
+    "fixture/GetLicense.yaml"
+
+requestGetLicenseConfiguration :: GetLicenseConfiguration -> TestTree
+requestGetLicenseConfiguration =
+  req
+    "GetLicenseConfiguration"
+    "fixture/GetLicenseConfiguration.yaml"
+
+requestGetLicenseConversionTask :: GetLicenseConversionTask -> TestTree
+requestGetLicenseConversionTask =
+  req
+    "GetLicenseConversionTask"
+    "fixture/GetLicenseConversionTask.yaml"
+
+requestGetLicenseManagerReportGenerator :: GetLicenseManagerReportGenerator -> TestTree
+requestGetLicenseManagerReportGenerator =
+  req
+    "GetLicenseManagerReportGenerator"
+    "fixture/GetLicenseManagerReportGenerator.yaml"
+
+requestGetLicenseUsage :: GetLicenseUsage -> TestTree
+requestGetLicenseUsage =
+  req
+    "GetLicenseUsage"
+    "fixture/GetLicenseUsage.yaml"
+
+requestGetServiceSettings :: GetServiceSettings -> TestTree
+requestGetServiceSettings =
+  req
+    "GetServiceSettings"
+    "fixture/GetServiceSettings.yaml"
+
+requestListAssociationsForLicenseConfiguration :: ListAssociationsForLicenseConfiguration -> TestTree
+requestListAssociationsForLicenseConfiguration =
+  req
+    "ListAssociationsForLicenseConfiguration"
+    "fixture/ListAssociationsForLicenseConfiguration.yaml"
+
+requestListDistributedGrants :: ListDistributedGrants -> TestTree
+requestListDistributedGrants =
+  req
+    "ListDistributedGrants"
+    "fixture/ListDistributedGrants.yaml"
+
+requestListFailuresForLicenseConfigurationOperations :: ListFailuresForLicenseConfigurationOperations -> TestTree
+requestListFailuresForLicenseConfigurationOperations =
+  req
+    "ListFailuresForLicenseConfigurationOperations"
+    "fixture/ListFailuresForLicenseConfigurationOperations.yaml"
+
+requestListLicenseConfigurations :: ListLicenseConfigurations -> TestTree
+requestListLicenseConfigurations =
+  req
+    "ListLicenseConfigurations"
+    "fixture/ListLicenseConfigurations.yaml"
+
+requestListLicenseConversionTasks :: ListLicenseConversionTasks -> TestTree
+requestListLicenseConversionTasks =
+  req
+    "ListLicenseConversionTasks"
+    "fixture/ListLicenseConversionTasks.yaml"
+
+requestListLicenseManagerReportGenerators :: ListLicenseManagerReportGenerators -> TestTree
+requestListLicenseManagerReportGenerators =
+  req
+    "ListLicenseManagerReportGenerators"
+    "fixture/ListLicenseManagerReportGenerators.yaml"
+
+requestListLicenseSpecificationsForResource :: ListLicenseSpecificationsForResource -> TestTree
+requestListLicenseSpecificationsForResource =
+  req
+    "ListLicenseSpecificationsForResource"
+    "fixture/ListLicenseSpecificationsForResource.yaml"
+
+requestListLicenseVersions :: ListLicenseVersions -> TestTree
+requestListLicenseVersions =
+  req
+    "ListLicenseVersions"
+    "fixture/ListLicenseVersions.yaml"
+
+requestListLicenses :: ListLicenses -> TestTree
+requestListLicenses =
+  req
+    "ListLicenses"
+    "fixture/ListLicenses.yaml"
+
+requestListReceivedGrants :: ListReceivedGrants -> TestTree
+requestListReceivedGrants =
+  req
+    "ListReceivedGrants"
+    "fixture/ListReceivedGrants.yaml"
+
+requestListReceivedGrantsForOrganization :: ListReceivedGrantsForOrganization -> TestTree
+requestListReceivedGrantsForOrganization =
+  req
+    "ListReceivedGrantsForOrganization"
+    "fixture/ListReceivedGrantsForOrganization.yaml"
+
+requestListReceivedLicenses :: ListReceivedLicenses -> TestTree
+requestListReceivedLicenses =
+  req
+    "ListReceivedLicenses"
+    "fixture/ListReceivedLicenses.yaml"
+
+requestListReceivedLicensesForOrganization :: ListReceivedLicensesForOrganization -> TestTree
+requestListReceivedLicensesForOrganization =
+  req
+    "ListReceivedLicensesForOrganization"
+    "fixture/ListReceivedLicensesForOrganization.yaml"
+
+requestListResourceInventory :: ListResourceInventory -> TestTree
+requestListResourceInventory =
+  req
+    "ListResourceInventory"
+    "fixture/ListResourceInventory.yaml"
+
+requestListTagsForResource :: ListTagsForResource -> TestTree
+requestListTagsForResource =
+  req
+    "ListTagsForResource"
+    "fixture/ListTagsForResource.yaml"
+
+requestListTokens :: ListTokens -> TestTree
+requestListTokens =
+  req
+    "ListTokens"
+    "fixture/ListTokens.yaml"
+
+requestListUsageForLicenseConfiguration :: ListUsageForLicenseConfiguration -> TestTree
+requestListUsageForLicenseConfiguration =
+  req
+    "ListUsageForLicenseConfiguration"
+    "fixture/ListUsageForLicenseConfiguration.yaml"
+
+requestRejectGrant :: RejectGrant -> TestTree
+requestRejectGrant =
+  req
+    "RejectGrant"
+    "fixture/RejectGrant.yaml"
+
+requestTagResource :: TagResource -> TestTree
+requestTagResource =
+  req
+    "TagResource"
+    "fixture/TagResource.yaml"
+
+requestUntagResource :: UntagResource -> TestTree
+requestUntagResource =
+  req
+    "UntagResource"
+    "fixture/UntagResource.yaml"
+
+requestUpdateLicenseConfiguration :: UpdateLicenseConfiguration -> TestTree
+requestUpdateLicenseConfiguration =
+  req
+    "UpdateLicenseConfiguration"
+    "fixture/UpdateLicenseConfiguration.yaml"
+
+requestUpdateLicenseManagerReportGenerator :: UpdateLicenseManagerReportGenerator -> TestTree
+requestUpdateLicenseManagerReportGenerator =
+  req
+    "UpdateLicenseManagerReportGenerator"
+    "fixture/UpdateLicenseManagerReportGenerator.yaml"
+
+requestUpdateLicenseSpecificationsForResource :: UpdateLicenseSpecificationsForResource -> TestTree
+requestUpdateLicenseSpecificationsForResource =
+  req
+    "UpdateLicenseSpecificationsForResource"
+    "fixture/UpdateLicenseSpecificationsForResource.yaml"
+
+requestUpdateServiceSettings :: UpdateServiceSettings -> TestTree
+requestUpdateServiceSettings =
+  req
+    "UpdateServiceSettings"
+    "fixture/UpdateServiceSettings.yaml"
+
+-- Responses
+
+responseAcceptGrant :: AcceptGrantResponse -> TestTree
+responseAcceptGrant =
+  res
+    "AcceptGrantResponse"
+    "fixture/AcceptGrantResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy AcceptGrant)
+
+responseCheckInLicense :: CheckInLicenseResponse -> TestTree
+responseCheckInLicense =
+  res
+    "CheckInLicenseResponse"
+    "fixture/CheckInLicenseResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CheckInLicense)
+
+responseCheckoutBorrowLicense :: CheckoutBorrowLicenseResponse -> TestTree
+responseCheckoutBorrowLicense =
+  res
+    "CheckoutBorrowLicenseResponse"
+    "fixture/CheckoutBorrowLicenseResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CheckoutBorrowLicense)
+
+responseCheckoutLicense :: CheckoutLicenseResponse -> TestTree
+responseCheckoutLicense =
+  res
+    "CheckoutLicenseResponse"
+    "fixture/CheckoutLicenseResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CheckoutLicense)
+
+responseCreateGrant :: CreateGrantResponse -> TestTree
+responseCreateGrant =
+  res
+    "CreateGrantResponse"
+    "fixture/CreateGrantResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CreateGrant)
+
+responseCreateGrantVersion :: CreateGrantVersionResponse -> TestTree
+responseCreateGrantVersion =
+  res
+    "CreateGrantVersionResponse"
+    "fixture/CreateGrantVersionResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CreateGrantVersion)
+
+responseCreateLicense :: CreateLicenseResponse -> TestTree
+responseCreateLicense =
+  res
+    "CreateLicenseResponse"
+    "fixture/CreateLicenseResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CreateLicense)
+
+responseCreateLicenseConfiguration :: CreateLicenseConfigurationResponse -> TestTree
+responseCreateLicenseConfiguration =
+  res
+    "CreateLicenseConfigurationResponse"
+    "fixture/CreateLicenseConfigurationResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CreateLicenseConfiguration)
+
+responseCreateLicenseConversionTaskForResource :: CreateLicenseConversionTaskForResourceResponse -> TestTree
+responseCreateLicenseConversionTaskForResource =
+  res
+    "CreateLicenseConversionTaskForResourceResponse"
+    "fixture/CreateLicenseConversionTaskForResourceResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CreateLicenseConversionTaskForResource)
+
+responseCreateLicenseManagerReportGenerator :: CreateLicenseManagerReportGeneratorResponse -> TestTree
+responseCreateLicenseManagerReportGenerator =
+  res
+    "CreateLicenseManagerReportGeneratorResponse"
+    "fixture/CreateLicenseManagerReportGeneratorResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CreateLicenseManagerReportGenerator)
+
+responseCreateLicenseVersion :: CreateLicenseVersionResponse -> TestTree
+responseCreateLicenseVersion =
+  res
+    "CreateLicenseVersionResponse"
+    "fixture/CreateLicenseVersionResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CreateLicenseVersion)
+
+responseCreateToken :: CreateTokenResponse -> TestTree
+responseCreateToken =
+  res
+    "CreateTokenResponse"
+    "fixture/CreateTokenResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CreateToken)
+
+responseDeleteGrant :: DeleteGrantResponse -> TestTree
+responseDeleteGrant =
+  res
+    "DeleteGrantResponse"
+    "fixture/DeleteGrantResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DeleteGrant)
+
+responseDeleteLicense :: DeleteLicenseResponse -> TestTree
+responseDeleteLicense =
+  res
+    "DeleteLicenseResponse"
+    "fixture/DeleteLicenseResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DeleteLicense)
+
+responseDeleteLicenseConfiguration :: DeleteLicenseConfigurationResponse -> TestTree
+responseDeleteLicenseConfiguration =
+  res
+    "DeleteLicenseConfigurationResponse"
+    "fixture/DeleteLicenseConfigurationResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DeleteLicenseConfiguration)
+
+responseDeleteLicenseManagerReportGenerator :: DeleteLicenseManagerReportGeneratorResponse -> TestTree
+responseDeleteLicenseManagerReportGenerator =
+  res
+    "DeleteLicenseManagerReportGeneratorResponse"
+    "fixture/DeleteLicenseManagerReportGeneratorResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DeleteLicenseManagerReportGenerator)
+
+responseDeleteToken :: DeleteTokenResponse -> TestTree
+responseDeleteToken =
+  res
+    "DeleteTokenResponse"
+    "fixture/DeleteTokenResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DeleteToken)
+
+responseExtendLicenseConsumption :: ExtendLicenseConsumptionResponse -> TestTree
+responseExtendLicenseConsumption =
+  res
+    "ExtendLicenseConsumptionResponse"
+    "fixture/ExtendLicenseConsumptionResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ExtendLicenseConsumption)
+
+responseGetAccessToken :: GetAccessTokenResponse -> TestTree
+responseGetAccessToken =
+  res
+    "GetAccessTokenResponse"
+    "fixture/GetAccessTokenResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetAccessToken)
+
+responseGetGrant :: GetGrantResponse -> TestTree
+responseGetGrant =
+  res
+    "GetGrantResponse"
+    "fixture/GetGrantResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetGrant)
+
+responseGetLicense :: GetLicenseResponse -> TestTree
+responseGetLicense =
+  res
+    "GetLicenseResponse"
+    "fixture/GetLicenseResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetLicense)
+
+responseGetLicenseConfiguration :: GetLicenseConfigurationResponse -> TestTree
+responseGetLicenseConfiguration =
+  res
+    "GetLicenseConfigurationResponse"
+    "fixture/GetLicenseConfigurationResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetLicenseConfiguration)
+
+responseGetLicenseConversionTask :: GetLicenseConversionTaskResponse -> TestTree
+responseGetLicenseConversionTask =
+  res
+    "GetLicenseConversionTaskResponse"
+    "fixture/GetLicenseConversionTaskResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetLicenseConversionTask)
+
+responseGetLicenseManagerReportGenerator :: GetLicenseManagerReportGeneratorResponse -> TestTree
+responseGetLicenseManagerReportGenerator =
+  res
+    "GetLicenseManagerReportGeneratorResponse"
+    "fixture/GetLicenseManagerReportGeneratorResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetLicenseManagerReportGenerator)
+
+responseGetLicenseUsage :: GetLicenseUsageResponse -> TestTree
+responseGetLicenseUsage =
+  res
+    "GetLicenseUsageResponse"
+    "fixture/GetLicenseUsageResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetLicenseUsage)
+
+responseGetServiceSettings :: GetServiceSettingsResponse -> TestTree
+responseGetServiceSettings =
+  res
+    "GetServiceSettingsResponse"
+    "fixture/GetServiceSettingsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetServiceSettings)
+
+responseListAssociationsForLicenseConfiguration :: ListAssociationsForLicenseConfigurationResponse -> TestTree
+responseListAssociationsForLicenseConfiguration =
+  res
+    "ListAssociationsForLicenseConfigurationResponse"
+    "fixture/ListAssociationsForLicenseConfigurationResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListAssociationsForLicenseConfiguration)
+
+responseListDistributedGrants :: ListDistributedGrantsResponse -> TestTree
+responseListDistributedGrants =
+  res
+    "ListDistributedGrantsResponse"
+    "fixture/ListDistributedGrantsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListDistributedGrants)
+
+responseListFailuresForLicenseConfigurationOperations :: ListFailuresForLicenseConfigurationOperationsResponse -> TestTree
+responseListFailuresForLicenseConfigurationOperations =
+  res
+    "ListFailuresForLicenseConfigurationOperationsResponse"
+    "fixture/ListFailuresForLicenseConfigurationOperationsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListFailuresForLicenseConfigurationOperations)
+
+responseListLicenseConfigurations :: ListLicenseConfigurationsResponse -> TestTree
+responseListLicenseConfigurations =
+  res
+    "ListLicenseConfigurationsResponse"
+    "fixture/ListLicenseConfigurationsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListLicenseConfigurations)
+
+responseListLicenseConversionTasks :: ListLicenseConversionTasksResponse -> TestTree
+responseListLicenseConversionTasks =
+  res
+    "ListLicenseConversionTasksResponse"
+    "fixture/ListLicenseConversionTasksResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListLicenseConversionTasks)
+
+responseListLicenseManagerReportGenerators :: ListLicenseManagerReportGeneratorsResponse -> TestTree
+responseListLicenseManagerReportGenerators =
+  res
+    "ListLicenseManagerReportGeneratorsResponse"
+    "fixture/ListLicenseManagerReportGeneratorsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListLicenseManagerReportGenerators)
+
+responseListLicenseSpecificationsForResource :: ListLicenseSpecificationsForResourceResponse -> TestTree
+responseListLicenseSpecificationsForResource =
+  res
+    "ListLicenseSpecificationsForResourceResponse"
+    "fixture/ListLicenseSpecificationsForResourceResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListLicenseSpecificationsForResource)
+
+responseListLicenseVersions :: ListLicenseVersionsResponse -> TestTree
+responseListLicenseVersions =
+  res
+    "ListLicenseVersionsResponse"
+    "fixture/ListLicenseVersionsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListLicenseVersions)
+
+responseListLicenses :: ListLicensesResponse -> TestTree
+responseListLicenses =
+  res
+    "ListLicensesResponse"
+    "fixture/ListLicensesResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListLicenses)
+
+responseListReceivedGrants :: ListReceivedGrantsResponse -> TestTree
+responseListReceivedGrants =
+  res
+    "ListReceivedGrantsResponse"
+    "fixture/ListReceivedGrantsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListReceivedGrants)
+
+responseListReceivedGrantsForOrganization :: ListReceivedGrantsForOrganizationResponse -> TestTree
+responseListReceivedGrantsForOrganization =
+  res
+    "ListReceivedGrantsForOrganizationResponse"
+    "fixture/ListReceivedGrantsForOrganizationResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListReceivedGrantsForOrganization)
+
+responseListReceivedLicenses :: ListReceivedLicensesResponse -> TestTree
+responseListReceivedLicenses =
+  res
+    "ListReceivedLicensesResponse"
+    "fixture/ListReceivedLicensesResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListReceivedLicenses)
+
+responseListReceivedLicensesForOrganization :: ListReceivedLicensesForOrganizationResponse -> TestTree
+responseListReceivedLicensesForOrganization =
+  res
+    "ListReceivedLicensesForOrganizationResponse"
+    "fixture/ListReceivedLicensesForOrganizationResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListReceivedLicensesForOrganization)
+
+responseListResourceInventory :: ListResourceInventoryResponse -> TestTree
+responseListResourceInventory =
+  res
+    "ListResourceInventoryResponse"
+    "fixture/ListResourceInventoryResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListResourceInventory)
+
+responseListTagsForResource :: ListTagsForResourceResponse -> TestTree
+responseListTagsForResource =
+  res
+    "ListTagsForResourceResponse"
+    "fixture/ListTagsForResourceResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)
+
+responseListTokens :: ListTokensResponse -> TestTree
+responseListTokens =
+  res
+    "ListTokensResponse"
+    "fixture/ListTokensResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListTokens)
+
+responseListUsageForLicenseConfiguration :: ListUsageForLicenseConfigurationResponse -> TestTree
+responseListUsageForLicenseConfiguration =
+  res
+    "ListUsageForLicenseConfigurationResponse"
+    "fixture/ListUsageForLicenseConfigurationResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListUsageForLicenseConfiguration)
+
+responseRejectGrant :: RejectGrantResponse -> TestTree
+responseRejectGrant =
+  res
+    "RejectGrantResponse"
+    "fixture/RejectGrantResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy RejectGrant)
+
+responseTagResource :: TagResourceResponse -> TestTree
+responseTagResource =
+  res
+    "TagResourceResponse"
+    "fixture/TagResourceResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy TagResource)
+
+responseUntagResource :: UntagResourceResponse -> TestTree
+responseUntagResource =
+  res
+    "UntagResourceResponse"
+    "fixture/UntagResourceResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy UntagResource)
+
+responseUpdateLicenseConfiguration :: UpdateLicenseConfigurationResponse -> TestTree
+responseUpdateLicenseConfiguration =
+  res
+    "UpdateLicenseConfigurationResponse"
+    "fixture/UpdateLicenseConfigurationResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy UpdateLicenseConfiguration)
+
+responseUpdateLicenseManagerReportGenerator :: UpdateLicenseManagerReportGeneratorResponse -> TestTree
+responseUpdateLicenseManagerReportGenerator =
+  res
+    "UpdateLicenseManagerReportGeneratorResponse"
+    "fixture/UpdateLicenseManagerReportGeneratorResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy UpdateLicenseManagerReportGenerator)
+
+responseUpdateLicenseSpecificationsForResource :: UpdateLicenseSpecificationsForResourceResponse -> TestTree
+responseUpdateLicenseSpecificationsForResource =
+  res
+    "UpdateLicenseSpecificationsForResourceResponse"
+    "fixture/UpdateLicenseSpecificationsForResourceResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy UpdateLicenseSpecificationsForResource)
+
+responseUpdateServiceSettings :: UpdateServiceSettingsResponse -> TestTree
+responseUpdateServiceSettings =
+  res
+    "UpdateServiceSettingsResponse"
+    "fixture/UpdateServiceSettingsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy UpdateServiceSettings)
diff --git a/test/Test/Amazonka/LicenseManager.hs b/test/Test/Amazonka/LicenseManager.hs
new file mode 100644
--- /dev/null
+++ b/test/Test/Amazonka/LicenseManager.hs
@@ -0,0 +1,20 @@
+-- |
+-- Module      : Test.Amazonka.LicenseManager
+-- 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.LicenseManager
+  ( tests,
+    fixtures,
+  )
+where
+
+import Test.Tasty (TestTree)
+
+tests :: [TestTree]
+tests = []
+
+fixtures :: [TestTree]
+fixtures = []
diff --git a/test/Test/Amazonka/LicenseManager/Internal.hs b/test/Test/Amazonka/LicenseManager/Internal.hs
new file mode 100644
--- /dev/null
+++ b/test/Test/Amazonka/LicenseManager/Internal.hs
@@ -0,0 +1,8 @@
+-- |
+-- Module      : Test.Amazonka.LicenseManager.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.LicenseManager.Internal where
