amazonka-ecr-public (empty) → 2.0
raw patch · 101 files changed
+10315/−0 lines, 101 filesdep +amazonka-coredep +amazonka-ecr-publicdep +amazonka-test
Dependencies added: amazonka-core, amazonka-ecr-public, amazonka-test, base, bytestring, case-insensitive, tasty, tasty-hunit, text, time, unordered-containers
Files
- LICENSE +367/−0
- README.md +44/−0
- amazonka-ecr-public.cabal +126/−0
- fixture/BatchCheckLayerAvailability.yaml +10/−0
- fixture/BatchCheckLayerAvailabilityResponse.proto +0/−0
- fixture/BatchDeleteImage.yaml +10/−0
- fixture/BatchDeleteImageResponse.proto +0/−0
- fixture/CompleteLayerUpload.yaml +10/−0
- fixture/CompleteLayerUploadResponse.proto +0/−0
- fixture/CreateRepository.yaml +10/−0
- fixture/CreateRepositoryResponse.proto +0/−0
- fixture/DeleteRepository.yaml +10/−0
- fixture/DeleteRepositoryPolicy.yaml +10/−0
- fixture/DeleteRepositoryPolicyResponse.proto +0/−0
- fixture/DeleteRepositoryResponse.proto +0/−0
- fixture/DescribeImageTags.yaml +10/−0
- fixture/DescribeImageTagsResponse.proto +0/−0
- fixture/DescribeImages.yaml +10/−0
- fixture/DescribeImagesResponse.proto +0/−0
- fixture/DescribeRegistries.yaml +10/−0
- fixture/DescribeRegistriesResponse.proto +0/−0
- fixture/DescribeRepositories.yaml +10/−0
- fixture/DescribeRepositoriesResponse.proto +0/−0
- fixture/GetAuthorizationToken.yaml +10/−0
- fixture/GetAuthorizationTokenResponse.proto +0/−0
- fixture/GetRegistryCatalogData.yaml +10/−0
- fixture/GetRegistryCatalogDataResponse.proto +0/−0
- fixture/GetRepositoryCatalogData.yaml +10/−0
- fixture/GetRepositoryCatalogDataResponse.proto +0/−0
- fixture/GetRepositoryPolicy.yaml +10/−0
- fixture/GetRepositoryPolicyResponse.proto +0/−0
- fixture/InitiateLayerUpload.yaml +10/−0
- fixture/InitiateLayerUploadResponse.proto +0/−0
- fixture/ListTagsForResource.yaml +10/−0
- fixture/ListTagsForResourceResponse.proto +0/−0
- fixture/PutImage.yaml +10/−0
- fixture/PutImageResponse.proto +0/−0
- fixture/PutRegistryCatalogData.yaml +10/−0
- fixture/PutRegistryCatalogDataResponse.proto +0/−0
- fixture/PutRepositoryCatalogData.yaml +10/−0
- fixture/PutRepositoryCatalogDataResponse.proto +0/−0
- fixture/SetRepositoryPolicy.yaml +10/−0
- fixture/SetRepositoryPolicyResponse.proto +0/−0
- fixture/TagResource.yaml +10/−0
- fixture/TagResourceResponse.proto +0/−0
- fixture/UntagResource.yaml +10/−0
- fixture/UntagResourceResponse.proto +0/−0
- fixture/UploadLayerPart.yaml +10/−0
- fixture/UploadLayerPartResponse.proto +0/−0
- gen/Amazonka/ECRPublic.hs +377/−0
- gen/Amazonka/ECRPublic/BatchCheckLayerAvailability.hs +240/−0
- gen/Amazonka/ECRPublic/BatchDeleteImage.hs +235/−0
- gen/Amazonka/ECRPublic/CompleteLayerUpload.hs +278/−0
- gen/Amazonka/ECRPublic/CreateRepository.hs +237/−0
- gen/Amazonka/ECRPublic/DeleteRepository.hs +209/−0
- gen/Amazonka/ECRPublic/DeleteRepositoryPolicy.hs +224/−0
- gen/Amazonka/ECRPublic/DescribeImageTags.hs +309/−0
- gen/Amazonka/ECRPublic/DescribeImages.hs +322/−0
- gen/Amazonka/ECRPublic/DescribeRegistries.hs +271/−0
- gen/Amazonka/ECRPublic/DescribeRepositories.hs +322/−0
- gen/Amazonka/ECRPublic/GetAuthorizationToken.hs +156/−0
- gen/Amazonka/ECRPublic/GetRegistryCatalogData.hs +155/−0
- gen/Amazonka/ECRPublic/GetRepositoryCatalogData.hs +198/−0
- gen/Amazonka/ECRPublic/GetRepositoryPolicy.hs +220/−0
- gen/Amazonka/ECRPublic/InitiateLayerUpload.hs +220/−0
- gen/Amazonka/ECRPublic/Lens.hs +330/−0
- gen/Amazonka/ECRPublic/ListTagsForResource.hs +175/−0
- gen/Amazonka/ECRPublic/PutImage.hs +266/−0
- gen/Amazonka/ECRPublic/PutRegistryCatalogData.hs +189/−0
- gen/Amazonka/ECRPublic/PutRepositoryCatalogData.hs +218/−0
- gen/Amazonka/ECRPublic/SetRepositoryPolicy.hs +266/−0
- gen/Amazonka/ECRPublic/TagResource.hs +180/−0
- gen/Amazonka/ECRPublic/Types.hs +460/−0
- gen/Amazonka/ECRPublic/Types/AuthorizationData.hs +98/−0
- gen/Amazonka/ECRPublic/Types/Image.hs +124/−0
- gen/Amazonka/ECRPublic/Types/ImageDetail.hs +190/−0
- gen/Amazonka/ECRPublic/Types/ImageFailure.hs +98/−0
- gen/Amazonka/ECRPublic/Types/ImageFailureCode.hs +96/−0
- gen/Amazonka/ECRPublic/Types/ImageIdentifier.hs +93/−0
- gen/Amazonka/ECRPublic/Types/ImageTagDetail.hs +97/−0
- gen/Amazonka/ECRPublic/Types/Layer.hs +115/−0
- gen/Amazonka/ECRPublic/Types/LayerAvailability.hs +71/−0
- gen/Amazonka/ECRPublic/Types/LayerFailure.hs +97/−0
- gen/Amazonka/ECRPublic/Types/LayerFailureCode.hs +71/−0
- gen/Amazonka/ECRPublic/Types/ReferencedImageDetail.hs +152/−0
- gen/Amazonka/ECRPublic/Types/Registry.hs +148/−0
- gen/Amazonka/ECRPublic/Types/RegistryAlias.hs +149/−0
- gen/Amazonka/ECRPublic/Types/RegistryAliasStatus.hs +76/−0
- gen/Amazonka/ECRPublic/Types/RegistryCatalogData.hs +81/−0
- gen/Amazonka/ECRPublic/Types/Repository.hs +141/−0
- gen/Amazonka/ECRPublic/Types/RepositoryCatalogData.hs +172/−0
- gen/Amazonka/ECRPublic/Types/RepositoryCatalogDataInput.hs +250/−0
- gen/Amazonka/ECRPublic/Types/Tag.hs +101/−0
- gen/Amazonka/ECRPublic/UntagResource.hs +177/−0
- gen/Amazonka/ECRPublic/UploadLayerPart.hs +321/−0
- gen/Amazonka/ECRPublic/Waiters.hs +24/−0
- src/.gitkeep +0/−0
- test/Main.hs +23/−0
- test/Test/Amazonka/ECRPublic.hs +20/−0
- test/Test/Amazonka/ECRPublic/Internal.hs +8/−0
- test/Test/Amazonka/Gen/ECRPublic.hs +498/−0
+ LICENSE view
@@ -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.
+ README.md view
@@ -0,0 +1,44 @@+# Amazon Elastic Container Registry Public SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2020-10-30@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-ecr-public)+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.ECRPublic](http://hackage.haskell.org/package/amazonka-ecr-public/docs/Amazonka-ECRPublic.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-ecr-public` 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.
+ amazonka-ecr-public.cabal view
@@ -0,0 +1,126 @@+cabal-version: 2.2+name: amazonka-ecr-public+version: 2.0+synopsis: Amazon Elastic Container Registry Public 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 @2020-10-30@ 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.ECRPublic.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.ECRPublic" 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-ecr-public++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.ECRPublic+ Amazonka.ECRPublic.BatchCheckLayerAvailability+ Amazonka.ECRPublic.BatchDeleteImage+ Amazonka.ECRPublic.CompleteLayerUpload+ Amazonka.ECRPublic.CreateRepository+ Amazonka.ECRPublic.DeleteRepository+ Amazonka.ECRPublic.DeleteRepositoryPolicy+ Amazonka.ECRPublic.DescribeImages+ Amazonka.ECRPublic.DescribeImageTags+ Amazonka.ECRPublic.DescribeRegistries+ Amazonka.ECRPublic.DescribeRepositories+ Amazonka.ECRPublic.GetAuthorizationToken+ Amazonka.ECRPublic.GetRegistryCatalogData+ Amazonka.ECRPublic.GetRepositoryCatalogData+ Amazonka.ECRPublic.GetRepositoryPolicy+ Amazonka.ECRPublic.InitiateLayerUpload+ Amazonka.ECRPublic.Lens+ Amazonka.ECRPublic.ListTagsForResource+ Amazonka.ECRPublic.PutImage+ Amazonka.ECRPublic.PutRegistryCatalogData+ Amazonka.ECRPublic.PutRepositoryCatalogData+ Amazonka.ECRPublic.SetRepositoryPolicy+ Amazonka.ECRPublic.TagResource+ Amazonka.ECRPublic.Types+ Amazonka.ECRPublic.Types.AuthorizationData+ Amazonka.ECRPublic.Types.Image+ Amazonka.ECRPublic.Types.ImageDetail+ Amazonka.ECRPublic.Types.ImageFailure+ Amazonka.ECRPublic.Types.ImageFailureCode+ Amazonka.ECRPublic.Types.ImageIdentifier+ Amazonka.ECRPublic.Types.ImageTagDetail+ Amazonka.ECRPublic.Types.Layer+ Amazonka.ECRPublic.Types.LayerAvailability+ Amazonka.ECRPublic.Types.LayerFailure+ Amazonka.ECRPublic.Types.LayerFailureCode+ Amazonka.ECRPublic.Types.ReferencedImageDetail+ Amazonka.ECRPublic.Types.Registry+ Amazonka.ECRPublic.Types.RegistryAlias+ Amazonka.ECRPublic.Types.RegistryAliasStatus+ Amazonka.ECRPublic.Types.RegistryCatalogData+ Amazonka.ECRPublic.Types.Repository+ Amazonka.ECRPublic.Types.RepositoryCatalogData+ Amazonka.ECRPublic.Types.RepositoryCatalogDataInput+ Amazonka.ECRPublic.Types.Tag+ Amazonka.ECRPublic.UntagResource+ Amazonka.ECRPublic.UploadLayerPart+ Amazonka.ECRPublic.Waiters++ build-depends:+ , amazonka-core >=2.0 && <2.1+ , base >=4.12 && <5++test-suite amazonka-ecr-public-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.ECRPublic+ Test.Amazonka.ECRPublic.Internal+ Test.Amazonka.Gen.ECRPublic++ build-depends:+ , amazonka-core >=2.0 && <2.1+ , amazonka-ecr-public+ , amazonka-test >=2.0 && <2.1+ , base+ , bytestring+ , case-insensitive+ , tasty+ , tasty-hunit+ , text+ , time+ , unordered-containers
+ fixture/BatchCheckLayerAvailability.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.ecr-public/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: api.ecr-public.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:+ ''
+ fixture/BatchCheckLayerAvailabilityResponse.proto view
+ fixture/BatchDeleteImage.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.ecr-public/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: api.ecr-public.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:+ ''
+ fixture/BatchDeleteImageResponse.proto view
+ fixture/CompleteLayerUpload.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.ecr-public/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: api.ecr-public.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:+ ''
+ fixture/CompleteLayerUploadResponse.proto view
+ fixture/CreateRepository.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.ecr-public/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: api.ecr-public.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:+ ''
+ fixture/CreateRepositoryResponse.proto view
+ fixture/DeleteRepository.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.ecr-public/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: api.ecr-public.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:+ ''
+ fixture/DeleteRepositoryPolicy.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.ecr-public/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: api.ecr-public.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:+ ''
+ fixture/DeleteRepositoryPolicyResponse.proto view
+ fixture/DeleteRepositoryResponse.proto view
+ fixture/DescribeImageTags.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.ecr-public/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: api.ecr-public.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:+ ''
+ fixture/DescribeImageTagsResponse.proto view
+ fixture/DescribeImages.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.ecr-public/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: api.ecr-public.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:+ ''
+ fixture/DescribeImagesResponse.proto view
+ fixture/DescribeRegistries.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.ecr-public/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: api.ecr-public.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:+ ''
+ fixture/DescribeRegistriesResponse.proto view
+ fixture/DescribeRepositories.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.ecr-public/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: api.ecr-public.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:+ ''
+ fixture/DescribeRepositoriesResponse.proto view
+ fixture/GetAuthorizationToken.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.ecr-public/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: api.ecr-public.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:+ ''
+ fixture/GetAuthorizationTokenResponse.proto view
+ fixture/GetRegistryCatalogData.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.ecr-public/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: api.ecr-public.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:+ ''
+ fixture/GetRegistryCatalogDataResponse.proto view
+ fixture/GetRepositoryCatalogData.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.ecr-public/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: api.ecr-public.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:+ ''
+ fixture/GetRepositoryCatalogDataResponse.proto view
+ fixture/GetRepositoryPolicy.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.ecr-public/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: api.ecr-public.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:+ ''
+ fixture/GetRepositoryPolicyResponse.proto view
+ fixture/InitiateLayerUpload.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.ecr-public/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: api.ecr-public.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:+ ''
+ fixture/InitiateLayerUploadResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.ecr-public/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: api.ecr-public.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:+ ''
+ fixture/ListTagsForResourceResponse.proto view
+ fixture/PutImage.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.ecr-public/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: api.ecr-public.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:+ ''
+ fixture/PutImageResponse.proto view
+ fixture/PutRegistryCatalogData.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.ecr-public/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: api.ecr-public.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:+ ''
+ fixture/PutRegistryCatalogDataResponse.proto view
+ fixture/PutRepositoryCatalogData.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.ecr-public/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: api.ecr-public.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:+ ''
+ fixture/PutRepositoryCatalogDataResponse.proto view
+ fixture/SetRepositoryPolicy.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.ecr-public/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: api.ecr-public.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:+ ''
+ fixture/SetRepositoryPolicyResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.ecr-public/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: api.ecr-public.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:+ ''
+ fixture/TagResourceResponse.proto view
+ fixture/UntagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.ecr-public/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: api.ecr-public.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:+ ''
+ fixture/UntagResourceResponse.proto view
+ fixture/UploadLayerPart.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.ecr-public/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: api.ecr-public.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:+ ''
+ fixture/UploadLayerPartResponse.proto view
+ gen/Amazonka/ECRPublic.hs view
@@ -0,0 +1,377 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Amazonka.ECRPublic+-- 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 @2020-10-30@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- Amazon Elastic Container Registry Public+--+-- Amazon Elastic Container Registry (Amazon ECR) is a managed container+-- image registry service. Amazon ECR provides both public and private+-- registries to host your container images. You can use the familiar+-- Docker CLI, or their preferred client, to push, pull, and manage images.+-- Amazon ECR provides a secure, scalable, and reliable registry for your+-- Docker or Open Container Initiative (OCI) images. Amazon ECR supports+-- public repositories with this API. For information about the Amazon ECR+-- API for private repositories, see+-- <https://docs.aws.amazon.com/AmazonECR/latest/APIReference/Welcome.html Amazon Elastic Container Registry API Reference>.+module Amazonka.ECRPublic+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ -- $errors++ -- ** EmptyUploadException+ _EmptyUploadException,++ -- ** ImageAlreadyExistsException+ _ImageAlreadyExistsException,++ -- ** ImageDigestDoesNotMatchException+ _ImageDigestDoesNotMatchException,++ -- ** ImageNotFoundException+ _ImageNotFoundException,++ -- ** ImageTagAlreadyExistsException+ _ImageTagAlreadyExistsException,++ -- ** InvalidLayerException+ _InvalidLayerException,++ -- ** InvalidLayerPartException+ _InvalidLayerPartException,++ -- ** InvalidParameterException+ _InvalidParameterException,++ -- ** InvalidTagParameterException+ _InvalidTagParameterException,++ -- ** LayerAlreadyExistsException+ _LayerAlreadyExistsException,++ -- ** LayerPartTooSmallException+ _LayerPartTooSmallException,++ -- ** LayersNotFoundException+ _LayersNotFoundException,++ -- ** LimitExceededException+ _LimitExceededException,++ -- ** ReferencedImagesNotFoundException+ _ReferencedImagesNotFoundException,++ -- ** RegistryNotFoundException+ _RegistryNotFoundException,++ -- ** RepositoryAlreadyExistsException+ _RepositoryAlreadyExistsException,++ -- ** RepositoryNotEmptyException+ _RepositoryNotEmptyException,++ -- ** RepositoryNotFoundException+ _RepositoryNotFoundException,++ -- ** RepositoryPolicyNotFoundException+ _RepositoryPolicyNotFoundException,++ -- ** ServerException+ _ServerException,++ -- ** TooManyTagsException+ _TooManyTagsException,++ -- ** UnsupportedCommandException+ _UnsupportedCommandException,++ -- ** UploadNotFoundException+ _UploadNotFoundException,++ -- * Waiters+ -- $waiters++ -- * Operations+ -- $operations++ -- ** BatchCheckLayerAvailability+ BatchCheckLayerAvailability (BatchCheckLayerAvailability'),+ newBatchCheckLayerAvailability,+ BatchCheckLayerAvailabilityResponse (BatchCheckLayerAvailabilityResponse'),+ newBatchCheckLayerAvailabilityResponse,++ -- ** BatchDeleteImage+ BatchDeleteImage (BatchDeleteImage'),+ newBatchDeleteImage,+ BatchDeleteImageResponse (BatchDeleteImageResponse'),+ newBatchDeleteImageResponse,++ -- ** CompleteLayerUpload+ CompleteLayerUpload (CompleteLayerUpload'),+ newCompleteLayerUpload,+ CompleteLayerUploadResponse (CompleteLayerUploadResponse'),+ newCompleteLayerUploadResponse,++ -- ** CreateRepository+ CreateRepository (CreateRepository'),+ newCreateRepository,+ CreateRepositoryResponse (CreateRepositoryResponse'),+ newCreateRepositoryResponse,++ -- ** DeleteRepository+ DeleteRepository (DeleteRepository'),+ newDeleteRepository,+ DeleteRepositoryResponse (DeleteRepositoryResponse'),+ newDeleteRepositoryResponse,++ -- ** DeleteRepositoryPolicy+ DeleteRepositoryPolicy (DeleteRepositoryPolicy'),+ newDeleteRepositoryPolicy,+ DeleteRepositoryPolicyResponse (DeleteRepositoryPolicyResponse'),+ newDeleteRepositoryPolicyResponse,++ -- ** DescribeImageTags (Paginated)+ DescribeImageTags (DescribeImageTags'),+ newDescribeImageTags,+ DescribeImageTagsResponse (DescribeImageTagsResponse'),+ newDescribeImageTagsResponse,++ -- ** DescribeImages (Paginated)+ DescribeImages (DescribeImages'),+ newDescribeImages,+ DescribeImagesResponse (DescribeImagesResponse'),+ newDescribeImagesResponse,++ -- ** DescribeRegistries (Paginated)+ DescribeRegistries (DescribeRegistries'),+ newDescribeRegistries,+ DescribeRegistriesResponse (DescribeRegistriesResponse'),+ newDescribeRegistriesResponse,++ -- ** DescribeRepositories (Paginated)+ DescribeRepositories (DescribeRepositories'),+ newDescribeRepositories,+ DescribeRepositoriesResponse (DescribeRepositoriesResponse'),+ newDescribeRepositoriesResponse,++ -- ** GetAuthorizationToken+ GetAuthorizationToken (GetAuthorizationToken'),+ newGetAuthorizationToken,+ GetAuthorizationTokenResponse (GetAuthorizationTokenResponse'),+ newGetAuthorizationTokenResponse,++ -- ** GetRegistryCatalogData+ GetRegistryCatalogData (GetRegistryCatalogData'),+ newGetRegistryCatalogData,+ GetRegistryCatalogDataResponse (GetRegistryCatalogDataResponse'),+ newGetRegistryCatalogDataResponse,++ -- ** GetRepositoryCatalogData+ GetRepositoryCatalogData (GetRepositoryCatalogData'),+ newGetRepositoryCatalogData,+ GetRepositoryCatalogDataResponse (GetRepositoryCatalogDataResponse'),+ newGetRepositoryCatalogDataResponse,++ -- ** GetRepositoryPolicy+ GetRepositoryPolicy (GetRepositoryPolicy'),+ newGetRepositoryPolicy,+ GetRepositoryPolicyResponse (GetRepositoryPolicyResponse'),+ newGetRepositoryPolicyResponse,++ -- ** InitiateLayerUpload+ InitiateLayerUpload (InitiateLayerUpload'),+ newInitiateLayerUpload,+ InitiateLayerUploadResponse (InitiateLayerUploadResponse'),+ newInitiateLayerUploadResponse,++ -- ** ListTagsForResource+ ListTagsForResource (ListTagsForResource'),+ newListTagsForResource,+ ListTagsForResourceResponse (ListTagsForResourceResponse'),+ newListTagsForResourceResponse,++ -- ** PutImage+ PutImage (PutImage'),+ newPutImage,+ PutImageResponse (PutImageResponse'),+ newPutImageResponse,++ -- ** PutRegistryCatalogData+ PutRegistryCatalogData (PutRegistryCatalogData'),+ newPutRegistryCatalogData,+ PutRegistryCatalogDataResponse (PutRegistryCatalogDataResponse'),+ newPutRegistryCatalogDataResponse,++ -- ** PutRepositoryCatalogData+ PutRepositoryCatalogData (PutRepositoryCatalogData'),+ newPutRepositoryCatalogData,+ PutRepositoryCatalogDataResponse (PutRepositoryCatalogDataResponse'),+ newPutRepositoryCatalogDataResponse,++ -- ** SetRepositoryPolicy+ SetRepositoryPolicy (SetRepositoryPolicy'),+ newSetRepositoryPolicy,+ SetRepositoryPolicyResponse (SetRepositoryPolicyResponse'),+ newSetRepositoryPolicyResponse,++ -- ** TagResource+ TagResource (TagResource'),+ newTagResource,+ TagResourceResponse (TagResourceResponse'),+ newTagResourceResponse,++ -- ** UntagResource+ UntagResource (UntagResource'),+ newUntagResource,+ UntagResourceResponse (UntagResourceResponse'),+ newUntagResourceResponse,++ -- ** UploadLayerPart+ UploadLayerPart (UploadLayerPart'),+ newUploadLayerPart,+ UploadLayerPartResponse (UploadLayerPartResponse'),+ newUploadLayerPartResponse,++ -- * Types++ -- ** ImageFailureCode+ ImageFailureCode (..),++ -- ** LayerAvailability+ LayerAvailability (..),++ -- ** LayerFailureCode+ LayerFailureCode (..),++ -- ** RegistryAliasStatus+ RegistryAliasStatus (..),++ -- ** AuthorizationData+ AuthorizationData (AuthorizationData'),+ newAuthorizationData,++ -- ** Image+ Image (Image'),+ newImage,++ -- ** ImageDetail+ ImageDetail (ImageDetail'),+ newImageDetail,++ -- ** ImageFailure+ ImageFailure (ImageFailure'),+ newImageFailure,++ -- ** ImageIdentifier+ ImageIdentifier (ImageIdentifier'),+ newImageIdentifier,++ -- ** ImageTagDetail+ ImageTagDetail (ImageTagDetail'),+ newImageTagDetail,++ -- ** Layer+ Layer (Layer'),+ newLayer,++ -- ** LayerFailure+ LayerFailure (LayerFailure'),+ newLayerFailure,++ -- ** ReferencedImageDetail+ ReferencedImageDetail (ReferencedImageDetail'),+ newReferencedImageDetail,++ -- ** Registry+ Registry (Registry'),+ newRegistry,++ -- ** RegistryAlias+ RegistryAlias (RegistryAlias'),+ newRegistryAlias,++ -- ** RegistryCatalogData+ RegistryCatalogData (RegistryCatalogData'),+ newRegistryCatalogData,++ -- ** Repository+ Repository (Repository'),+ newRepository,++ -- ** RepositoryCatalogData+ RepositoryCatalogData (RepositoryCatalogData'),+ newRepositoryCatalogData,++ -- ** RepositoryCatalogDataInput+ RepositoryCatalogDataInput (RepositoryCatalogDataInput'),+ newRepositoryCatalogDataInput,++ -- ** Tag+ Tag (Tag'),+ newTag,+ )+where++import Amazonka.ECRPublic.BatchCheckLayerAvailability+import Amazonka.ECRPublic.BatchDeleteImage+import Amazonka.ECRPublic.CompleteLayerUpload+import Amazonka.ECRPublic.CreateRepository+import Amazonka.ECRPublic.DeleteRepository+import Amazonka.ECRPublic.DeleteRepositoryPolicy+import Amazonka.ECRPublic.DescribeImageTags+import Amazonka.ECRPublic.DescribeImages+import Amazonka.ECRPublic.DescribeRegistries+import Amazonka.ECRPublic.DescribeRepositories+import Amazonka.ECRPublic.GetAuthorizationToken+import Amazonka.ECRPublic.GetRegistryCatalogData+import Amazonka.ECRPublic.GetRepositoryCatalogData+import Amazonka.ECRPublic.GetRepositoryPolicy+import Amazonka.ECRPublic.InitiateLayerUpload+import Amazonka.ECRPublic.Lens+import Amazonka.ECRPublic.ListTagsForResource+import Amazonka.ECRPublic.PutImage+import Amazonka.ECRPublic.PutRegistryCatalogData+import Amazonka.ECRPublic.PutRepositoryCatalogData+import Amazonka.ECRPublic.SetRepositoryPolicy+import Amazonka.ECRPublic.TagResource+import Amazonka.ECRPublic.Types+import Amazonka.ECRPublic.UntagResource+import Amazonka.ECRPublic.UploadLayerPart+import Amazonka.ECRPublic.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 'ECRPublic'.++-- $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.
+ gen/Amazonka/ECRPublic/BatchCheckLayerAvailability.hs view
@@ -0,0 +1,240 @@+{-# 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.ECRPublic.BatchCheckLayerAvailability+-- 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 the availability of one or more image layers within a repository+-- in a public registry. When an image is pushed to a repository, each+-- image layer is checked to verify if it has been uploaded before. If it+-- has been uploaded, then the image layer is skipped.+--+-- This operation is used by the Amazon ECR proxy and is not generally used+-- by customers for pulling and pushing images. In most cases, you should+-- use the @docker@ CLI to pull, tag, and push images.+module Amazonka.ECRPublic.BatchCheckLayerAvailability+ ( -- * Creating a Request+ BatchCheckLayerAvailability (..),+ newBatchCheckLayerAvailability,++ -- * Request Lenses+ batchCheckLayerAvailability_registryId,+ batchCheckLayerAvailability_repositoryName,+ batchCheckLayerAvailability_layerDigests,++ -- * Destructuring the Response+ BatchCheckLayerAvailabilityResponse (..),+ newBatchCheckLayerAvailabilityResponse,++ -- * Response Lenses+ batchCheckLayerAvailabilityResponse_failures,+ batchCheckLayerAvailabilityResponse_layers,+ batchCheckLayerAvailabilityResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ECRPublic.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newBatchCheckLayerAvailability' smart constructor.+data BatchCheckLayerAvailability = BatchCheckLayerAvailability'+ { -- | The AWS account ID associated with the public registry that contains the+ -- image layers to check. If you do not specify a registry, the default+ -- public registry is assumed.+ registryId :: Prelude.Maybe Prelude.Text,+ -- | The name of the repository that is associated with the image layers to+ -- check.+ repositoryName :: Prelude.Text,+ -- | The digests of the image layers to check.+ layerDigests :: Prelude.NonEmpty Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchCheckLayerAvailability' 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:+--+-- 'registryId', 'batchCheckLayerAvailability_registryId' - The AWS account ID associated with the public registry that contains the+-- image layers to check. If you do not specify a registry, the default+-- public registry is assumed.+--+-- 'repositoryName', 'batchCheckLayerAvailability_repositoryName' - The name of the repository that is associated with the image layers to+-- check.+--+-- 'layerDigests', 'batchCheckLayerAvailability_layerDigests' - The digests of the image layers to check.+newBatchCheckLayerAvailability ::+ -- | 'repositoryName'+ Prelude.Text ->+ -- | 'layerDigests'+ Prelude.NonEmpty Prelude.Text ->+ BatchCheckLayerAvailability+newBatchCheckLayerAvailability+ pRepositoryName_+ pLayerDigests_ =+ BatchCheckLayerAvailability'+ { registryId =+ Prelude.Nothing,+ repositoryName = pRepositoryName_,+ layerDigests =+ Lens.coerced Lens.# pLayerDigests_+ }++-- | The AWS account ID associated with the public registry that contains the+-- image layers to check. If you do not specify a registry, the default+-- public registry is assumed.+batchCheckLayerAvailability_registryId :: Lens.Lens' BatchCheckLayerAvailability (Prelude.Maybe Prelude.Text)+batchCheckLayerAvailability_registryId = Lens.lens (\BatchCheckLayerAvailability' {registryId} -> registryId) (\s@BatchCheckLayerAvailability' {} a -> s {registryId = a} :: BatchCheckLayerAvailability)++-- | The name of the repository that is associated with the image layers to+-- check.+batchCheckLayerAvailability_repositoryName :: Lens.Lens' BatchCheckLayerAvailability Prelude.Text+batchCheckLayerAvailability_repositoryName = Lens.lens (\BatchCheckLayerAvailability' {repositoryName} -> repositoryName) (\s@BatchCheckLayerAvailability' {} a -> s {repositoryName = a} :: BatchCheckLayerAvailability)++-- | The digests of the image layers to check.+batchCheckLayerAvailability_layerDigests :: Lens.Lens' BatchCheckLayerAvailability (Prelude.NonEmpty Prelude.Text)+batchCheckLayerAvailability_layerDigests = Lens.lens (\BatchCheckLayerAvailability' {layerDigests} -> layerDigests) (\s@BatchCheckLayerAvailability' {} a -> s {layerDigests = a} :: BatchCheckLayerAvailability) Prelude.. Lens.coerced++instance Core.AWSRequest BatchCheckLayerAvailability where+ type+ AWSResponse BatchCheckLayerAvailability =+ BatchCheckLayerAvailabilityResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ BatchCheckLayerAvailabilityResponse'+ Prelude.<$> (x Data..?> "failures" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "layers" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable BatchCheckLayerAvailability where+ hashWithSalt _salt BatchCheckLayerAvailability' {..} =+ _salt+ `Prelude.hashWithSalt` registryId+ `Prelude.hashWithSalt` repositoryName+ `Prelude.hashWithSalt` layerDigests++instance Prelude.NFData BatchCheckLayerAvailability where+ rnf BatchCheckLayerAvailability' {..} =+ Prelude.rnf registryId+ `Prelude.seq` Prelude.rnf repositoryName+ `Prelude.seq` Prelude.rnf layerDigests++instance Data.ToHeaders BatchCheckLayerAvailability where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "SpencerFrontendService.BatchCheckLayerAvailability" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON BatchCheckLayerAvailability where+ toJSON BatchCheckLayerAvailability' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("registryId" Data..=) Prelude.<$> registryId,+ Prelude.Just+ ("repositoryName" Data..= repositoryName),+ Prelude.Just ("layerDigests" Data..= layerDigests)+ ]+ )++instance Data.ToPath BatchCheckLayerAvailability where+ toPath = Prelude.const "/"++instance Data.ToQuery BatchCheckLayerAvailability where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newBatchCheckLayerAvailabilityResponse' smart constructor.+data BatchCheckLayerAvailabilityResponse = BatchCheckLayerAvailabilityResponse'+ { -- | Any failures associated with the call.+ failures :: Prelude.Maybe [LayerFailure],+ -- | A list of image layer objects corresponding to the image layer+ -- references in the request.+ layers :: Prelude.Maybe [Layer],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchCheckLayerAvailabilityResponse' 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:+--+-- 'failures', 'batchCheckLayerAvailabilityResponse_failures' - Any failures associated with the call.+--+-- 'layers', 'batchCheckLayerAvailabilityResponse_layers' - A list of image layer objects corresponding to the image layer+-- references in the request.+--+-- 'httpStatus', 'batchCheckLayerAvailabilityResponse_httpStatus' - The response's http status code.+newBatchCheckLayerAvailabilityResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ BatchCheckLayerAvailabilityResponse+newBatchCheckLayerAvailabilityResponse pHttpStatus_ =+ BatchCheckLayerAvailabilityResponse'+ { failures =+ Prelude.Nothing,+ layers = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Any failures associated with the call.+batchCheckLayerAvailabilityResponse_failures :: Lens.Lens' BatchCheckLayerAvailabilityResponse (Prelude.Maybe [LayerFailure])+batchCheckLayerAvailabilityResponse_failures = Lens.lens (\BatchCheckLayerAvailabilityResponse' {failures} -> failures) (\s@BatchCheckLayerAvailabilityResponse' {} a -> s {failures = a} :: BatchCheckLayerAvailabilityResponse) Prelude.. Lens.mapping Lens.coerced++-- | A list of image layer objects corresponding to the image layer+-- references in the request.+batchCheckLayerAvailabilityResponse_layers :: Lens.Lens' BatchCheckLayerAvailabilityResponse (Prelude.Maybe [Layer])+batchCheckLayerAvailabilityResponse_layers = Lens.lens (\BatchCheckLayerAvailabilityResponse' {layers} -> layers) (\s@BatchCheckLayerAvailabilityResponse' {} a -> s {layers = a} :: BatchCheckLayerAvailabilityResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+batchCheckLayerAvailabilityResponse_httpStatus :: Lens.Lens' BatchCheckLayerAvailabilityResponse Prelude.Int+batchCheckLayerAvailabilityResponse_httpStatus = Lens.lens (\BatchCheckLayerAvailabilityResponse' {httpStatus} -> httpStatus) (\s@BatchCheckLayerAvailabilityResponse' {} a -> s {httpStatus = a} :: BatchCheckLayerAvailabilityResponse)++instance+ Prelude.NFData+ BatchCheckLayerAvailabilityResponse+ where+ rnf BatchCheckLayerAvailabilityResponse' {..} =+ Prelude.rnf failures+ `Prelude.seq` Prelude.rnf layers+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ECRPublic/BatchDeleteImage.hs view
@@ -0,0 +1,235 @@+{-# 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.ECRPublic.BatchDeleteImage+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a list of specified images within a repository in a public+-- registry. Images are specified with either an @imageTag@ or+-- @imageDigest@.+--+-- You can remove a tag from an image by specifying the image\'s tag in+-- your request. When you remove the last tag from an image, the image is+-- deleted from your repository.+--+-- You can completely delete an image (and all of its tags) by specifying+-- the image\'s digest in your request.+module Amazonka.ECRPublic.BatchDeleteImage+ ( -- * Creating a Request+ BatchDeleteImage (..),+ newBatchDeleteImage,++ -- * Request Lenses+ batchDeleteImage_registryId,+ batchDeleteImage_repositoryName,+ batchDeleteImage_imageIds,++ -- * Destructuring the Response+ BatchDeleteImageResponse (..),+ newBatchDeleteImageResponse,++ -- * Response Lenses+ batchDeleteImageResponse_failures,+ batchDeleteImageResponse_imageIds,+ batchDeleteImageResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ECRPublic.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newBatchDeleteImage' smart constructor.+data BatchDeleteImage = BatchDeleteImage'+ { -- | The AWS account ID associated with the registry that contains the image+ -- to delete. If you do not specify a registry, the default public registry+ -- is assumed.+ registryId :: Prelude.Maybe Prelude.Text,+ -- | The repository in a public registry that contains the image to delete.+ repositoryName :: Prelude.Text,+ -- | A list of image ID references that correspond to images to delete. The+ -- format of the @imageIds@ reference is @imageTag=tag@ or+ -- @imageDigest=digest@.+ imageIds :: Prelude.NonEmpty ImageIdentifier+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchDeleteImage' 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:+--+-- 'registryId', 'batchDeleteImage_registryId' - The AWS account ID associated with the registry that contains the image+-- to delete. If you do not specify a registry, the default public registry+-- is assumed.+--+-- 'repositoryName', 'batchDeleteImage_repositoryName' - The repository in a public registry that contains the image to delete.+--+-- 'imageIds', 'batchDeleteImage_imageIds' - A list of image ID references that correspond to images to delete. The+-- format of the @imageIds@ reference is @imageTag=tag@ or+-- @imageDigest=digest@.+newBatchDeleteImage ::+ -- | 'repositoryName'+ Prelude.Text ->+ -- | 'imageIds'+ Prelude.NonEmpty ImageIdentifier ->+ BatchDeleteImage+newBatchDeleteImage pRepositoryName_ pImageIds_ =+ BatchDeleteImage'+ { registryId = Prelude.Nothing,+ repositoryName = pRepositoryName_,+ imageIds = Lens.coerced Lens.# pImageIds_+ }++-- | The AWS account ID associated with the registry that contains the image+-- to delete. If you do not specify a registry, the default public registry+-- is assumed.+batchDeleteImage_registryId :: Lens.Lens' BatchDeleteImage (Prelude.Maybe Prelude.Text)+batchDeleteImage_registryId = Lens.lens (\BatchDeleteImage' {registryId} -> registryId) (\s@BatchDeleteImage' {} a -> s {registryId = a} :: BatchDeleteImage)++-- | The repository in a public registry that contains the image to delete.+batchDeleteImage_repositoryName :: Lens.Lens' BatchDeleteImage Prelude.Text+batchDeleteImage_repositoryName = Lens.lens (\BatchDeleteImage' {repositoryName} -> repositoryName) (\s@BatchDeleteImage' {} a -> s {repositoryName = a} :: BatchDeleteImage)++-- | A list of image ID references that correspond to images to delete. The+-- format of the @imageIds@ reference is @imageTag=tag@ or+-- @imageDigest=digest@.+batchDeleteImage_imageIds :: Lens.Lens' BatchDeleteImage (Prelude.NonEmpty ImageIdentifier)+batchDeleteImage_imageIds = Lens.lens (\BatchDeleteImage' {imageIds} -> imageIds) (\s@BatchDeleteImage' {} a -> s {imageIds = a} :: BatchDeleteImage) Prelude.. Lens.coerced++instance Core.AWSRequest BatchDeleteImage where+ type+ AWSResponse BatchDeleteImage =+ BatchDeleteImageResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ BatchDeleteImageResponse'+ Prelude.<$> (x Data..?> "failures" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "imageIds")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable BatchDeleteImage where+ hashWithSalt _salt BatchDeleteImage' {..} =+ _salt+ `Prelude.hashWithSalt` registryId+ `Prelude.hashWithSalt` repositoryName+ `Prelude.hashWithSalt` imageIds++instance Prelude.NFData BatchDeleteImage where+ rnf BatchDeleteImage' {..} =+ Prelude.rnf registryId+ `Prelude.seq` Prelude.rnf repositoryName+ `Prelude.seq` Prelude.rnf imageIds++instance Data.ToHeaders BatchDeleteImage where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "SpencerFrontendService.BatchDeleteImage" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON BatchDeleteImage where+ toJSON BatchDeleteImage' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("registryId" Data..=) Prelude.<$> registryId,+ Prelude.Just+ ("repositoryName" Data..= repositoryName),+ Prelude.Just ("imageIds" Data..= imageIds)+ ]+ )++instance Data.ToPath BatchDeleteImage where+ toPath = Prelude.const "/"++instance Data.ToQuery BatchDeleteImage where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newBatchDeleteImageResponse' smart constructor.+data BatchDeleteImageResponse = BatchDeleteImageResponse'+ { -- | Any failures associated with the call.+ failures :: Prelude.Maybe [ImageFailure],+ -- | The image IDs of the deleted images.+ imageIds :: Prelude.Maybe (Prelude.NonEmpty ImageIdentifier),+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchDeleteImageResponse' 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:+--+-- 'failures', 'batchDeleteImageResponse_failures' - Any failures associated with the call.+--+-- 'imageIds', 'batchDeleteImageResponse_imageIds' - The image IDs of the deleted images.+--+-- 'httpStatus', 'batchDeleteImageResponse_httpStatus' - The response's http status code.+newBatchDeleteImageResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ BatchDeleteImageResponse+newBatchDeleteImageResponse pHttpStatus_ =+ BatchDeleteImageResponse'+ { failures =+ Prelude.Nothing,+ imageIds = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Any failures associated with the call.+batchDeleteImageResponse_failures :: Lens.Lens' BatchDeleteImageResponse (Prelude.Maybe [ImageFailure])+batchDeleteImageResponse_failures = Lens.lens (\BatchDeleteImageResponse' {failures} -> failures) (\s@BatchDeleteImageResponse' {} a -> s {failures = a} :: BatchDeleteImageResponse) Prelude.. Lens.mapping Lens.coerced++-- | The image IDs of the deleted images.+batchDeleteImageResponse_imageIds :: Lens.Lens' BatchDeleteImageResponse (Prelude.Maybe (Prelude.NonEmpty ImageIdentifier))+batchDeleteImageResponse_imageIds = Lens.lens (\BatchDeleteImageResponse' {imageIds} -> imageIds) (\s@BatchDeleteImageResponse' {} a -> s {imageIds = a} :: BatchDeleteImageResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+batchDeleteImageResponse_httpStatus :: Lens.Lens' BatchDeleteImageResponse Prelude.Int+batchDeleteImageResponse_httpStatus = Lens.lens (\BatchDeleteImageResponse' {httpStatus} -> httpStatus) (\s@BatchDeleteImageResponse' {} a -> s {httpStatus = a} :: BatchDeleteImageResponse)++instance Prelude.NFData BatchDeleteImageResponse where+ rnf BatchDeleteImageResponse' {..} =+ Prelude.rnf failures+ `Prelude.seq` Prelude.rnf imageIds+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ECRPublic/CompleteLayerUpload.hs view
@@ -0,0 +1,278 @@+{-# 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.ECRPublic.CompleteLayerUpload+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Informs Amazon ECR that the image layer upload has completed for a+-- specified public registry, repository name, and upload ID. You can+-- optionally provide a @sha256@ digest of the image layer for data+-- validation purposes.+--+-- When an image is pushed, the CompleteLayerUpload API is called once per+-- each new image layer to verify that the upload has completed.+--+-- This operation is used by the Amazon ECR proxy and is not generally used+-- by customers for pulling and pushing images. In most cases, you should+-- use the @docker@ CLI to pull, tag, and push images.+module Amazonka.ECRPublic.CompleteLayerUpload+ ( -- * Creating a Request+ CompleteLayerUpload (..),+ newCompleteLayerUpload,++ -- * Request Lenses+ completeLayerUpload_registryId,+ completeLayerUpload_repositoryName,+ completeLayerUpload_uploadId,+ completeLayerUpload_layerDigests,++ -- * Destructuring the Response+ CompleteLayerUploadResponse (..),+ newCompleteLayerUploadResponse,++ -- * Response Lenses+ completeLayerUploadResponse_layerDigest,+ completeLayerUploadResponse_registryId,+ completeLayerUploadResponse_repositoryName,+ completeLayerUploadResponse_uploadId,+ completeLayerUploadResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ECRPublic.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCompleteLayerUpload' smart constructor.+data CompleteLayerUpload = CompleteLayerUpload'+ { -- | The AWS account ID associated with the registry to which to upload+ -- layers. If you do not specify a registry, the default public registry is+ -- assumed.+ registryId :: Prelude.Maybe Prelude.Text,+ -- | The name of the repository in a public registry to associate with the+ -- image layer.+ repositoryName :: Prelude.Text,+ -- | The upload ID from a previous InitiateLayerUpload operation to associate+ -- with the image layer.+ uploadId :: Prelude.Text,+ -- | The @sha256@ digest of the image layer.+ layerDigests :: Prelude.NonEmpty Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CompleteLayerUpload' 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:+--+-- 'registryId', 'completeLayerUpload_registryId' - The AWS account ID associated with the registry to which to upload+-- layers. If you do not specify a registry, the default public registry is+-- assumed.+--+-- 'repositoryName', 'completeLayerUpload_repositoryName' - The name of the repository in a public registry to associate with the+-- image layer.+--+-- 'uploadId', 'completeLayerUpload_uploadId' - The upload ID from a previous InitiateLayerUpload operation to associate+-- with the image layer.+--+-- 'layerDigests', 'completeLayerUpload_layerDigests' - The @sha256@ digest of the image layer.+newCompleteLayerUpload ::+ -- | 'repositoryName'+ Prelude.Text ->+ -- | 'uploadId'+ Prelude.Text ->+ -- | 'layerDigests'+ Prelude.NonEmpty Prelude.Text ->+ CompleteLayerUpload+newCompleteLayerUpload+ pRepositoryName_+ pUploadId_+ pLayerDigests_ =+ CompleteLayerUpload'+ { registryId = Prelude.Nothing,+ repositoryName = pRepositoryName_,+ uploadId = pUploadId_,+ layerDigests = Lens.coerced Lens.# pLayerDigests_+ }++-- | The AWS account ID associated with the registry to which to upload+-- layers. If you do not specify a registry, the default public registry is+-- assumed.+completeLayerUpload_registryId :: Lens.Lens' CompleteLayerUpload (Prelude.Maybe Prelude.Text)+completeLayerUpload_registryId = Lens.lens (\CompleteLayerUpload' {registryId} -> registryId) (\s@CompleteLayerUpload' {} a -> s {registryId = a} :: CompleteLayerUpload)++-- | The name of the repository in a public registry to associate with the+-- image layer.+completeLayerUpload_repositoryName :: Lens.Lens' CompleteLayerUpload Prelude.Text+completeLayerUpload_repositoryName = Lens.lens (\CompleteLayerUpload' {repositoryName} -> repositoryName) (\s@CompleteLayerUpload' {} a -> s {repositoryName = a} :: CompleteLayerUpload)++-- | The upload ID from a previous InitiateLayerUpload operation to associate+-- with the image layer.+completeLayerUpload_uploadId :: Lens.Lens' CompleteLayerUpload Prelude.Text+completeLayerUpload_uploadId = Lens.lens (\CompleteLayerUpload' {uploadId} -> uploadId) (\s@CompleteLayerUpload' {} a -> s {uploadId = a} :: CompleteLayerUpload)++-- | The @sha256@ digest of the image layer.+completeLayerUpload_layerDigests :: Lens.Lens' CompleteLayerUpload (Prelude.NonEmpty Prelude.Text)+completeLayerUpload_layerDigests = Lens.lens (\CompleteLayerUpload' {layerDigests} -> layerDigests) (\s@CompleteLayerUpload' {} a -> s {layerDigests = a} :: CompleteLayerUpload) Prelude.. Lens.coerced++instance Core.AWSRequest CompleteLayerUpload where+ type+ AWSResponse CompleteLayerUpload =+ CompleteLayerUploadResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CompleteLayerUploadResponse'+ Prelude.<$> (x Data..?> "layerDigest")+ Prelude.<*> (x Data..?> "registryId")+ Prelude.<*> (x Data..?> "repositoryName")+ Prelude.<*> (x Data..?> "uploadId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CompleteLayerUpload where+ hashWithSalt _salt CompleteLayerUpload' {..} =+ _salt+ `Prelude.hashWithSalt` registryId+ `Prelude.hashWithSalt` repositoryName+ `Prelude.hashWithSalt` uploadId+ `Prelude.hashWithSalt` layerDigests++instance Prelude.NFData CompleteLayerUpload where+ rnf CompleteLayerUpload' {..} =+ Prelude.rnf registryId+ `Prelude.seq` Prelude.rnf repositoryName+ `Prelude.seq` Prelude.rnf uploadId+ `Prelude.seq` Prelude.rnf layerDigests++instance Data.ToHeaders CompleteLayerUpload where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "SpencerFrontendService.CompleteLayerUpload" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CompleteLayerUpload where+ toJSON CompleteLayerUpload' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("registryId" Data..=) Prelude.<$> registryId,+ Prelude.Just+ ("repositoryName" Data..= repositoryName),+ Prelude.Just ("uploadId" Data..= uploadId),+ Prelude.Just ("layerDigests" Data..= layerDigests)+ ]+ )++instance Data.ToPath CompleteLayerUpload where+ toPath = Prelude.const "/"++instance Data.ToQuery CompleteLayerUpload where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCompleteLayerUploadResponse' smart constructor.+data CompleteLayerUploadResponse = CompleteLayerUploadResponse'+ { -- | The @sha256@ digest of the image layer.+ layerDigest :: Prelude.Maybe Prelude.Text,+ -- | The public registry ID associated with the request.+ registryId :: Prelude.Maybe Prelude.Text,+ -- | The repository name associated with the request.+ repositoryName :: Prelude.Maybe Prelude.Text,+ -- | The upload ID associated with the layer.+ uploadId :: 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 'CompleteLayerUploadResponse' 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:+--+-- 'layerDigest', 'completeLayerUploadResponse_layerDigest' - The @sha256@ digest of the image layer.+--+-- 'registryId', 'completeLayerUploadResponse_registryId' - The public registry ID associated with the request.+--+-- 'repositoryName', 'completeLayerUploadResponse_repositoryName' - The repository name associated with the request.+--+-- 'uploadId', 'completeLayerUploadResponse_uploadId' - The upload ID associated with the layer.+--+-- 'httpStatus', 'completeLayerUploadResponse_httpStatus' - The response's http status code.+newCompleteLayerUploadResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CompleteLayerUploadResponse+newCompleteLayerUploadResponse pHttpStatus_ =+ CompleteLayerUploadResponse'+ { layerDigest =+ Prelude.Nothing,+ registryId = Prelude.Nothing,+ repositoryName = Prelude.Nothing,+ uploadId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The @sha256@ digest of the image layer.+completeLayerUploadResponse_layerDigest :: Lens.Lens' CompleteLayerUploadResponse (Prelude.Maybe Prelude.Text)+completeLayerUploadResponse_layerDigest = Lens.lens (\CompleteLayerUploadResponse' {layerDigest} -> layerDigest) (\s@CompleteLayerUploadResponse' {} a -> s {layerDigest = a} :: CompleteLayerUploadResponse)++-- | The public registry ID associated with the request.+completeLayerUploadResponse_registryId :: Lens.Lens' CompleteLayerUploadResponse (Prelude.Maybe Prelude.Text)+completeLayerUploadResponse_registryId = Lens.lens (\CompleteLayerUploadResponse' {registryId} -> registryId) (\s@CompleteLayerUploadResponse' {} a -> s {registryId = a} :: CompleteLayerUploadResponse)++-- | The repository name associated with the request.+completeLayerUploadResponse_repositoryName :: Lens.Lens' CompleteLayerUploadResponse (Prelude.Maybe Prelude.Text)+completeLayerUploadResponse_repositoryName = Lens.lens (\CompleteLayerUploadResponse' {repositoryName} -> repositoryName) (\s@CompleteLayerUploadResponse' {} a -> s {repositoryName = a} :: CompleteLayerUploadResponse)++-- | The upload ID associated with the layer.+completeLayerUploadResponse_uploadId :: Lens.Lens' CompleteLayerUploadResponse (Prelude.Maybe Prelude.Text)+completeLayerUploadResponse_uploadId = Lens.lens (\CompleteLayerUploadResponse' {uploadId} -> uploadId) (\s@CompleteLayerUploadResponse' {} a -> s {uploadId = a} :: CompleteLayerUploadResponse)++-- | The response's http status code.+completeLayerUploadResponse_httpStatus :: Lens.Lens' CompleteLayerUploadResponse Prelude.Int+completeLayerUploadResponse_httpStatus = Lens.lens (\CompleteLayerUploadResponse' {httpStatus} -> httpStatus) (\s@CompleteLayerUploadResponse' {} a -> s {httpStatus = a} :: CompleteLayerUploadResponse)++instance Prelude.NFData CompleteLayerUploadResponse where+ rnf CompleteLayerUploadResponse' {..} =+ Prelude.rnf layerDigest+ `Prelude.seq` Prelude.rnf registryId+ `Prelude.seq` Prelude.rnf repositoryName+ `Prelude.seq` Prelude.rnf uploadId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ECRPublic/CreateRepository.hs view
@@ -0,0 +1,237 @@+{-# 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.ECRPublic.CreateRepository+-- 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 repository in a public registry. For more information, see+-- <https://docs.aws.amazon.com/AmazonECR/latest/userguide/Repositories.html Amazon ECR repositories>+-- in the /Amazon Elastic Container Registry User Guide/.+module Amazonka.ECRPublic.CreateRepository+ ( -- * Creating a Request+ CreateRepository (..),+ newCreateRepository,++ -- * Request Lenses+ createRepository_catalogData,+ createRepository_tags,+ createRepository_repositoryName,++ -- * Destructuring the Response+ CreateRepositoryResponse (..),+ newCreateRepositoryResponse,++ -- * Response Lenses+ createRepositoryResponse_catalogData,+ createRepositoryResponse_repository,+ createRepositoryResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ECRPublic.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateRepository' smart constructor.+data CreateRepository = CreateRepository'+ { -- | The details about the repository that are publicly visible in the Amazon+ -- ECR Public Gallery.+ catalogData :: Prelude.Maybe RepositoryCatalogDataInput,+ -- | The metadata that you apply to the repository to help you categorize and+ -- organize them. Each tag consists of a key and an optional value, both of+ -- which you define. Tag keys can have a maximum character length of 128+ -- characters, and tag values can have a maximum length of 256 characters.+ tags :: Prelude.Maybe [Tag],+ -- | The name to use for the repository. This appears publicly in the Amazon+ -- ECR Public Gallery. The repository name may be specified on its own+ -- (such as @nginx-web-app@) or it can be prepended with a namespace to+ -- group the repository into a category (such as+ -- @project-a\/nginx-web-app@).+ repositoryName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateRepository' 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:+--+-- 'catalogData', 'createRepository_catalogData' - The details about the repository that are publicly visible in the Amazon+-- ECR Public Gallery.+--+-- 'tags', 'createRepository_tags' - The metadata that you apply to the repository to help you categorize and+-- organize them. Each tag consists of a key and an optional value, both of+-- which you define. Tag keys can have a maximum character length of 128+-- characters, and tag values can have a maximum length of 256 characters.+--+-- 'repositoryName', 'createRepository_repositoryName' - The name to use for the repository. This appears publicly in the Amazon+-- ECR Public Gallery. The repository name may be specified on its own+-- (such as @nginx-web-app@) or it can be prepended with a namespace to+-- group the repository into a category (such as+-- @project-a\/nginx-web-app@).+newCreateRepository ::+ -- | 'repositoryName'+ Prelude.Text ->+ CreateRepository+newCreateRepository pRepositoryName_ =+ CreateRepository'+ { catalogData = Prelude.Nothing,+ tags = Prelude.Nothing,+ repositoryName = pRepositoryName_+ }++-- | The details about the repository that are publicly visible in the Amazon+-- ECR Public Gallery.+createRepository_catalogData :: Lens.Lens' CreateRepository (Prelude.Maybe RepositoryCatalogDataInput)+createRepository_catalogData = Lens.lens (\CreateRepository' {catalogData} -> catalogData) (\s@CreateRepository' {} a -> s {catalogData = a} :: CreateRepository)++-- | The metadata that you apply to the repository to help you categorize and+-- organize them. Each tag consists of a key and an optional value, both of+-- which you define. Tag keys can have a maximum character length of 128+-- characters, and tag values can have a maximum length of 256 characters.+createRepository_tags :: Lens.Lens' CreateRepository (Prelude.Maybe [Tag])+createRepository_tags = Lens.lens (\CreateRepository' {tags} -> tags) (\s@CreateRepository' {} a -> s {tags = a} :: CreateRepository) Prelude.. Lens.mapping Lens.coerced++-- | The name to use for the repository. This appears publicly in the Amazon+-- ECR Public Gallery. The repository name may be specified on its own+-- (such as @nginx-web-app@) or it can be prepended with a namespace to+-- group the repository into a category (such as+-- @project-a\/nginx-web-app@).+createRepository_repositoryName :: Lens.Lens' CreateRepository Prelude.Text+createRepository_repositoryName = Lens.lens (\CreateRepository' {repositoryName} -> repositoryName) (\s@CreateRepository' {} a -> s {repositoryName = a} :: CreateRepository)++instance Core.AWSRequest CreateRepository where+ type+ AWSResponse CreateRepository =+ CreateRepositoryResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateRepositoryResponse'+ Prelude.<$> (x Data..?> "catalogData")+ Prelude.<*> (x Data..?> "repository")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateRepository where+ hashWithSalt _salt CreateRepository' {..} =+ _salt+ `Prelude.hashWithSalt` catalogData+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` repositoryName++instance Prelude.NFData CreateRepository where+ rnf CreateRepository' {..} =+ Prelude.rnf catalogData+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf repositoryName++instance Data.ToHeaders CreateRepository where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "SpencerFrontendService.CreateRepository" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateRepository where+ toJSON CreateRepository' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("catalogData" Data..=) Prelude.<$> catalogData,+ ("tags" Data..=) Prelude.<$> tags,+ Prelude.Just+ ("repositoryName" Data..= repositoryName)+ ]+ )++instance Data.ToPath CreateRepository where+ toPath = Prelude.const "/"++instance Data.ToQuery CreateRepository where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateRepositoryResponse' smart constructor.+data CreateRepositoryResponse = CreateRepositoryResponse'+ { catalogData :: Prelude.Maybe RepositoryCatalogData,+ -- | The repository that was created.+ repository :: Prelude.Maybe Repository,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateRepositoryResponse' 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:+--+-- 'catalogData', 'createRepositoryResponse_catalogData' - Undocumented member.+--+-- 'repository', 'createRepositoryResponse_repository' - The repository that was created.+--+-- 'httpStatus', 'createRepositoryResponse_httpStatus' - The response's http status code.+newCreateRepositoryResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateRepositoryResponse+newCreateRepositoryResponse pHttpStatus_ =+ CreateRepositoryResponse'+ { catalogData =+ Prelude.Nothing,+ repository = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Undocumented member.+createRepositoryResponse_catalogData :: Lens.Lens' CreateRepositoryResponse (Prelude.Maybe RepositoryCatalogData)+createRepositoryResponse_catalogData = Lens.lens (\CreateRepositoryResponse' {catalogData} -> catalogData) (\s@CreateRepositoryResponse' {} a -> s {catalogData = a} :: CreateRepositoryResponse)++-- | The repository that was created.+createRepositoryResponse_repository :: Lens.Lens' CreateRepositoryResponse (Prelude.Maybe Repository)+createRepositoryResponse_repository = Lens.lens (\CreateRepositoryResponse' {repository} -> repository) (\s@CreateRepositoryResponse' {} a -> s {repository = a} :: CreateRepositoryResponse)++-- | The response's http status code.+createRepositoryResponse_httpStatus :: Lens.Lens' CreateRepositoryResponse Prelude.Int+createRepositoryResponse_httpStatus = Lens.lens (\CreateRepositoryResponse' {httpStatus} -> httpStatus) (\s@CreateRepositoryResponse' {} a -> s {httpStatus = a} :: CreateRepositoryResponse)++instance Prelude.NFData CreateRepositoryResponse where+ rnf CreateRepositoryResponse' {..} =+ Prelude.rnf catalogData+ `Prelude.seq` Prelude.rnf repository+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ECRPublic/DeleteRepository.hs view
@@ -0,0 +1,209 @@+{-# 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.ECRPublic.DeleteRepository+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a repository in a public registry. If the repository contains+-- images, you must either delete all images in the repository or use the+-- @force@ option which deletes all images on your behalf before deleting+-- the repository.+module Amazonka.ECRPublic.DeleteRepository+ ( -- * Creating a Request+ DeleteRepository (..),+ newDeleteRepository,++ -- * Request Lenses+ deleteRepository_force,+ deleteRepository_registryId,+ deleteRepository_repositoryName,++ -- * Destructuring the Response+ DeleteRepositoryResponse (..),+ newDeleteRepositoryResponse,++ -- * Response Lenses+ deleteRepositoryResponse_repository,+ deleteRepositoryResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ECRPublic.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteRepository' smart constructor.+data DeleteRepository = DeleteRepository'+ { -- | If a repository contains images, forces the deletion.+ force :: Prelude.Maybe Prelude.Bool,+ -- | The AWS account ID associated with the public registry that contains the+ -- repository to delete. If you do not specify a registry, the default+ -- public registry is assumed.+ registryId :: Prelude.Maybe Prelude.Text,+ -- | The name of the repository to delete.+ repositoryName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteRepository' 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:+--+-- 'force', 'deleteRepository_force' - If a repository contains images, forces the deletion.+--+-- 'registryId', 'deleteRepository_registryId' - The AWS account ID associated with the public registry that contains the+-- repository to delete. If you do not specify a registry, the default+-- public registry is assumed.+--+-- 'repositoryName', 'deleteRepository_repositoryName' - The name of the repository to delete.+newDeleteRepository ::+ -- | 'repositoryName'+ Prelude.Text ->+ DeleteRepository+newDeleteRepository pRepositoryName_ =+ DeleteRepository'+ { force = Prelude.Nothing,+ registryId = Prelude.Nothing,+ repositoryName = pRepositoryName_+ }++-- | If a repository contains images, forces the deletion.+deleteRepository_force :: Lens.Lens' DeleteRepository (Prelude.Maybe Prelude.Bool)+deleteRepository_force = Lens.lens (\DeleteRepository' {force} -> force) (\s@DeleteRepository' {} a -> s {force = a} :: DeleteRepository)++-- | The AWS account ID associated with the public registry that contains the+-- repository to delete. If you do not specify a registry, the default+-- public registry is assumed.+deleteRepository_registryId :: Lens.Lens' DeleteRepository (Prelude.Maybe Prelude.Text)+deleteRepository_registryId = Lens.lens (\DeleteRepository' {registryId} -> registryId) (\s@DeleteRepository' {} a -> s {registryId = a} :: DeleteRepository)++-- | The name of the repository to delete.+deleteRepository_repositoryName :: Lens.Lens' DeleteRepository Prelude.Text+deleteRepository_repositoryName = Lens.lens (\DeleteRepository' {repositoryName} -> repositoryName) (\s@DeleteRepository' {} a -> s {repositoryName = a} :: DeleteRepository)++instance Core.AWSRequest DeleteRepository where+ type+ AWSResponse DeleteRepository =+ DeleteRepositoryResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DeleteRepositoryResponse'+ Prelude.<$> (x Data..?> "repository")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteRepository where+ hashWithSalt _salt DeleteRepository' {..} =+ _salt+ `Prelude.hashWithSalt` force+ `Prelude.hashWithSalt` registryId+ `Prelude.hashWithSalt` repositoryName++instance Prelude.NFData DeleteRepository where+ rnf DeleteRepository' {..} =+ Prelude.rnf force+ `Prelude.seq` Prelude.rnf registryId+ `Prelude.seq` Prelude.rnf repositoryName++instance Data.ToHeaders DeleteRepository where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "SpencerFrontendService.DeleteRepository" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DeleteRepository where+ toJSON DeleteRepository' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("force" Data..=) Prelude.<$> force,+ ("registryId" Data..=) Prelude.<$> registryId,+ Prelude.Just+ ("repositoryName" Data..= repositoryName)+ ]+ )++instance Data.ToPath DeleteRepository where+ toPath = Prelude.const "/"++instance Data.ToQuery DeleteRepository where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteRepositoryResponse' smart constructor.+data DeleteRepositoryResponse = DeleteRepositoryResponse'+ { -- | The repository that was deleted.+ repository :: Prelude.Maybe Repository,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteRepositoryResponse' 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:+--+-- 'repository', 'deleteRepositoryResponse_repository' - The repository that was deleted.+--+-- 'httpStatus', 'deleteRepositoryResponse_httpStatus' - The response's http status code.+newDeleteRepositoryResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteRepositoryResponse+newDeleteRepositoryResponse pHttpStatus_ =+ DeleteRepositoryResponse'+ { repository =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The repository that was deleted.+deleteRepositoryResponse_repository :: Lens.Lens' DeleteRepositoryResponse (Prelude.Maybe Repository)+deleteRepositoryResponse_repository = Lens.lens (\DeleteRepositoryResponse' {repository} -> repository) (\s@DeleteRepositoryResponse' {} a -> s {repository = a} :: DeleteRepositoryResponse)++-- | The response's http status code.+deleteRepositoryResponse_httpStatus :: Lens.Lens' DeleteRepositoryResponse Prelude.Int+deleteRepositoryResponse_httpStatus = Lens.lens (\DeleteRepositoryResponse' {httpStatus} -> httpStatus) (\s@DeleteRepositoryResponse' {} a -> s {httpStatus = a} :: DeleteRepositoryResponse)++instance Prelude.NFData DeleteRepositoryResponse where+ rnf DeleteRepositoryResponse' {..} =+ Prelude.rnf repository+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ECRPublic/DeleteRepositoryPolicy.hs view
@@ -0,0 +1,224 @@+{-# 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.ECRPublic.DeleteRepositoryPolicy+-- 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 repository policy associated with the specified repository.+module Amazonka.ECRPublic.DeleteRepositoryPolicy+ ( -- * Creating a Request+ DeleteRepositoryPolicy (..),+ newDeleteRepositoryPolicy,++ -- * Request Lenses+ deleteRepositoryPolicy_registryId,+ deleteRepositoryPolicy_repositoryName,++ -- * Destructuring the Response+ DeleteRepositoryPolicyResponse (..),+ newDeleteRepositoryPolicyResponse,++ -- * Response Lenses+ deleteRepositoryPolicyResponse_policyText,+ deleteRepositoryPolicyResponse_registryId,+ deleteRepositoryPolicyResponse_repositoryName,+ deleteRepositoryPolicyResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ECRPublic.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteRepositoryPolicy' smart constructor.+data DeleteRepositoryPolicy = DeleteRepositoryPolicy'+ { -- | The AWS account ID associated with the public registry that contains the+ -- repository policy to delete. If you do not specify a registry, the+ -- default public registry is assumed.+ registryId :: Prelude.Maybe Prelude.Text,+ -- | The name of the repository that is associated with the repository policy+ -- to delete.+ repositoryName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteRepositoryPolicy' 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:+--+-- 'registryId', 'deleteRepositoryPolicy_registryId' - The AWS account ID associated with the public registry that contains the+-- repository policy to delete. If you do not specify a registry, the+-- default public registry is assumed.+--+-- 'repositoryName', 'deleteRepositoryPolicy_repositoryName' - The name of the repository that is associated with the repository policy+-- to delete.+newDeleteRepositoryPolicy ::+ -- | 'repositoryName'+ Prelude.Text ->+ DeleteRepositoryPolicy+newDeleteRepositoryPolicy pRepositoryName_ =+ DeleteRepositoryPolicy'+ { registryId =+ Prelude.Nothing,+ repositoryName = pRepositoryName_+ }++-- | The AWS account ID associated with the public registry that contains the+-- repository policy to delete. If you do not specify a registry, the+-- default public registry is assumed.+deleteRepositoryPolicy_registryId :: Lens.Lens' DeleteRepositoryPolicy (Prelude.Maybe Prelude.Text)+deleteRepositoryPolicy_registryId = Lens.lens (\DeleteRepositoryPolicy' {registryId} -> registryId) (\s@DeleteRepositoryPolicy' {} a -> s {registryId = a} :: DeleteRepositoryPolicy)++-- | The name of the repository that is associated with the repository policy+-- to delete.+deleteRepositoryPolicy_repositoryName :: Lens.Lens' DeleteRepositoryPolicy Prelude.Text+deleteRepositoryPolicy_repositoryName = Lens.lens (\DeleteRepositoryPolicy' {repositoryName} -> repositoryName) (\s@DeleteRepositoryPolicy' {} a -> s {repositoryName = a} :: DeleteRepositoryPolicy)++instance Core.AWSRequest DeleteRepositoryPolicy where+ type+ AWSResponse DeleteRepositoryPolicy =+ DeleteRepositoryPolicyResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DeleteRepositoryPolicyResponse'+ Prelude.<$> (x Data..?> "policyText")+ Prelude.<*> (x Data..?> "registryId")+ Prelude.<*> (x Data..?> "repositoryName")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteRepositoryPolicy where+ hashWithSalt _salt DeleteRepositoryPolicy' {..} =+ _salt+ `Prelude.hashWithSalt` registryId+ `Prelude.hashWithSalt` repositoryName++instance Prelude.NFData DeleteRepositoryPolicy where+ rnf DeleteRepositoryPolicy' {..} =+ Prelude.rnf registryId+ `Prelude.seq` Prelude.rnf repositoryName++instance Data.ToHeaders DeleteRepositoryPolicy where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "SpencerFrontendService.DeleteRepositoryPolicy" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DeleteRepositoryPolicy where+ toJSON DeleteRepositoryPolicy' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("registryId" Data..=) Prelude.<$> registryId,+ Prelude.Just+ ("repositoryName" Data..= repositoryName)+ ]+ )++instance Data.ToPath DeleteRepositoryPolicy where+ toPath = Prelude.const "/"++instance Data.ToQuery DeleteRepositoryPolicy where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteRepositoryPolicyResponse' smart constructor.+data DeleteRepositoryPolicyResponse = DeleteRepositoryPolicyResponse'+ { -- | The JSON repository policy that was deleted from the repository.+ policyText :: Prelude.Maybe Prelude.Text,+ -- | The registry ID associated with the request.+ registryId :: Prelude.Maybe Prelude.Text,+ -- | The repository name associated with the request.+ repositoryName :: 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 'DeleteRepositoryPolicyResponse' 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:+--+-- 'policyText', 'deleteRepositoryPolicyResponse_policyText' - The JSON repository policy that was deleted from the repository.+--+-- 'registryId', 'deleteRepositoryPolicyResponse_registryId' - The registry ID associated with the request.+--+-- 'repositoryName', 'deleteRepositoryPolicyResponse_repositoryName' - The repository name associated with the request.+--+-- 'httpStatus', 'deleteRepositoryPolicyResponse_httpStatus' - The response's http status code.+newDeleteRepositoryPolicyResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteRepositoryPolicyResponse+newDeleteRepositoryPolicyResponse pHttpStatus_ =+ DeleteRepositoryPolicyResponse'+ { policyText =+ Prelude.Nothing,+ registryId = Prelude.Nothing,+ repositoryName = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The JSON repository policy that was deleted from the repository.+deleteRepositoryPolicyResponse_policyText :: Lens.Lens' DeleteRepositoryPolicyResponse (Prelude.Maybe Prelude.Text)+deleteRepositoryPolicyResponse_policyText = Lens.lens (\DeleteRepositoryPolicyResponse' {policyText} -> policyText) (\s@DeleteRepositoryPolicyResponse' {} a -> s {policyText = a} :: DeleteRepositoryPolicyResponse)++-- | The registry ID associated with the request.+deleteRepositoryPolicyResponse_registryId :: Lens.Lens' DeleteRepositoryPolicyResponse (Prelude.Maybe Prelude.Text)+deleteRepositoryPolicyResponse_registryId = Lens.lens (\DeleteRepositoryPolicyResponse' {registryId} -> registryId) (\s@DeleteRepositoryPolicyResponse' {} a -> s {registryId = a} :: DeleteRepositoryPolicyResponse)++-- | The repository name associated with the request.+deleteRepositoryPolicyResponse_repositoryName :: Lens.Lens' DeleteRepositoryPolicyResponse (Prelude.Maybe Prelude.Text)+deleteRepositoryPolicyResponse_repositoryName = Lens.lens (\DeleteRepositoryPolicyResponse' {repositoryName} -> repositoryName) (\s@DeleteRepositoryPolicyResponse' {} a -> s {repositoryName = a} :: DeleteRepositoryPolicyResponse)++-- | The response's http status code.+deleteRepositoryPolicyResponse_httpStatus :: Lens.Lens' DeleteRepositoryPolicyResponse Prelude.Int+deleteRepositoryPolicyResponse_httpStatus = Lens.lens (\DeleteRepositoryPolicyResponse' {httpStatus} -> httpStatus) (\s@DeleteRepositoryPolicyResponse' {} a -> s {httpStatus = a} :: DeleteRepositoryPolicyResponse)++instance+ Prelude.NFData+ DeleteRepositoryPolicyResponse+ where+ rnf DeleteRepositoryPolicyResponse' {..} =+ Prelude.rnf policyText+ `Prelude.seq` Prelude.rnf registryId+ `Prelude.seq` Prelude.rnf repositoryName+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ECRPublic/DescribeImageTags.hs view
@@ -0,0 +1,309 @@+{-# 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.ECRPublic.DescribeImageTags+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the image tag details for a repository in a public registry.+--+-- This operation returns paginated results.+module Amazonka.ECRPublic.DescribeImageTags+ ( -- * Creating a Request+ DescribeImageTags (..),+ newDescribeImageTags,++ -- * Request Lenses+ describeImageTags_maxResults,+ describeImageTags_nextToken,+ describeImageTags_registryId,+ describeImageTags_repositoryName,++ -- * Destructuring the Response+ DescribeImageTagsResponse (..),+ newDescribeImageTagsResponse,++ -- * Response Lenses+ describeImageTagsResponse_imageTagDetails,+ describeImageTagsResponse_nextToken,+ describeImageTagsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ECRPublic.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeImageTags' smart constructor.+data DescribeImageTags = DescribeImageTags'+ { -- | The maximum number of repository results returned by @DescribeImageTags@+ -- in paginated output. When this parameter is used, @DescribeImageTags@+ -- only returns @maxResults@ results in a single page along with a+ -- @nextToken@ response element. The remaining results of the initial+ -- request can be seen by sending another @DescribeImageTags@ request with+ -- the returned @nextToken@ value. This value can be between 1 and 1000. If+ -- this parameter is not used, then @DescribeImageTags@ returns up to 100+ -- results and a @nextToken@ value, if applicable. This option cannot be+ -- used when you specify images with @imageIds@.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The @nextToken@ value returned from a previous paginated+ -- @DescribeImageTags@ request where @maxResults@ was used and the results+ -- exceeded the value of that parameter. Pagination continues from the end+ -- of the previous results that returned the @nextToken@ value. This value+ -- is @null@ when there are no more results to return. This option cannot+ -- be used when you specify images with @imageIds@.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The AWS account ID associated with the public registry that contains the+ -- repository in which to describe images. If you do not specify a+ -- registry, the default public registry is assumed.+ registryId :: Prelude.Maybe Prelude.Text,+ -- | The name of the repository that contains the image tag details to+ -- describe.+ repositoryName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeImageTags' 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', 'describeImageTags_maxResults' - The maximum number of repository results returned by @DescribeImageTags@+-- in paginated output. When this parameter is used, @DescribeImageTags@+-- only returns @maxResults@ results in a single page along with a+-- @nextToken@ response element. The remaining results of the initial+-- request can be seen by sending another @DescribeImageTags@ request with+-- the returned @nextToken@ value. This value can be between 1 and 1000. If+-- this parameter is not used, then @DescribeImageTags@ returns up to 100+-- results and a @nextToken@ value, if applicable. This option cannot be+-- used when you specify images with @imageIds@.+--+-- 'nextToken', 'describeImageTags_nextToken' - The @nextToken@ value returned from a previous paginated+-- @DescribeImageTags@ request where @maxResults@ was used and the results+-- exceeded the value of that parameter. Pagination continues from the end+-- of the previous results that returned the @nextToken@ value. This value+-- is @null@ when there are no more results to return. This option cannot+-- be used when you specify images with @imageIds@.+--+-- 'registryId', 'describeImageTags_registryId' - The AWS account ID associated with the public registry that contains the+-- repository in which to describe images. If you do not specify a+-- registry, the default public registry is assumed.+--+-- 'repositoryName', 'describeImageTags_repositoryName' - The name of the repository that contains the image tag details to+-- describe.+newDescribeImageTags ::+ -- | 'repositoryName'+ Prelude.Text ->+ DescribeImageTags+newDescribeImageTags pRepositoryName_ =+ DescribeImageTags'+ { maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ registryId = Prelude.Nothing,+ repositoryName = pRepositoryName_+ }++-- | The maximum number of repository results returned by @DescribeImageTags@+-- in paginated output. When this parameter is used, @DescribeImageTags@+-- only returns @maxResults@ results in a single page along with a+-- @nextToken@ response element. The remaining results of the initial+-- request can be seen by sending another @DescribeImageTags@ request with+-- the returned @nextToken@ value. This value can be between 1 and 1000. If+-- this parameter is not used, then @DescribeImageTags@ returns up to 100+-- results and a @nextToken@ value, if applicable. This option cannot be+-- used when you specify images with @imageIds@.+describeImageTags_maxResults :: Lens.Lens' DescribeImageTags (Prelude.Maybe Prelude.Natural)+describeImageTags_maxResults = Lens.lens (\DescribeImageTags' {maxResults} -> maxResults) (\s@DescribeImageTags' {} a -> s {maxResults = a} :: DescribeImageTags)++-- | The @nextToken@ value returned from a previous paginated+-- @DescribeImageTags@ request where @maxResults@ was used and the results+-- exceeded the value of that parameter. Pagination continues from the end+-- of the previous results that returned the @nextToken@ value. This value+-- is @null@ when there are no more results to return. This option cannot+-- be used when you specify images with @imageIds@.+describeImageTags_nextToken :: Lens.Lens' DescribeImageTags (Prelude.Maybe Prelude.Text)+describeImageTags_nextToken = Lens.lens (\DescribeImageTags' {nextToken} -> nextToken) (\s@DescribeImageTags' {} a -> s {nextToken = a} :: DescribeImageTags)++-- | The AWS account ID associated with the public registry that contains the+-- repository in which to describe images. If you do not specify a+-- registry, the default public registry is assumed.+describeImageTags_registryId :: Lens.Lens' DescribeImageTags (Prelude.Maybe Prelude.Text)+describeImageTags_registryId = Lens.lens (\DescribeImageTags' {registryId} -> registryId) (\s@DescribeImageTags' {} a -> s {registryId = a} :: DescribeImageTags)++-- | The name of the repository that contains the image tag details to+-- describe.+describeImageTags_repositoryName :: Lens.Lens' DescribeImageTags Prelude.Text+describeImageTags_repositoryName = Lens.lens (\DescribeImageTags' {repositoryName} -> repositoryName) (\s@DescribeImageTags' {} a -> s {repositoryName = a} :: DescribeImageTags)++instance Core.AWSPager DescribeImageTags where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? describeImageTagsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? describeImageTagsResponse_imageTagDetails+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& describeImageTags_nextToken+ Lens..~ rs+ Lens.^? describeImageTagsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest DescribeImageTags where+ type+ AWSResponse DescribeImageTags =+ DescribeImageTagsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeImageTagsResponse'+ Prelude.<$> ( x+ Data..?> "imageTagDetails"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..?> "nextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeImageTags where+ hashWithSalt _salt DescribeImageTags' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` registryId+ `Prelude.hashWithSalt` repositoryName++instance Prelude.NFData DescribeImageTags where+ rnf DescribeImageTags' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf registryId+ `Prelude.seq` Prelude.rnf repositoryName++instance Data.ToHeaders DescribeImageTags where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "SpencerFrontendService.DescribeImageTags" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DescribeImageTags where+ toJSON DescribeImageTags' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("maxResults" Data..=) Prelude.<$> maxResults,+ ("nextToken" Data..=) Prelude.<$> nextToken,+ ("registryId" Data..=) Prelude.<$> registryId,+ Prelude.Just+ ("repositoryName" Data..= repositoryName)+ ]+ )++instance Data.ToPath DescribeImageTags where+ toPath = Prelude.const "/"++instance Data.ToQuery DescribeImageTags where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeImageTagsResponse' smart constructor.+data DescribeImageTagsResponse = DescribeImageTagsResponse'+ { -- | The image tag details for the images in the requested repository.+ imageTagDetails :: Prelude.Maybe [ImageTagDetail],+ -- | The @nextToken@ value to include in a future @DescribeImageTags@+ -- request. When the results of a @DescribeImageTags@ request exceed+ -- @maxResults@, this value can be used to retrieve the next page of+ -- results. This value is @null@ when there are no more results to return.+ 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 'DescribeImageTagsResponse' 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:+--+-- 'imageTagDetails', 'describeImageTagsResponse_imageTagDetails' - The image tag details for the images in the requested repository.+--+-- 'nextToken', 'describeImageTagsResponse_nextToken' - The @nextToken@ value to include in a future @DescribeImageTags@+-- request. When the results of a @DescribeImageTags@ request exceed+-- @maxResults@, this value can be used to retrieve the next page of+-- results. This value is @null@ when there are no more results to return.+--+-- 'httpStatus', 'describeImageTagsResponse_httpStatus' - The response's http status code.+newDescribeImageTagsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeImageTagsResponse+newDescribeImageTagsResponse pHttpStatus_ =+ DescribeImageTagsResponse'+ { imageTagDetails =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The image tag details for the images in the requested repository.+describeImageTagsResponse_imageTagDetails :: Lens.Lens' DescribeImageTagsResponse (Prelude.Maybe [ImageTagDetail])+describeImageTagsResponse_imageTagDetails = Lens.lens (\DescribeImageTagsResponse' {imageTagDetails} -> imageTagDetails) (\s@DescribeImageTagsResponse' {} a -> s {imageTagDetails = a} :: DescribeImageTagsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The @nextToken@ value to include in a future @DescribeImageTags@+-- request. When the results of a @DescribeImageTags@ request exceed+-- @maxResults@, this value can be used to retrieve the next page of+-- results. This value is @null@ when there are no more results to return.+describeImageTagsResponse_nextToken :: Lens.Lens' DescribeImageTagsResponse (Prelude.Maybe Prelude.Text)+describeImageTagsResponse_nextToken = Lens.lens (\DescribeImageTagsResponse' {nextToken} -> nextToken) (\s@DescribeImageTagsResponse' {} a -> s {nextToken = a} :: DescribeImageTagsResponse)++-- | The response's http status code.+describeImageTagsResponse_httpStatus :: Lens.Lens' DescribeImageTagsResponse Prelude.Int+describeImageTagsResponse_httpStatus = Lens.lens (\DescribeImageTagsResponse' {httpStatus} -> httpStatus) (\s@DescribeImageTagsResponse' {} a -> s {httpStatus = a} :: DescribeImageTagsResponse)++instance Prelude.NFData DescribeImageTagsResponse where+ rnf DescribeImageTagsResponse' {..} =+ Prelude.rnf imageTagDetails+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ECRPublic/DescribeImages.hs view
@@ -0,0 +1,322 @@+{-# 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.ECRPublic.DescribeImages+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns metadata about the images in a repository in a public registry.+--+-- Beginning with Docker version 1.9, the Docker client compresses image+-- layers before pushing them to a V2 Docker registry. The output of the+-- @docker images@ command shows the uncompressed image size, so it may+-- return a larger image size than the image sizes returned by+-- DescribeImages.+--+-- This operation returns paginated results.+module Amazonka.ECRPublic.DescribeImages+ ( -- * Creating a Request+ DescribeImages (..),+ newDescribeImages,++ -- * Request Lenses+ describeImages_imageIds,+ describeImages_maxResults,+ describeImages_nextToken,+ describeImages_registryId,+ describeImages_repositoryName,++ -- * Destructuring the Response+ DescribeImagesResponse (..),+ newDescribeImagesResponse,++ -- * Response Lenses+ describeImagesResponse_imageDetails,+ describeImagesResponse_nextToken,+ describeImagesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ECRPublic.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeImages' smart constructor.+data DescribeImages = DescribeImages'+ { -- | The list of image IDs for the requested repository.+ imageIds :: Prelude.Maybe (Prelude.NonEmpty ImageIdentifier),+ -- | The maximum number of repository results returned by @DescribeImages@ in+ -- paginated output. When this parameter is used, @DescribeImages@ only+ -- returns @maxResults@ results in a single page along with a @nextToken@+ -- response element. The remaining results of the initial request can be+ -- seen by sending another @DescribeImages@ request with the returned+ -- @nextToken@ value. This value can be between 1 and 1000. If this+ -- parameter is not used, then @DescribeImages@ returns up to 100 results+ -- and a @nextToken@ value, if applicable. This option cannot be used when+ -- you specify images with @imageIds@.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The @nextToken@ value returned from a previous paginated+ -- @DescribeImages@ request where @maxResults@ was used and the results+ -- exceeded the value of that parameter. Pagination continues from the end+ -- of the previous results that returned the @nextToken@ value. This value+ -- is @null@ when there are no more results to return. This option cannot+ -- be used when you specify images with @imageIds@.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The AWS account ID associated with the public registry that contains the+ -- repository in which to describe images. If you do not specify a+ -- registry, the default public registry is assumed.+ registryId :: Prelude.Maybe Prelude.Text,+ -- | The repository that contains the images to describe.+ repositoryName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeImages' 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:+--+-- 'imageIds', 'describeImages_imageIds' - The list of image IDs for the requested repository.+--+-- 'maxResults', 'describeImages_maxResults' - The maximum number of repository results returned by @DescribeImages@ in+-- paginated output. When this parameter is used, @DescribeImages@ only+-- returns @maxResults@ results in a single page along with a @nextToken@+-- response element. The remaining results of the initial request can be+-- seen by sending another @DescribeImages@ request with the returned+-- @nextToken@ value. This value can be between 1 and 1000. If this+-- parameter is not used, then @DescribeImages@ returns up to 100 results+-- and a @nextToken@ value, if applicable. This option cannot be used when+-- you specify images with @imageIds@.+--+-- 'nextToken', 'describeImages_nextToken' - The @nextToken@ value returned from a previous paginated+-- @DescribeImages@ request where @maxResults@ was used and the results+-- exceeded the value of that parameter. Pagination continues from the end+-- of the previous results that returned the @nextToken@ value. This value+-- is @null@ when there are no more results to return. This option cannot+-- be used when you specify images with @imageIds@.+--+-- 'registryId', 'describeImages_registryId' - The AWS account ID associated with the public registry that contains the+-- repository in which to describe images. If you do not specify a+-- registry, the default public registry is assumed.+--+-- 'repositoryName', 'describeImages_repositoryName' - The repository that contains the images to describe.+newDescribeImages ::+ -- | 'repositoryName'+ Prelude.Text ->+ DescribeImages+newDescribeImages pRepositoryName_ =+ DescribeImages'+ { imageIds = Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ registryId = Prelude.Nothing,+ repositoryName = pRepositoryName_+ }++-- | The list of image IDs for the requested repository.+describeImages_imageIds :: Lens.Lens' DescribeImages (Prelude.Maybe (Prelude.NonEmpty ImageIdentifier))+describeImages_imageIds = Lens.lens (\DescribeImages' {imageIds} -> imageIds) (\s@DescribeImages' {} a -> s {imageIds = a} :: DescribeImages) Prelude.. Lens.mapping Lens.coerced++-- | The maximum number of repository results returned by @DescribeImages@ in+-- paginated output. When this parameter is used, @DescribeImages@ only+-- returns @maxResults@ results in a single page along with a @nextToken@+-- response element. The remaining results of the initial request can be+-- seen by sending another @DescribeImages@ request with the returned+-- @nextToken@ value. This value can be between 1 and 1000. If this+-- parameter is not used, then @DescribeImages@ returns up to 100 results+-- and a @nextToken@ value, if applicable. This option cannot be used when+-- you specify images with @imageIds@.+describeImages_maxResults :: Lens.Lens' DescribeImages (Prelude.Maybe Prelude.Natural)+describeImages_maxResults = Lens.lens (\DescribeImages' {maxResults} -> maxResults) (\s@DescribeImages' {} a -> s {maxResults = a} :: DescribeImages)++-- | The @nextToken@ value returned from a previous paginated+-- @DescribeImages@ request where @maxResults@ was used and the results+-- exceeded the value of that parameter. Pagination continues from the end+-- of the previous results that returned the @nextToken@ value. This value+-- is @null@ when there are no more results to return. This option cannot+-- be used when you specify images with @imageIds@.+describeImages_nextToken :: Lens.Lens' DescribeImages (Prelude.Maybe Prelude.Text)+describeImages_nextToken = Lens.lens (\DescribeImages' {nextToken} -> nextToken) (\s@DescribeImages' {} a -> s {nextToken = a} :: DescribeImages)++-- | The AWS account ID associated with the public registry that contains the+-- repository in which to describe images. If you do not specify a+-- registry, the default public registry is assumed.+describeImages_registryId :: Lens.Lens' DescribeImages (Prelude.Maybe Prelude.Text)+describeImages_registryId = Lens.lens (\DescribeImages' {registryId} -> registryId) (\s@DescribeImages' {} a -> s {registryId = a} :: DescribeImages)++-- | The repository that contains the images to describe.+describeImages_repositoryName :: Lens.Lens' DescribeImages Prelude.Text+describeImages_repositoryName = Lens.lens (\DescribeImages' {repositoryName} -> repositoryName) (\s@DescribeImages' {} a -> s {repositoryName = a} :: DescribeImages)++instance Core.AWSPager DescribeImages where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? describeImagesResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? describeImagesResponse_imageDetails+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& describeImages_nextToken+ Lens..~ rs+ Lens.^? describeImagesResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest DescribeImages where+ type+ AWSResponse DescribeImages =+ DescribeImagesResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeImagesResponse'+ Prelude.<$> (x Data..?> "imageDetails" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "nextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeImages where+ hashWithSalt _salt DescribeImages' {..} =+ _salt+ `Prelude.hashWithSalt` imageIds+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` registryId+ `Prelude.hashWithSalt` repositoryName++instance Prelude.NFData DescribeImages where+ rnf DescribeImages' {..} =+ Prelude.rnf imageIds+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf registryId+ `Prelude.seq` Prelude.rnf repositoryName++instance Data.ToHeaders DescribeImages where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "SpencerFrontendService.DescribeImages" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DescribeImages where+ toJSON DescribeImages' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("imageIds" Data..=) Prelude.<$> imageIds,+ ("maxResults" Data..=) Prelude.<$> maxResults,+ ("nextToken" Data..=) Prelude.<$> nextToken,+ ("registryId" Data..=) Prelude.<$> registryId,+ Prelude.Just+ ("repositoryName" Data..= repositoryName)+ ]+ )++instance Data.ToPath DescribeImages where+ toPath = Prelude.const "/"++instance Data.ToQuery DescribeImages where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeImagesResponse' smart constructor.+data DescribeImagesResponse = DescribeImagesResponse'+ { -- | A list of ImageDetail objects that contain data about the image.+ imageDetails :: Prelude.Maybe [ImageDetail],+ -- | The @nextToken@ value to include in a future @DescribeImages@ request.+ -- When the results of a @DescribeImages@ request exceed @maxResults@, this+ -- value can be used to retrieve the next page of results. This value is+ -- @null@ when there are no more results to return.+ 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 'DescribeImagesResponse' 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:+--+-- 'imageDetails', 'describeImagesResponse_imageDetails' - A list of ImageDetail objects that contain data about the image.+--+-- 'nextToken', 'describeImagesResponse_nextToken' - The @nextToken@ value to include in a future @DescribeImages@ request.+-- When the results of a @DescribeImages@ request exceed @maxResults@, this+-- value can be used to retrieve the next page of results. This value is+-- @null@ when there are no more results to return.+--+-- 'httpStatus', 'describeImagesResponse_httpStatus' - The response's http status code.+newDescribeImagesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeImagesResponse+newDescribeImagesResponse pHttpStatus_ =+ DescribeImagesResponse'+ { imageDetails =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A list of ImageDetail objects that contain data about the image.+describeImagesResponse_imageDetails :: Lens.Lens' DescribeImagesResponse (Prelude.Maybe [ImageDetail])+describeImagesResponse_imageDetails = Lens.lens (\DescribeImagesResponse' {imageDetails} -> imageDetails) (\s@DescribeImagesResponse' {} a -> s {imageDetails = a} :: DescribeImagesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The @nextToken@ value to include in a future @DescribeImages@ request.+-- When the results of a @DescribeImages@ request exceed @maxResults@, this+-- value can be used to retrieve the next page of results. This value is+-- @null@ when there are no more results to return.+describeImagesResponse_nextToken :: Lens.Lens' DescribeImagesResponse (Prelude.Maybe Prelude.Text)+describeImagesResponse_nextToken = Lens.lens (\DescribeImagesResponse' {nextToken} -> nextToken) (\s@DescribeImagesResponse' {} a -> s {nextToken = a} :: DescribeImagesResponse)++-- | The response's http status code.+describeImagesResponse_httpStatus :: Lens.Lens' DescribeImagesResponse Prelude.Int+describeImagesResponse_httpStatus = Lens.lens (\DescribeImagesResponse' {httpStatus} -> httpStatus) (\s@DescribeImagesResponse' {} a -> s {httpStatus = a} :: DescribeImagesResponse)++instance Prelude.NFData DescribeImagesResponse where+ rnf DescribeImagesResponse' {..} =+ Prelude.rnf imageDetails+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ECRPublic/DescribeRegistries.hs view
@@ -0,0 +1,271 @@+{-# 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.ECRPublic.DescribeRegistries+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns details for a public registry.+--+-- This operation returns paginated results.+module Amazonka.ECRPublic.DescribeRegistries+ ( -- * Creating a Request+ DescribeRegistries (..),+ newDescribeRegistries,++ -- * Request Lenses+ describeRegistries_maxResults,+ describeRegistries_nextToken,++ -- * Destructuring the Response+ DescribeRegistriesResponse (..),+ newDescribeRegistriesResponse,++ -- * Response Lenses+ describeRegistriesResponse_nextToken,+ describeRegistriesResponse_httpStatus,+ describeRegistriesResponse_registries,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ECRPublic.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeRegistries' smart constructor.+data DescribeRegistries = DescribeRegistries'+ { -- | The maximum number of repository results returned by+ -- @DescribeRegistries@ in paginated output. When this parameter is used,+ -- @DescribeRegistries@ only returns @maxResults@ results in a single page+ -- along with a @nextToken@ response element. The remaining results of the+ -- initial request can be seen by sending another @DescribeRegistries@+ -- request with the returned @nextToken@ value. This value can be between 1+ -- and 1000. If this parameter is not used, then @DescribeRegistries@+ -- returns up to 100 results and a @nextToken@ value, if applicable.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The @nextToken@ value returned from a previous paginated+ -- @DescribeRegistries@ request where @maxResults@ was used and the results+ -- exceeded the value of that parameter. Pagination continues from the end+ -- of the previous results that returned the @nextToken@ value. This value+ -- is @null@ when there are no more results to return.+ --+ -- This token should be treated as an opaque identifier that is only used+ -- to retrieve the next items in a list and not for other programmatic+ -- purposes.+ nextToken :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeRegistries' 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', 'describeRegistries_maxResults' - The maximum number of repository results returned by+-- @DescribeRegistries@ in paginated output. When this parameter is used,+-- @DescribeRegistries@ only returns @maxResults@ results in a single page+-- along with a @nextToken@ response element. The remaining results of the+-- initial request can be seen by sending another @DescribeRegistries@+-- request with the returned @nextToken@ value. This value can be between 1+-- and 1000. If this parameter is not used, then @DescribeRegistries@+-- returns up to 100 results and a @nextToken@ value, if applicable.+--+-- 'nextToken', 'describeRegistries_nextToken' - The @nextToken@ value returned from a previous paginated+-- @DescribeRegistries@ request where @maxResults@ was used and the results+-- exceeded the value of that parameter. Pagination continues from the end+-- of the previous results that returned the @nextToken@ value. This value+-- is @null@ when there are no more results to return.+--+-- This token should be treated as an opaque identifier that is only used+-- to retrieve the next items in a list and not for other programmatic+-- purposes.+newDescribeRegistries ::+ DescribeRegistries+newDescribeRegistries =+ DescribeRegistries'+ { maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing+ }++-- | The maximum number of repository results returned by+-- @DescribeRegistries@ in paginated output. When this parameter is used,+-- @DescribeRegistries@ only returns @maxResults@ results in a single page+-- along with a @nextToken@ response element. The remaining results of the+-- initial request can be seen by sending another @DescribeRegistries@+-- request with the returned @nextToken@ value. This value can be between 1+-- and 1000. If this parameter is not used, then @DescribeRegistries@+-- returns up to 100 results and a @nextToken@ value, if applicable.+describeRegistries_maxResults :: Lens.Lens' DescribeRegistries (Prelude.Maybe Prelude.Natural)+describeRegistries_maxResults = Lens.lens (\DescribeRegistries' {maxResults} -> maxResults) (\s@DescribeRegistries' {} a -> s {maxResults = a} :: DescribeRegistries)++-- | The @nextToken@ value returned from a previous paginated+-- @DescribeRegistries@ request where @maxResults@ was used and the results+-- exceeded the value of that parameter. Pagination continues from the end+-- of the previous results that returned the @nextToken@ value. This value+-- is @null@ when there are no more results to return.+--+-- This token should be treated as an opaque identifier that is only used+-- to retrieve the next items in a list and not for other programmatic+-- purposes.+describeRegistries_nextToken :: Lens.Lens' DescribeRegistries (Prelude.Maybe Prelude.Text)+describeRegistries_nextToken = Lens.lens (\DescribeRegistries' {nextToken} -> nextToken) (\s@DescribeRegistries' {} a -> s {nextToken = a} :: DescribeRegistries)++instance Core.AWSPager DescribeRegistries where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? describeRegistriesResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ (rs Lens.^. describeRegistriesResponse_registries) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& describeRegistries_nextToken+ Lens..~ rs+ Lens.^? describeRegistriesResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest DescribeRegistries where+ type+ AWSResponse DescribeRegistries =+ DescribeRegistriesResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeRegistriesResponse'+ Prelude.<$> (x Data..?> "nextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..?> "registries" Core..!@ Prelude.mempty)+ )++instance Prelude.Hashable DescribeRegistries where+ hashWithSalt _salt DescribeRegistries' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken++instance Prelude.NFData DescribeRegistries where+ rnf DescribeRegistries' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders DescribeRegistries where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "SpencerFrontendService.DescribeRegistries" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DescribeRegistries where+ toJSON DescribeRegistries' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("maxResults" Data..=) Prelude.<$> maxResults,+ ("nextToken" Data..=) Prelude.<$> nextToken+ ]+ )++instance Data.ToPath DescribeRegistries where+ toPath = Prelude.const "/"++instance Data.ToQuery DescribeRegistries where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeRegistriesResponse' smart constructor.+data DescribeRegistriesResponse = DescribeRegistriesResponse'+ { -- | The @nextToken@ value to include in a future @DescribeRepositories@+ -- request. When the results of a @DescribeRepositories@ request exceed+ -- @maxResults@, this value can be used to retrieve the next page of+ -- results. This value is @null@ when there are no more results to return.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | An object containing the details for a public registry.+ registries :: [Registry]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeRegistriesResponse' 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', 'describeRegistriesResponse_nextToken' - The @nextToken@ value to include in a future @DescribeRepositories@+-- request. When the results of a @DescribeRepositories@ request exceed+-- @maxResults@, this value can be used to retrieve the next page of+-- results. This value is @null@ when there are no more results to return.+--+-- 'httpStatus', 'describeRegistriesResponse_httpStatus' - The response's http status code.+--+-- 'registries', 'describeRegistriesResponse_registries' - An object containing the details for a public registry.+newDescribeRegistriesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeRegistriesResponse+newDescribeRegistriesResponse pHttpStatus_ =+ DescribeRegistriesResponse'+ { nextToken =+ Prelude.Nothing,+ httpStatus = pHttpStatus_,+ registries = Prelude.mempty+ }++-- | The @nextToken@ value to include in a future @DescribeRepositories@+-- request. When the results of a @DescribeRepositories@ request exceed+-- @maxResults@, this value can be used to retrieve the next page of+-- results. This value is @null@ when there are no more results to return.+describeRegistriesResponse_nextToken :: Lens.Lens' DescribeRegistriesResponse (Prelude.Maybe Prelude.Text)+describeRegistriesResponse_nextToken = Lens.lens (\DescribeRegistriesResponse' {nextToken} -> nextToken) (\s@DescribeRegistriesResponse' {} a -> s {nextToken = a} :: DescribeRegistriesResponse)++-- | The response's http status code.+describeRegistriesResponse_httpStatus :: Lens.Lens' DescribeRegistriesResponse Prelude.Int+describeRegistriesResponse_httpStatus = Lens.lens (\DescribeRegistriesResponse' {httpStatus} -> httpStatus) (\s@DescribeRegistriesResponse' {} a -> s {httpStatus = a} :: DescribeRegistriesResponse)++-- | An object containing the details for a public registry.+describeRegistriesResponse_registries :: Lens.Lens' DescribeRegistriesResponse [Registry]+describeRegistriesResponse_registries = Lens.lens (\DescribeRegistriesResponse' {registries} -> registries) (\s@DescribeRegistriesResponse' {} a -> s {registries = a} :: DescribeRegistriesResponse) Prelude.. Lens.coerced++instance Prelude.NFData DescribeRegistriesResponse where+ rnf DescribeRegistriesResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf registries
+ gen/Amazonka/ECRPublic/DescribeRepositories.hs view
@@ -0,0 +1,322 @@+{-# 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.ECRPublic.DescribeRepositories+-- 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 repositories in a public registry.+--+-- This operation returns paginated results.+module Amazonka.ECRPublic.DescribeRepositories+ ( -- * Creating a Request+ DescribeRepositories (..),+ newDescribeRepositories,++ -- * Request Lenses+ describeRepositories_maxResults,+ describeRepositories_nextToken,+ describeRepositories_registryId,+ describeRepositories_repositoryNames,++ -- * Destructuring the Response+ DescribeRepositoriesResponse (..),+ newDescribeRepositoriesResponse,++ -- * Response Lenses+ describeRepositoriesResponse_nextToken,+ describeRepositoriesResponse_repositories,+ describeRepositoriesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ECRPublic.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeRepositories' smart constructor.+data DescribeRepositories = DescribeRepositories'+ { -- | The maximum number of repository results returned by+ -- @DescribeRepositories@ in paginated output. When this parameter is used,+ -- @DescribeRepositories@ only returns @maxResults@ results in a single+ -- page along with a @nextToken@ response element. The remaining results of+ -- the initial request can be seen by sending another+ -- @DescribeRepositories@ request with the returned @nextToken@ value. This+ -- value can be between 1 and 1000. If this parameter is not used, then+ -- @DescribeRepositories@ returns up to 100 results and a @nextToken@+ -- value, if applicable. This option cannot be used when you specify+ -- repositories with @repositoryNames@.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The @nextToken@ value returned from a previous paginated+ -- @DescribeRepositories@ request where @maxResults@ was used and the+ -- results exceeded the value of that parameter. Pagination continues from+ -- the end of the previous results that returned the @nextToken@ value.+ -- This value is @null@ when there are no more results to return. This+ -- option cannot be used when you specify repositories with+ -- @repositoryNames@.+ --+ -- This token should be treated as an opaque identifier that is only used+ -- to retrieve the next items in a list and not for other programmatic+ -- purposes.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The AWS account ID associated with the registry that contains the+ -- repositories to be described. If you do not specify a registry, the+ -- default public registry is assumed.+ registryId :: Prelude.Maybe Prelude.Text,+ -- | A list of repositories to describe. If this parameter is omitted, then+ -- all repositories in a registry are described.+ repositoryNames :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeRepositories' 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', 'describeRepositories_maxResults' - The maximum number of repository results returned by+-- @DescribeRepositories@ in paginated output. When this parameter is used,+-- @DescribeRepositories@ only returns @maxResults@ results in a single+-- page along with a @nextToken@ response element. The remaining results of+-- the initial request can be seen by sending another+-- @DescribeRepositories@ request with the returned @nextToken@ value. This+-- value can be between 1 and 1000. If this parameter is not used, then+-- @DescribeRepositories@ returns up to 100 results and a @nextToken@+-- value, if applicable. This option cannot be used when you specify+-- repositories with @repositoryNames@.+--+-- 'nextToken', 'describeRepositories_nextToken' - The @nextToken@ value returned from a previous paginated+-- @DescribeRepositories@ request where @maxResults@ was used and the+-- results exceeded the value of that parameter. Pagination continues from+-- the end of the previous results that returned the @nextToken@ value.+-- This value is @null@ when there are no more results to return. This+-- option cannot be used when you specify repositories with+-- @repositoryNames@.+--+-- This token should be treated as an opaque identifier that is only used+-- to retrieve the next items in a list and not for other programmatic+-- purposes.+--+-- 'registryId', 'describeRepositories_registryId' - The AWS account ID associated with the registry that contains the+-- repositories to be described. If you do not specify a registry, the+-- default public registry is assumed.+--+-- 'repositoryNames', 'describeRepositories_repositoryNames' - A list of repositories to describe. If this parameter is omitted, then+-- all repositories in a registry are described.+newDescribeRepositories ::+ DescribeRepositories+newDescribeRepositories =+ DescribeRepositories'+ { maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ registryId = Prelude.Nothing,+ repositoryNames = Prelude.Nothing+ }++-- | The maximum number of repository results returned by+-- @DescribeRepositories@ in paginated output. When this parameter is used,+-- @DescribeRepositories@ only returns @maxResults@ results in a single+-- page along with a @nextToken@ response element. The remaining results of+-- the initial request can be seen by sending another+-- @DescribeRepositories@ request with the returned @nextToken@ value. This+-- value can be between 1 and 1000. If this parameter is not used, then+-- @DescribeRepositories@ returns up to 100 results and a @nextToken@+-- value, if applicable. This option cannot be used when you specify+-- repositories with @repositoryNames@.+describeRepositories_maxResults :: Lens.Lens' DescribeRepositories (Prelude.Maybe Prelude.Natural)+describeRepositories_maxResults = Lens.lens (\DescribeRepositories' {maxResults} -> maxResults) (\s@DescribeRepositories' {} a -> s {maxResults = a} :: DescribeRepositories)++-- | The @nextToken@ value returned from a previous paginated+-- @DescribeRepositories@ request where @maxResults@ was used and the+-- results exceeded the value of that parameter. Pagination continues from+-- the end of the previous results that returned the @nextToken@ value.+-- This value is @null@ when there are no more results to return. This+-- option cannot be used when you specify repositories with+-- @repositoryNames@.+--+-- This token should be treated as an opaque identifier that is only used+-- to retrieve the next items in a list and not for other programmatic+-- purposes.+describeRepositories_nextToken :: Lens.Lens' DescribeRepositories (Prelude.Maybe Prelude.Text)+describeRepositories_nextToken = Lens.lens (\DescribeRepositories' {nextToken} -> nextToken) (\s@DescribeRepositories' {} a -> s {nextToken = a} :: DescribeRepositories)++-- | The AWS account ID associated with the registry that contains the+-- repositories to be described. If you do not specify a registry, the+-- default public registry is assumed.+describeRepositories_registryId :: Lens.Lens' DescribeRepositories (Prelude.Maybe Prelude.Text)+describeRepositories_registryId = Lens.lens (\DescribeRepositories' {registryId} -> registryId) (\s@DescribeRepositories' {} a -> s {registryId = a} :: DescribeRepositories)++-- | A list of repositories to describe. If this parameter is omitted, then+-- all repositories in a registry are described.+describeRepositories_repositoryNames :: Lens.Lens' DescribeRepositories (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+describeRepositories_repositoryNames = Lens.lens (\DescribeRepositories' {repositoryNames} -> repositoryNames) (\s@DescribeRepositories' {} a -> s {repositoryNames = a} :: DescribeRepositories) Prelude.. Lens.mapping Lens.coerced++instance Core.AWSPager DescribeRepositories where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? describeRepositoriesResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? describeRepositoriesResponse_repositories+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& describeRepositories_nextToken+ Lens..~ rs+ Lens.^? describeRepositoriesResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest DescribeRepositories where+ type+ AWSResponse DescribeRepositories =+ DescribeRepositoriesResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeRepositoriesResponse'+ Prelude.<$> (x Data..?> "nextToken")+ Prelude.<*> (x Data..?> "repositories" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeRepositories where+ hashWithSalt _salt DescribeRepositories' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` registryId+ `Prelude.hashWithSalt` repositoryNames++instance Prelude.NFData DescribeRepositories where+ rnf DescribeRepositories' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf registryId+ `Prelude.seq` Prelude.rnf repositoryNames++instance Data.ToHeaders DescribeRepositories where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "SpencerFrontendService.DescribeRepositories" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DescribeRepositories where+ toJSON DescribeRepositories' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("maxResults" Data..=) Prelude.<$> maxResults,+ ("nextToken" Data..=) Prelude.<$> nextToken,+ ("registryId" Data..=) Prelude.<$> registryId,+ ("repositoryNames" Data..=)+ Prelude.<$> repositoryNames+ ]+ )++instance Data.ToPath DescribeRepositories where+ toPath = Prelude.const "/"++instance Data.ToQuery DescribeRepositories where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeRepositoriesResponse' smart constructor.+data DescribeRepositoriesResponse = DescribeRepositoriesResponse'+ { -- | The @nextToken@ value to include in a future @DescribeRepositories@+ -- request. When the results of a @DescribeRepositories@ request exceed+ -- @maxResults@, this value can be used to retrieve the next page of+ -- results. This value is @null@ when there are no more results to return.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | A list of repository objects corresponding to valid repositories.+ repositories :: Prelude.Maybe [Repository],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeRepositoriesResponse' 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', 'describeRepositoriesResponse_nextToken' - The @nextToken@ value to include in a future @DescribeRepositories@+-- request. When the results of a @DescribeRepositories@ request exceed+-- @maxResults@, this value can be used to retrieve the next page of+-- results. This value is @null@ when there are no more results to return.+--+-- 'repositories', 'describeRepositoriesResponse_repositories' - A list of repository objects corresponding to valid repositories.+--+-- 'httpStatus', 'describeRepositoriesResponse_httpStatus' - The response's http status code.+newDescribeRepositoriesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeRepositoriesResponse+newDescribeRepositoriesResponse pHttpStatus_ =+ DescribeRepositoriesResponse'+ { nextToken =+ Prelude.Nothing,+ repositories = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The @nextToken@ value to include in a future @DescribeRepositories@+-- request. When the results of a @DescribeRepositories@ request exceed+-- @maxResults@, this value can be used to retrieve the next page of+-- results. This value is @null@ when there are no more results to return.+describeRepositoriesResponse_nextToken :: Lens.Lens' DescribeRepositoriesResponse (Prelude.Maybe Prelude.Text)+describeRepositoriesResponse_nextToken = Lens.lens (\DescribeRepositoriesResponse' {nextToken} -> nextToken) (\s@DescribeRepositoriesResponse' {} a -> s {nextToken = a} :: DescribeRepositoriesResponse)++-- | A list of repository objects corresponding to valid repositories.+describeRepositoriesResponse_repositories :: Lens.Lens' DescribeRepositoriesResponse (Prelude.Maybe [Repository])+describeRepositoriesResponse_repositories = Lens.lens (\DescribeRepositoriesResponse' {repositories} -> repositories) (\s@DescribeRepositoriesResponse' {} a -> s {repositories = a} :: DescribeRepositoriesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeRepositoriesResponse_httpStatus :: Lens.Lens' DescribeRepositoriesResponse Prelude.Int+describeRepositoriesResponse_httpStatus = Lens.lens (\DescribeRepositoriesResponse' {httpStatus} -> httpStatus) (\s@DescribeRepositoriesResponse' {} a -> s {httpStatus = a} :: DescribeRepositoriesResponse)++instance Prelude.NFData DescribeRepositoriesResponse where+ rnf DescribeRepositoriesResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf repositories+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ECRPublic/GetAuthorizationToken.hs view
@@ -0,0 +1,156 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ECRPublic.GetAuthorizationToken+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves an authorization token. An authorization token represents your+-- IAM authentication credentials and can be used to access any Amazon ECR+-- registry that your IAM principal has access to. The authorization token+-- is valid for 12 hours. This API requires the+-- @ecr-public:GetAuthorizationToken@ and @sts:GetServiceBearerToken@+-- permissions.+module Amazonka.ECRPublic.GetAuthorizationToken+ ( -- * Creating a Request+ GetAuthorizationToken (..),+ newGetAuthorizationToken,++ -- * Destructuring the Response+ GetAuthorizationTokenResponse (..),+ newGetAuthorizationTokenResponse,++ -- * Response Lenses+ getAuthorizationTokenResponse_authorizationData,+ getAuthorizationTokenResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ECRPublic.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetAuthorizationToken' smart constructor.+data GetAuthorizationToken = GetAuthorizationToken'+ {+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAuthorizationToken' 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.+newGetAuthorizationToken ::+ GetAuthorizationToken+newGetAuthorizationToken = GetAuthorizationToken'++instance Core.AWSRequest GetAuthorizationToken where+ type+ AWSResponse GetAuthorizationToken =+ GetAuthorizationTokenResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetAuthorizationTokenResponse'+ Prelude.<$> (x Data..?> "authorizationData")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetAuthorizationToken where+ hashWithSalt _salt _ =+ _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData GetAuthorizationToken where+ rnf _ = ()++instance Data.ToHeaders GetAuthorizationToken where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "SpencerFrontendService.GetAuthorizationToken" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON GetAuthorizationToken where+ toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath GetAuthorizationToken where+ toPath = Prelude.const "/"++instance Data.ToQuery GetAuthorizationToken where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetAuthorizationTokenResponse' smart constructor.+data GetAuthorizationTokenResponse = GetAuthorizationTokenResponse'+ { -- | An authorization token data object that corresponds to a public+ -- registry.+ authorizationData :: Prelude.Maybe AuthorizationData,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAuthorizationTokenResponse' 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:+--+-- 'authorizationData', 'getAuthorizationTokenResponse_authorizationData' - An authorization token data object that corresponds to a public+-- registry.+--+-- 'httpStatus', 'getAuthorizationTokenResponse_httpStatus' - The response's http status code.+newGetAuthorizationTokenResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetAuthorizationTokenResponse+newGetAuthorizationTokenResponse pHttpStatus_ =+ GetAuthorizationTokenResponse'+ { authorizationData =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | An authorization token data object that corresponds to a public+-- registry.+getAuthorizationTokenResponse_authorizationData :: Lens.Lens' GetAuthorizationTokenResponse (Prelude.Maybe AuthorizationData)+getAuthorizationTokenResponse_authorizationData = Lens.lens (\GetAuthorizationTokenResponse' {authorizationData} -> authorizationData) (\s@GetAuthorizationTokenResponse' {} a -> s {authorizationData = a} :: GetAuthorizationTokenResponse)++-- | The response's http status code.+getAuthorizationTokenResponse_httpStatus :: Lens.Lens' GetAuthorizationTokenResponse Prelude.Int+getAuthorizationTokenResponse_httpStatus = Lens.lens (\GetAuthorizationTokenResponse' {httpStatus} -> httpStatus) (\s@GetAuthorizationTokenResponse' {} a -> s {httpStatus = a} :: GetAuthorizationTokenResponse)++instance Prelude.NFData GetAuthorizationTokenResponse where+ rnf GetAuthorizationTokenResponse' {..} =+ Prelude.rnf authorizationData+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ECRPublic/GetRegistryCatalogData.hs view
@@ -0,0 +1,155 @@+{-# 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.ECRPublic.GetRegistryCatalogData+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves catalog metadata for a public registry.+module Amazonka.ECRPublic.GetRegistryCatalogData+ ( -- * Creating a Request+ GetRegistryCatalogData (..),+ newGetRegistryCatalogData,++ -- * Destructuring the Response+ GetRegistryCatalogDataResponse (..),+ newGetRegistryCatalogDataResponse,++ -- * Response Lenses+ getRegistryCatalogDataResponse_httpStatus,+ getRegistryCatalogDataResponse_registryCatalogData,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ECRPublic.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetRegistryCatalogData' smart constructor.+data GetRegistryCatalogData = GetRegistryCatalogData'+ {+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetRegistryCatalogData' 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.+newGetRegistryCatalogData ::+ GetRegistryCatalogData+newGetRegistryCatalogData = GetRegistryCatalogData'++instance Core.AWSRequest GetRegistryCatalogData where+ type+ AWSResponse GetRegistryCatalogData =+ GetRegistryCatalogDataResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetRegistryCatalogDataResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "registryCatalogData")+ )++instance Prelude.Hashable GetRegistryCatalogData where+ hashWithSalt _salt _ =+ _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData GetRegistryCatalogData where+ rnf _ = ()++instance Data.ToHeaders GetRegistryCatalogData where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "SpencerFrontendService.GetRegistryCatalogData" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON GetRegistryCatalogData where+ toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath GetRegistryCatalogData where+ toPath = Prelude.const "/"++instance Data.ToQuery GetRegistryCatalogData where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetRegistryCatalogDataResponse' smart constructor.+data GetRegistryCatalogDataResponse = GetRegistryCatalogDataResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The catalog metadata for the public registry.+ registryCatalogData :: RegistryCatalogData+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetRegistryCatalogDataResponse' 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', 'getRegistryCatalogDataResponse_httpStatus' - The response's http status code.+--+-- 'registryCatalogData', 'getRegistryCatalogDataResponse_registryCatalogData' - The catalog metadata for the public registry.+newGetRegistryCatalogDataResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'registryCatalogData'+ RegistryCatalogData ->+ GetRegistryCatalogDataResponse+newGetRegistryCatalogDataResponse+ pHttpStatus_+ pRegistryCatalogData_ =+ GetRegistryCatalogDataResponse'+ { httpStatus =+ pHttpStatus_,+ registryCatalogData = pRegistryCatalogData_+ }++-- | The response's http status code.+getRegistryCatalogDataResponse_httpStatus :: Lens.Lens' GetRegistryCatalogDataResponse Prelude.Int+getRegistryCatalogDataResponse_httpStatus = Lens.lens (\GetRegistryCatalogDataResponse' {httpStatus} -> httpStatus) (\s@GetRegistryCatalogDataResponse' {} a -> s {httpStatus = a} :: GetRegistryCatalogDataResponse)++-- | The catalog metadata for the public registry.+getRegistryCatalogDataResponse_registryCatalogData :: Lens.Lens' GetRegistryCatalogDataResponse RegistryCatalogData+getRegistryCatalogDataResponse_registryCatalogData = Lens.lens (\GetRegistryCatalogDataResponse' {registryCatalogData} -> registryCatalogData) (\s@GetRegistryCatalogDataResponse' {} a -> s {registryCatalogData = a} :: GetRegistryCatalogDataResponse)++instance+ Prelude.NFData+ GetRegistryCatalogDataResponse+ where+ rnf GetRegistryCatalogDataResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf registryCatalogData
+ gen/Amazonka/ECRPublic/GetRepositoryCatalogData.hs view
@@ -0,0 +1,198 @@+{-# 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.ECRPublic.GetRepositoryCatalogData+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieve catalog metadata for a repository in a public registry. This+-- metadata is displayed publicly in the Amazon ECR Public Gallery.+module Amazonka.ECRPublic.GetRepositoryCatalogData+ ( -- * Creating a Request+ GetRepositoryCatalogData (..),+ newGetRepositoryCatalogData,++ -- * Request Lenses+ getRepositoryCatalogData_registryId,+ getRepositoryCatalogData_repositoryName,++ -- * Destructuring the Response+ GetRepositoryCatalogDataResponse (..),+ newGetRepositoryCatalogDataResponse,++ -- * Response Lenses+ getRepositoryCatalogDataResponse_catalogData,+ getRepositoryCatalogDataResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ECRPublic.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetRepositoryCatalogData' smart constructor.+data GetRepositoryCatalogData = GetRepositoryCatalogData'+ { -- | The AWS account ID associated with the registry that contains the+ -- repositories to be described. If you do not specify a registry, the+ -- default public registry is assumed.+ registryId :: Prelude.Maybe Prelude.Text,+ -- | The name of the repository to retrieve the catalog metadata for.+ repositoryName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetRepositoryCatalogData' 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:+--+-- 'registryId', 'getRepositoryCatalogData_registryId' - The AWS account ID associated with the registry that contains the+-- repositories to be described. If you do not specify a registry, the+-- default public registry is assumed.+--+-- 'repositoryName', 'getRepositoryCatalogData_repositoryName' - The name of the repository to retrieve the catalog metadata for.+newGetRepositoryCatalogData ::+ -- | 'repositoryName'+ Prelude.Text ->+ GetRepositoryCatalogData+newGetRepositoryCatalogData pRepositoryName_ =+ GetRepositoryCatalogData'+ { registryId =+ Prelude.Nothing,+ repositoryName = pRepositoryName_+ }++-- | The AWS account ID associated with the registry that contains the+-- repositories to be described. If you do not specify a registry, the+-- default public registry is assumed.+getRepositoryCatalogData_registryId :: Lens.Lens' GetRepositoryCatalogData (Prelude.Maybe Prelude.Text)+getRepositoryCatalogData_registryId = Lens.lens (\GetRepositoryCatalogData' {registryId} -> registryId) (\s@GetRepositoryCatalogData' {} a -> s {registryId = a} :: GetRepositoryCatalogData)++-- | The name of the repository to retrieve the catalog metadata for.+getRepositoryCatalogData_repositoryName :: Lens.Lens' GetRepositoryCatalogData Prelude.Text+getRepositoryCatalogData_repositoryName = Lens.lens (\GetRepositoryCatalogData' {repositoryName} -> repositoryName) (\s@GetRepositoryCatalogData' {} a -> s {repositoryName = a} :: GetRepositoryCatalogData)++instance Core.AWSRequest GetRepositoryCatalogData where+ type+ AWSResponse GetRepositoryCatalogData =+ GetRepositoryCatalogDataResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetRepositoryCatalogDataResponse'+ Prelude.<$> (x Data..?> "catalogData")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetRepositoryCatalogData where+ hashWithSalt _salt GetRepositoryCatalogData' {..} =+ _salt+ `Prelude.hashWithSalt` registryId+ `Prelude.hashWithSalt` repositoryName++instance Prelude.NFData GetRepositoryCatalogData where+ rnf GetRepositoryCatalogData' {..} =+ Prelude.rnf registryId+ `Prelude.seq` Prelude.rnf repositoryName++instance Data.ToHeaders GetRepositoryCatalogData where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "SpencerFrontendService.GetRepositoryCatalogData" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON GetRepositoryCatalogData where+ toJSON GetRepositoryCatalogData' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("registryId" Data..=) Prelude.<$> registryId,+ Prelude.Just+ ("repositoryName" Data..= repositoryName)+ ]+ )++instance Data.ToPath GetRepositoryCatalogData where+ toPath = Prelude.const "/"++instance Data.ToQuery GetRepositoryCatalogData where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetRepositoryCatalogDataResponse' smart constructor.+data GetRepositoryCatalogDataResponse = GetRepositoryCatalogDataResponse'+ { -- | The catalog metadata for the repository.+ catalogData :: Prelude.Maybe RepositoryCatalogData,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetRepositoryCatalogDataResponse' 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:+--+-- 'catalogData', 'getRepositoryCatalogDataResponse_catalogData' - The catalog metadata for the repository.+--+-- 'httpStatus', 'getRepositoryCatalogDataResponse_httpStatus' - The response's http status code.+newGetRepositoryCatalogDataResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetRepositoryCatalogDataResponse+newGetRepositoryCatalogDataResponse pHttpStatus_ =+ GetRepositoryCatalogDataResponse'+ { catalogData =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The catalog metadata for the repository.+getRepositoryCatalogDataResponse_catalogData :: Lens.Lens' GetRepositoryCatalogDataResponse (Prelude.Maybe RepositoryCatalogData)+getRepositoryCatalogDataResponse_catalogData = Lens.lens (\GetRepositoryCatalogDataResponse' {catalogData} -> catalogData) (\s@GetRepositoryCatalogDataResponse' {} a -> s {catalogData = a} :: GetRepositoryCatalogDataResponse)++-- | The response's http status code.+getRepositoryCatalogDataResponse_httpStatus :: Lens.Lens' GetRepositoryCatalogDataResponse Prelude.Int+getRepositoryCatalogDataResponse_httpStatus = Lens.lens (\GetRepositoryCatalogDataResponse' {httpStatus} -> httpStatus) (\s@GetRepositoryCatalogDataResponse' {} a -> s {httpStatus = a} :: GetRepositoryCatalogDataResponse)++instance+ Prelude.NFData+ GetRepositoryCatalogDataResponse+ where+ rnf GetRepositoryCatalogDataResponse' {..} =+ Prelude.rnf catalogData+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ECRPublic/GetRepositoryPolicy.hs view
@@ -0,0 +1,220 @@+{-# 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.ECRPublic.GetRepositoryPolicy+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the repository policy for the specified repository.+module Amazonka.ECRPublic.GetRepositoryPolicy+ ( -- * Creating a Request+ GetRepositoryPolicy (..),+ newGetRepositoryPolicy,++ -- * Request Lenses+ getRepositoryPolicy_registryId,+ getRepositoryPolicy_repositoryName,++ -- * Destructuring the Response+ GetRepositoryPolicyResponse (..),+ newGetRepositoryPolicyResponse,++ -- * Response Lenses+ getRepositoryPolicyResponse_policyText,+ getRepositoryPolicyResponse_registryId,+ getRepositoryPolicyResponse_repositoryName,+ getRepositoryPolicyResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ECRPublic.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetRepositoryPolicy' smart constructor.+data GetRepositoryPolicy = GetRepositoryPolicy'+ { -- | The AWS account ID associated with the public registry that contains the+ -- repository. If you do not specify a registry, the default public+ -- registry is assumed.+ registryId :: Prelude.Maybe Prelude.Text,+ -- | The name of the repository with the policy to retrieve.+ repositoryName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetRepositoryPolicy' 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:+--+-- 'registryId', 'getRepositoryPolicy_registryId' - The AWS account ID associated with the public registry that contains the+-- repository. If you do not specify a registry, the default public+-- registry is assumed.+--+-- 'repositoryName', 'getRepositoryPolicy_repositoryName' - The name of the repository with the policy to retrieve.+newGetRepositoryPolicy ::+ -- | 'repositoryName'+ Prelude.Text ->+ GetRepositoryPolicy+newGetRepositoryPolicy pRepositoryName_ =+ GetRepositoryPolicy'+ { registryId = Prelude.Nothing,+ repositoryName = pRepositoryName_+ }++-- | The AWS account ID associated with the public registry that contains the+-- repository. If you do not specify a registry, the default public+-- registry is assumed.+getRepositoryPolicy_registryId :: Lens.Lens' GetRepositoryPolicy (Prelude.Maybe Prelude.Text)+getRepositoryPolicy_registryId = Lens.lens (\GetRepositoryPolicy' {registryId} -> registryId) (\s@GetRepositoryPolicy' {} a -> s {registryId = a} :: GetRepositoryPolicy)++-- | The name of the repository with the policy to retrieve.+getRepositoryPolicy_repositoryName :: Lens.Lens' GetRepositoryPolicy Prelude.Text+getRepositoryPolicy_repositoryName = Lens.lens (\GetRepositoryPolicy' {repositoryName} -> repositoryName) (\s@GetRepositoryPolicy' {} a -> s {repositoryName = a} :: GetRepositoryPolicy)++instance Core.AWSRequest GetRepositoryPolicy where+ type+ AWSResponse GetRepositoryPolicy =+ GetRepositoryPolicyResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetRepositoryPolicyResponse'+ Prelude.<$> (x Data..?> "policyText")+ Prelude.<*> (x Data..?> "registryId")+ Prelude.<*> (x Data..?> "repositoryName")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetRepositoryPolicy where+ hashWithSalt _salt GetRepositoryPolicy' {..} =+ _salt+ `Prelude.hashWithSalt` registryId+ `Prelude.hashWithSalt` repositoryName++instance Prelude.NFData GetRepositoryPolicy where+ rnf GetRepositoryPolicy' {..} =+ Prelude.rnf registryId+ `Prelude.seq` Prelude.rnf repositoryName++instance Data.ToHeaders GetRepositoryPolicy where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "SpencerFrontendService.GetRepositoryPolicy" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON GetRepositoryPolicy where+ toJSON GetRepositoryPolicy' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("registryId" Data..=) Prelude.<$> registryId,+ Prelude.Just+ ("repositoryName" Data..= repositoryName)+ ]+ )++instance Data.ToPath GetRepositoryPolicy where+ toPath = Prelude.const "/"++instance Data.ToQuery GetRepositoryPolicy where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetRepositoryPolicyResponse' smart constructor.+data GetRepositoryPolicyResponse = GetRepositoryPolicyResponse'+ { -- | The repository policy text associated with the repository. The policy+ -- text will be in JSON format.+ policyText :: Prelude.Maybe Prelude.Text,+ -- | The registry ID associated with the request.+ registryId :: Prelude.Maybe Prelude.Text,+ -- | The repository name associated with the request.+ repositoryName :: 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 'GetRepositoryPolicyResponse' 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:+--+-- 'policyText', 'getRepositoryPolicyResponse_policyText' - The repository policy text associated with the repository. The policy+-- text will be in JSON format.+--+-- 'registryId', 'getRepositoryPolicyResponse_registryId' - The registry ID associated with the request.+--+-- 'repositoryName', 'getRepositoryPolicyResponse_repositoryName' - The repository name associated with the request.+--+-- 'httpStatus', 'getRepositoryPolicyResponse_httpStatus' - The response's http status code.+newGetRepositoryPolicyResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetRepositoryPolicyResponse+newGetRepositoryPolicyResponse pHttpStatus_ =+ GetRepositoryPolicyResponse'+ { policyText =+ Prelude.Nothing,+ registryId = Prelude.Nothing,+ repositoryName = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The repository policy text associated with the repository. The policy+-- text will be in JSON format.+getRepositoryPolicyResponse_policyText :: Lens.Lens' GetRepositoryPolicyResponse (Prelude.Maybe Prelude.Text)+getRepositoryPolicyResponse_policyText = Lens.lens (\GetRepositoryPolicyResponse' {policyText} -> policyText) (\s@GetRepositoryPolicyResponse' {} a -> s {policyText = a} :: GetRepositoryPolicyResponse)++-- | The registry ID associated with the request.+getRepositoryPolicyResponse_registryId :: Lens.Lens' GetRepositoryPolicyResponse (Prelude.Maybe Prelude.Text)+getRepositoryPolicyResponse_registryId = Lens.lens (\GetRepositoryPolicyResponse' {registryId} -> registryId) (\s@GetRepositoryPolicyResponse' {} a -> s {registryId = a} :: GetRepositoryPolicyResponse)++-- | The repository name associated with the request.+getRepositoryPolicyResponse_repositoryName :: Lens.Lens' GetRepositoryPolicyResponse (Prelude.Maybe Prelude.Text)+getRepositoryPolicyResponse_repositoryName = Lens.lens (\GetRepositoryPolicyResponse' {repositoryName} -> repositoryName) (\s@GetRepositoryPolicyResponse' {} a -> s {repositoryName = a} :: GetRepositoryPolicyResponse)++-- | The response's http status code.+getRepositoryPolicyResponse_httpStatus :: Lens.Lens' GetRepositoryPolicyResponse Prelude.Int+getRepositoryPolicyResponse_httpStatus = Lens.lens (\GetRepositoryPolicyResponse' {httpStatus} -> httpStatus) (\s@GetRepositoryPolicyResponse' {} a -> s {httpStatus = a} :: GetRepositoryPolicyResponse)++instance Prelude.NFData GetRepositoryPolicyResponse where+ rnf GetRepositoryPolicyResponse' {..} =+ Prelude.rnf policyText+ `Prelude.seq` Prelude.rnf registryId+ `Prelude.seq` Prelude.rnf repositoryName+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ECRPublic/InitiateLayerUpload.hs view
@@ -0,0 +1,220 @@+{-# 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.ECRPublic.InitiateLayerUpload+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Notifies Amazon ECR that you intend to upload an image layer.+--+-- When an image is pushed, the InitiateLayerUpload API is called once per+-- image layer that has not already been uploaded. Whether or not an image+-- layer has been uploaded is determined by the BatchCheckLayerAvailability+-- API action.+--+-- This operation is used by the Amazon ECR proxy and is not generally used+-- by customers for pulling and pushing images. In most cases, you should+-- use the @docker@ CLI to pull, tag, and push images.+module Amazonka.ECRPublic.InitiateLayerUpload+ ( -- * Creating a Request+ InitiateLayerUpload (..),+ newInitiateLayerUpload,++ -- * Request Lenses+ initiateLayerUpload_registryId,+ initiateLayerUpload_repositoryName,++ -- * Destructuring the Response+ InitiateLayerUploadResponse (..),+ newInitiateLayerUploadResponse,++ -- * Response Lenses+ initiateLayerUploadResponse_partSize,+ initiateLayerUploadResponse_uploadId,+ initiateLayerUploadResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ECRPublic.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newInitiateLayerUpload' smart constructor.+data InitiateLayerUpload = InitiateLayerUpload'+ { -- | The AWS account ID associated with the registry to which you intend to+ -- upload layers. If you do not specify a registry, the default public+ -- registry is assumed.+ registryId :: Prelude.Maybe Prelude.Text,+ -- | The name of the repository to which you intend to upload layers.+ repositoryName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InitiateLayerUpload' 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:+--+-- 'registryId', 'initiateLayerUpload_registryId' - The AWS account ID associated with the registry to which you intend to+-- upload layers. If you do not specify a registry, the default public+-- registry is assumed.+--+-- 'repositoryName', 'initiateLayerUpload_repositoryName' - The name of the repository to which you intend to upload layers.+newInitiateLayerUpload ::+ -- | 'repositoryName'+ Prelude.Text ->+ InitiateLayerUpload+newInitiateLayerUpload pRepositoryName_ =+ InitiateLayerUpload'+ { registryId = Prelude.Nothing,+ repositoryName = pRepositoryName_+ }++-- | The AWS account ID associated with the registry to which you intend to+-- upload layers. If you do not specify a registry, the default public+-- registry is assumed.+initiateLayerUpload_registryId :: Lens.Lens' InitiateLayerUpload (Prelude.Maybe Prelude.Text)+initiateLayerUpload_registryId = Lens.lens (\InitiateLayerUpload' {registryId} -> registryId) (\s@InitiateLayerUpload' {} a -> s {registryId = a} :: InitiateLayerUpload)++-- | The name of the repository to which you intend to upload layers.+initiateLayerUpload_repositoryName :: Lens.Lens' InitiateLayerUpload Prelude.Text+initiateLayerUpload_repositoryName = Lens.lens (\InitiateLayerUpload' {repositoryName} -> repositoryName) (\s@InitiateLayerUpload' {} a -> s {repositoryName = a} :: InitiateLayerUpload)++instance Core.AWSRequest InitiateLayerUpload where+ type+ AWSResponse InitiateLayerUpload =+ InitiateLayerUploadResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ InitiateLayerUploadResponse'+ Prelude.<$> (x Data..?> "partSize")+ Prelude.<*> (x Data..?> "uploadId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable InitiateLayerUpload where+ hashWithSalt _salt InitiateLayerUpload' {..} =+ _salt+ `Prelude.hashWithSalt` registryId+ `Prelude.hashWithSalt` repositoryName++instance Prelude.NFData InitiateLayerUpload where+ rnf InitiateLayerUpload' {..} =+ Prelude.rnf registryId+ `Prelude.seq` Prelude.rnf repositoryName++instance Data.ToHeaders InitiateLayerUpload where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "SpencerFrontendService.InitiateLayerUpload" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON InitiateLayerUpload where+ toJSON InitiateLayerUpload' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("registryId" Data..=) Prelude.<$> registryId,+ Prelude.Just+ ("repositoryName" Data..= repositoryName)+ ]+ )++instance Data.ToPath InitiateLayerUpload where+ toPath = Prelude.const "/"++instance Data.ToQuery InitiateLayerUpload where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newInitiateLayerUploadResponse' smart constructor.+data InitiateLayerUploadResponse = InitiateLayerUploadResponse'+ { -- | The size, in bytes, that Amazon ECR expects future layer part uploads to+ -- be.+ partSize :: Prelude.Maybe Prelude.Natural,+ -- | The upload ID for the layer upload. This parameter is passed to further+ -- UploadLayerPart and CompleteLayerUpload operations.+ uploadId :: 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 'InitiateLayerUploadResponse' 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:+--+-- 'partSize', 'initiateLayerUploadResponse_partSize' - The size, in bytes, that Amazon ECR expects future layer part uploads to+-- be.+--+-- 'uploadId', 'initiateLayerUploadResponse_uploadId' - The upload ID for the layer upload. This parameter is passed to further+-- UploadLayerPart and CompleteLayerUpload operations.+--+-- 'httpStatus', 'initiateLayerUploadResponse_httpStatus' - The response's http status code.+newInitiateLayerUploadResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ InitiateLayerUploadResponse+newInitiateLayerUploadResponse pHttpStatus_ =+ InitiateLayerUploadResponse'+ { partSize =+ Prelude.Nothing,+ uploadId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The size, in bytes, that Amazon ECR expects future layer part uploads to+-- be.+initiateLayerUploadResponse_partSize :: Lens.Lens' InitiateLayerUploadResponse (Prelude.Maybe Prelude.Natural)+initiateLayerUploadResponse_partSize = Lens.lens (\InitiateLayerUploadResponse' {partSize} -> partSize) (\s@InitiateLayerUploadResponse' {} a -> s {partSize = a} :: InitiateLayerUploadResponse)++-- | The upload ID for the layer upload. This parameter is passed to further+-- UploadLayerPart and CompleteLayerUpload operations.+initiateLayerUploadResponse_uploadId :: Lens.Lens' InitiateLayerUploadResponse (Prelude.Maybe Prelude.Text)+initiateLayerUploadResponse_uploadId = Lens.lens (\InitiateLayerUploadResponse' {uploadId} -> uploadId) (\s@InitiateLayerUploadResponse' {} a -> s {uploadId = a} :: InitiateLayerUploadResponse)++-- | The response's http status code.+initiateLayerUploadResponse_httpStatus :: Lens.Lens' InitiateLayerUploadResponse Prelude.Int+initiateLayerUploadResponse_httpStatus = Lens.lens (\InitiateLayerUploadResponse' {httpStatus} -> httpStatus) (\s@InitiateLayerUploadResponse' {} a -> s {httpStatus = a} :: InitiateLayerUploadResponse)++instance Prelude.NFData InitiateLayerUploadResponse where+ rnf InitiateLayerUploadResponse' {..} =+ Prelude.rnf partSize+ `Prelude.seq` Prelude.rnf uploadId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ECRPublic/Lens.hs view
@@ -0,0 +1,330 @@+{-# 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.ECRPublic.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.ECRPublic.Lens+ ( -- * Operations++ -- ** BatchCheckLayerAvailability+ batchCheckLayerAvailability_registryId,+ batchCheckLayerAvailability_repositoryName,+ batchCheckLayerAvailability_layerDigests,+ batchCheckLayerAvailabilityResponse_failures,+ batchCheckLayerAvailabilityResponse_layers,+ batchCheckLayerAvailabilityResponse_httpStatus,++ -- ** BatchDeleteImage+ batchDeleteImage_registryId,+ batchDeleteImage_repositoryName,+ batchDeleteImage_imageIds,+ batchDeleteImageResponse_failures,+ batchDeleteImageResponse_imageIds,+ batchDeleteImageResponse_httpStatus,++ -- ** CompleteLayerUpload+ completeLayerUpload_registryId,+ completeLayerUpload_repositoryName,+ completeLayerUpload_uploadId,+ completeLayerUpload_layerDigests,+ completeLayerUploadResponse_layerDigest,+ completeLayerUploadResponse_registryId,+ completeLayerUploadResponse_repositoryName,+ completeLayerUploadResponse_uploadId,+ completeLayerUploadResponse_httpStatus,++ -- ** CreateRepository+ createRepository_catalogData,+ createRepository_tags,+ createRepository_repositoryName,+ createRepositoryResponse_catalogData,+ createRepositoryResponse_repository,+ createRepositoryResponse_httpStatus,++ -- ** DeleteRepository+ deleteRepository_force,+ deleteRepository_registryId,+ deleteRepository_repositoryName,+ deleteRepositoryResponse_repository,+ deleteRepositoryResponse_httpStatus,++ -- ** DeleteRepositoryPolicy+ deleteRepositoryPolicy_registryId,+ deleteRepositoryPolicy_repositoryName,+ deleteRepositoryPolicyResponse_policyText,+ deleteRepositoryPolicyResponse_registryId,+ deleteRepositoryPolicyResponse_repositoryName,+ deleteRepositoryPolicyResponse_httpStatus,++ -- ** DescribeImageTags+ describeImageTags_maxResults,+ describeImageTags_nextToken,+ describeImageTags_registryId,+ describeImageTags_repositoryName,+ describeImageTagsResponse_imageTagDetails,+ describeImageTagsResponse_nextToken,+ describeImageTagsResponse_httpStatus,++ -- ** DescribeImages+ describeImages_imageIds,+ describeImages_maxResults,+ describeImages_nextToken,+ describeImages_registryId,+ describeImages_repositoryName,+ describeImagesResponse_imageDetails,+ describeImagesResponse_nextToken,+ describeImagesResponse_httpStatus,++ -- ** DescribeRegistries+ describeRegistries_maxResults,+ describeRegistries_nextToken,+ describeRegistriesResponse_nextToken,+ describeRegistriesResponse_httpStatus,+ describeRegistriesResponse_registries,++ -- ** DescribeRepositories+ describeRepositories_maxResults,+ describeRepositories_nextToken,+ describeRepositories_registryId,+ describeRepositories_repositoryNames,+ describeRepositoriesResponse_nextToken,+ describeRepositoriesResponse_repositories,+ describeRepositoriesResponse_httpStatus,++ -- ** GetAuthorizationToken+ getAuthorizationTokenResponse_authorizationData,+ getAuthorizationTokenResponse_httpStatus,++ -- ** GetRegistryCatalogData+ getRegistryCatalogDataResponse_httpStatus,+ getRegistryCatalogDataResponse_registryCatalogData,++ -- ** GetRepositoryCatalogData+ getRepositoryCatalogData_registryId,+ getRepositoryCatalogData_repositoryName,+ getRepositoryCatalogDataResponse_catalogData,+ getRepositoryCatalogDataResponse_httpStatus,++ -- ** GetRepositoryPolicy+ getRepositoryPolicy_registryId,+ getRepositoryPolicy_repositoryName,+ getRepositoryPolicyResponse_policyText,+ getRepositoryPolicyResponse_registryId,+ getRepositoryPolicyResponse_repositoryName,+ getRepositoryPolicyResponse_httpStatus,++ -- ** InitiateLayerUpload+ initiateLayerUpload_registryId,+ initiateLayerUpload_repositoryName,+ initiateLayerUploadResponse_partSize,+ initiateLayerUploadResponse_uploadId,+ initiateLayerUploadResponse_httpStatus,++ -- ** ListTagsForResource+ listTagsForResource_resourceArn,+ listTagsForResourceResponse_tags,+ listTagsForResourceResponse_httpStatus,++ -- ** PutImage+ putImage_imageDigest,+ putImage_imageManifestMediaType,+ putImage_imageTag,+ putImage_registryId,+ putImage_repositoryName,+ putImage_imageManifest,+ putImageResponse_image,+ putImageResponse_httpStatus,++ -- ** PutRegistryCatalogData+ putRegistryCatalogData_displayName,+ putRegistryCatalogDataResponse_httpStatus,+ putRegistryCatalogDataResponse_registryCatalogData,++ -- ** PutRepositoryCatalogData+ putRepositoryCatalogData_registryId,+ putRepositoryCatalogData_repositoryName,+ putRepositoryCatalogData_catalogData,+ putRepositoryCatalogDataResponse_catalogData,+ putRepositoryCatalogDataResponse_httpStatus,++ -- ** SetRepositoryPolicy+ setRepositoryPolicy_force,+ setRepositoryPolicy_registryId,+ setRepositoryPolicy_repositoryName,+ setRepositoryPolicy_policyText,+ setRepositoryPolicyResponse_policyText,+ setRepositoryPolicyResponse_registryId,+ setRepositoryPolicyResponse_repositoryName,+ setRepositoryPolicyResponse_httpStatus,++ -- ** TagResource+ tagResource_resourceArn,+ tagResource_tags,+ tagResourceResponse_httpStatus,++ -- ** UntagResource+ untagResource_resourceArn,+ untagResource_tagKeys,+ untagResourceResponse_httpStatus,++ -- ** UploadLayerPart+ uploadLayerPart_registryId,+ uploadLayerPart_repositoryName,+ uploadLayerPart_uploadId,+ uploadLayerPart_partFirstByte,+ uploadLayerPart_partLastByte,+ uploadLayerPart_layerPartBlob,+ uploadLayerPartResponse_lastByteReceived,+ uploadLayerPartResponse_registryId,+ uploadLayerPartResponse_repositoryName,+ uploadLayerPartResponse_uploadId,+ uploadLayerPartResponse_httpStatus,++ -- * Types++ -- ** AuthorizationData+ authorizationData_authorizationToken,+ authorizationData_expiresAt,++ -- ** Image+ image_imageId,+ image_imageManifest,+ image_imageManifestMediaType,+ image_registryId,+ image_repositoryName,++ -- ** ImageDetail+ imageDetail_artifactMediaType,+ imageDetail_imageDigest,+ imageDetail_imageManifestMediaType,+ imageDetail_imagePushedAt,+ imageDetail_imageSizeInBytes,+ imageDetail_imageTags,+ imageDetail_registryId,+ imageDetail_repositoryName,++ -- ** ImageFailure+ imageFailure_failureCode,+ imageFailure_failureReason,+ imageFailure_imageId,++ -- ** ImageIdentifier+ imageIdentifier_imageDigest,+ imageIdentifier_imageTag,++ -- ** ImageTagDetail+ imageTagDetail_createdAt,+ imageTagDetail_imageDetail,+ imageTagDetail_imageTag,++ -- ** Layer+ layer_layerAvailability,+ layer_layerDigest,+ layer_layerSize,+ layer_mediaType,++ -- ** LayerFailure+ layerFailure_failureCode,+ layerFailure_failureReason,+ layerFailure_layerDigest,++ -- ** ReferencedImageDetail+ referencedImageDetail_artifactMediaType,+ referencedImageDetail_imageDigest,+ referencedImageDetail_imageManifestMediaType,+ referencedImageDetail_imagePushedAt,+ referencedImageDetail_imageSizeInBytes,++ -- ** Registry+ registry_registryId,+ registry_registryArn,+ registry_registryUri,+ registry_verified,+ registry_aliases,++ -- ** RegistryAlias+ registryAlias_name,+ registryAlias_status,+ registryAlias_primaryRegistryAlias,+ registryAlias_defaultRegistryAlias,++ -- ** RegistryCatalogData+ registryCatalogData_displayName,++ -- ** Repository+ repository_createdAt,+ repository_registryId,+ repository_repositoryArn,+ repository_repositoryName,+ repository_repositoryUri,++ -- ** RepositoryCatalogData+ repositoryCatalogData_aboutText,+ repositoryCatalogData_architectures,+ repositoryCatalogData_description,+ repositoryCatalogData_logoUrl,+ repositoryCatalogData_marketplaceCertified,+ repositoryCatalogData_operatingSystems,+ repositoryCatalogData_usageText,++ -- ** RepositoryCatalogDataInput+ repositoryCatalogDataInput_aboutText,+ repositoryCatalogDataInput_architectures,+ repositoryCatalogDataInput_description,+ repositoryCatalogDataInput_logoImageBlob,+ repositoryCatalogDataInput_operatingSystems,+ repositoryCatalogDataInput_usageText,++ -- ** Tag+ tag_key,+ tag_value,+ )+where++import Amazonka.ECRPublic.BatchCheckLayerAvailability+import Amazonka.ECRPublic.BatchDeleteImage+import Amazonka.ECRPublic.CompleteLayerUpload+import Amazonka.ECRPublic.CreateRepository+import Amazonka.ECRPublic.DeleteRepository+import Amazonka.ECRPublic.DeleteRepositoryPolicy+import Amazonka.ECRPublic.DescribeImageTags+import Amazonka.ECRPublic.DescribeImages+import Amazonka.ECRPublic.DescribeRegistries+import Amazonka.ECRPublic.DescribeRepositories+import Amazonka.ECRPublic.GetAuthorizationToken+import Amazonka.ECRPublic.GetRegistryCatalogData+import Amazonka.ECRPublic.GetRepositoryCatalogData+import Amazonka.ECRPublic.GetRepositoryPolicy+import Amazonka.ECRPublic.InitiateLayerUpload+import Amazonka.ECRPublic.ListTagsForResource+import Amazonka.ECRPublic.PutImage+import Amazonka.ECRPublic.PutRegistryCatalogData+import Amazonka.ECRPublic.PutRepositoryCatalogData+import Amazonka.ECRPublic.SetRepositoryPolicy+import Amazonka.ECRPublic.TagResource+import Amazonka.ECRPublic.Types.AuthorizationData+import Amazonka.ECRPublic.Types.Image+import Amazonka.ECRPublic.Types.ImageDetail+import Amazonka.ECRPublic.Types.ImageFailure+import Amazonka.ECRPublic.Types.ImageIdentifier+import Amazonka.ECRPublic.Types.ImageTagDetail+import Amazonka.ECRPublic.Types.Layer+import Amazonka.ECRPublic.Types.LayerFailure+import Amazonka.ECRPublic.Types.ReferencedImageDetail+import Amazonka.ECRPublic.Types.Registry+import Amazonka.ECRPublic.Types.RegistryAlias+import Amazonka.ECRPublic.Types.RegistryCatalogData+import Amazonka.ECRPublic.Types.Repository+import Amazonka.ECRPublic.Types.RepositoryCatalogData+import Amazonka.ECRPublic.Types.RepositoryCatalogDataInput+import Amazonka.ECRPublic.Types.Tag+import Amazonka.ECRPublic.UntagResource+import Amazonka.ECRPublic.UploadLayerPart
+ gen/Amazonka/ECRPublic/ListTagsForResource.hs view
@@ -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.ECRPublic.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)+--+-- List the tags for an Amazon ECR Public resource.+module Amazonka.ECRPublic.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.ECRPublic.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'+ { -- | The Amazon Resource Name (ARN) that identifies the resource for which to+ -- list the tags. Currently, the supported resource is an Amazon ECR Public+ -- repository.+ 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' - The Amazon Resource Name (ARN) that identifies the resource for which to+-- list the tags. Currently, the supported resource is an Amazon ECR Public+-- repository.+newListTagsForResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ ListTagsForResource+newListTagsForResource pResourceArn_ =+ ListTagsForResource' {resourceArn = pResourceArn_}++-- | The Amazon Resource Name (ARN) that identifies the resource for which to+-- list the tags. Currently, the supported resource is an Amazon ECR Public+-- repository.+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.=# ( "SpencerFrontendService.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'+ { -- | The tags for the resource.+ 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' - The tags for the resource.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+ ListTagsForResourceResponse'+ { tags =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The tags for the resource.+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
+ gen/Amazonka/ECRPublic/PutImage.hs view
@@ -0,0 +1,266 @@+{-# 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.ECRPublic.PutImage+-- 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 or updates the image manifest and tags associated with an image.+--+-- When an image is pushed and all new image layers have been uploaded, the+-- PutImage API is called once to create or update the image manifest and+-- the tags associated with the image.+--+-- This operation is used by the Amazon ECR proxy and is not generally used+-- by customers for pulling and pushing images. In most cases, you should+-- use the @docker@ CLI to pull, tag, and push images.+module Amazonka.ECRPublic.PutImage+ ( -- * Creating a Request+ PutImage (..),+ newPutImage,++ -- * Request Lenses+ putImage_imageDigest,+ putImage_imageManifestMediaType,+ putImage_imageTag,+ putImage_registryId,+ putImage_repositoryName,+ putImage_imageManifest,++ -- * Destructuring the Response+ PutImageResponse (..),+ newPutImageResponse,++ -- * Response Lenses+ putImageResponse_image,+ putImageResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ECRPublic.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newPutImage' smart constructor.+data PutImage = PutImage'+ { -- | The image digest of the image manifest corresponding to the image.+ imageDigest :: Prelude.Maybe Prelude.Text,+ -- | The media type of the image manifest. If you push an image manifest that+ -- does not contain the @mediaType@ field, you must specify the+ -- @imageManifestMediaType@ in the request.+ imageManifestMediaType :: Prelude.Maybe Prelude.Text,+ -- | The tag to associate with the image. This parameter is required for+ -- images that use the Docker Image Manifest V2 Schema 2 or Open Container+ -- Initiative (OCI) formats.+ imageTag :: Prelude.Maybe Prelude.Text,+ -- | The AWS account ID associated with the public registry that contains the+ -- repository in which to put the image. If you do not specify a registry,+ -- the default public registry is assumed.+ registryId :: Prelude.Maybe Prelude.Text,+ -- | The name of the repository in which to put the image.+ repositoryName :: Prelude.Text,+ -- | The image manifest corresponding to the image to be uploaded.+ imageManifest :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutImage' 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:+--+-- 'imageDigest', 'putImage_imageDigest' - The image digest of the image manifest corresponding to the image.+--+-- 'imageManifestMediaType', 'putImage_imageManifestMediaType' - The media type of the image manifest. If you push an image manifest that+-- does not contain the @mediaType@ field, you must specify the+-- @imageManifestMediaType@ in the request.+--+-- 'imageTag', 'putImage_imageTag' - The tag to associate with the image. This parameter is required for+-- images that use the Docker Image Manifest V2 Schema 2 or Open Container+-- Initiative (OCI) formats.+--+-- 'registryId', 'putImage_registryId' - The AWS account ID associated with the public registry that contains the+-- repository in which to put the image. If you do not specify a registry,+-- the default public registry is assumed.+--+-- 'repositoryName', 'putImage_repositoryName' - The name of the repository in which to put the image.+--+-- 'imageManifest', 'putImage_imageManifest' - The image manifest corresponding to the image to be uploaded.+newPutImage ::+ -- | 'repositoryName'+ Prelude.Text ->+ -- | 'imageManifest'+ Prelude.Text ->+ PutImage+newPutImage pRepositoryName_ pImageManifest_ =+ PutImage'+ { imageDigest = Prelude.Nothing,+ imageManifestMediaType = Prelude.Nothing,+ imageTag = Prelude.Nothing,+ registryId = Prelude.Nothing,+ repositoryName = pRepositoryName_,+ imageManifest = pImageManifest_+ }++-- | The image digest of the image manifest corresponding to the image.+putImage_imageDigest :: Lens.Lens' PutImage (Prelude.Maybe Prelude.Text)+putImage_imageDigest = Lens.lens (\PutImage' {imageDigest} -> imageDigest) (\s@PutImage' {} a -> s {imageDigest = a} :: PutImage)++-- | The media type of the image manifest. If you push an image manifest that+-- does not contain the @mediaType@ field, you must specify the+-- @imageManifestMediaType@ in the request.+putImage_imageManifestMediaType :: Lens.Lens' PutImage (Prelude.Maybe Prelude.Text)+putImage_imageManifestMediaType = Lens.lens (\PutImage' {imageManifestMediaType} -> imageManifestMediaType) (\s@PutImage' {} a -> s {imageManifestMediaType = a} :: PutImage)++-- | The tag to associate with the image. This parameter is required for+-- images that use the Docker Image Manifest V2 Schema 2 or Open Container+-- Initiative (OCI) formats.+putImage_imageTag :: Lens.Lens' PutImage (Prelude.Maybe Prelude.Text)+putImage_imageTag = Lens.lens (\PutImage' {imageTag} -> imageTag) (\s@PutImage' {} a -> s {imageTag = a} :: PutImage)++-- | The AWS account ID associated with the public registry that contains the+-- repository in which to put the image. If you do not specify a registry,+-- the default public registry is assumed.+putImage_registryId :: Lens.Lens' PutImage (Prelude.Maybe Prelude.Text)+putImage_registryId = Lens.lens (\PutImage' {registryId} -> registryId) (\s@PutImage' {} a -> s {registryId = a} :: PutImage)++-- | The name of the repository in which to put the image.+putImage_repositoryName :: Lens.Lens' PutImage Prelude.Text+putImage_repositoryName = Lens.lens (\PutImage' {repositoryName} -> repositoryName) (\s@PutImage' {} a -> s {repositoryName = a} :: PutImage)++-- | The image manifest corresponding to the image to be uploaded.+putImage_imageManifest :: Lens.Lens' PutImage Prelude.Text+putImage_imageManifest = Lens.lens (\PutImage' {imageManifest} -> imageManifest) (\s@PutImage' {} a -> s {imageManifest = a} :: PutImage)++instance Core.AWSRequest PutImage where+ type AWSResponse PutImage = PutImageResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ PutImageResponse'+ Prelude.<$> (x Data..?> "image")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable PutImage where+ hashWithSalt _salt PutImage' {..} =+ _salt+ `Prelude.hashWithSalt` imageDigest+ `Prelude.hashWithSalt` imageManifestMediaType+ `Prelude.hashWithSalt` imageTag+ `Prelude.hashWithSalt` registryId+ `Prelude.hashWithSalt` repositoryName+ `Prelude.hashWithSalt` imageManifest++instance Prelude.NFData PutImage where+ rnf PutImage' {..} =+ Prelude.rnf imageDigest+ `Prelude.seq` Prelude.rnf imageManifestMediaType+ `Prelude.seq` Prelude.rnf imageTag+ `Prelude.seq` Prelude.rnf registryId+ `Prelude.seq` Prelude.rnf repositoryName+ `Prelude.seq` Prelude.rnf imageManifest++instance Data.ToHeaders PutImage where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "SpencerFrontendService.PutImage" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON PutImage where+ toJSON PutImage' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("imageDigest" Data..=) Prelude.<$> imageDigest,+ ("imageManifestMediaType" Data..=)+ Prelude.<$> imageManifestMediaType,+ ("imageTag" Data..=) Prelude.<$> imageTag,+ ("registryId" Data..=) Prelude.<$> registryId,+ Prelude.Just+ ("repositoryName" Data..= repositoryName),+ Prelude.Just+ ("imageManifest" Data..= imageManifest)+ ]+ )++instance Data.ToPath PutImage where+ toPath = Prelude.const "/"++instance Data.ToQuery PutImage where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPutImageResponse' smart constructor.+data PutImageResponse = PutImageResponse'+ { -- | Details of the image uploaded.+ image :: Prelude.Maybe Image,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutImageResponse' 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:+--+-- 'image', 'putImageResponse_image' - Details of the image uploaded.+--+-- 'httpStatus', 'putImageResponse_httpStatus' - The response's http status code.+newPutImageResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ PutImageResponse+newPutImageResponse pHttpStatus_ =+ PutImageResponse'+ { image = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Details of the image uploaded.+putImageResponse_image :: Lens.Lens' PutImageResponse (Prelude.Maybe Image)+putImageResponse_image = Lens.lens (\PutImageResponse' {image} -> image) (\s@PutImageResponse' {} a -> s {image = a} :: PutImageResponse)++-- | The response's http status code.+putImageResponse_httpStatus :: Lens.Lens' PutImageResponse Prelude.Int+putImageResponse_httpStatus = Lens.lens (\PutImageResponse' {httpStatus} -> httpStatus) (\s@PutImageResponse' {} a -> s {httpStatus = a} :: PutImageResponse)++instance Prelude.NFData PutImageResponse where+ rnf PutImageResponse' {..} =+ Prelude.rnf image+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ECRPublic/PutRegistryCatalogData.hs view
@@ -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.ECRPublic.PutRegistryCatalogData+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Create or updates the catalog data for a public registry.+module Amazonka.ECRPublic.PutRegistryCatalogData+ ( -- * Creating a Request+ PutRegistryCatalogData (..),+ newPutRegistryCatalogData,++ -- * Request Lenses+ putRegistryCatalogData_displayName,++ -- * Destructuring the Response+ PutRegistryCatalogDataResponse (..),+ newPutRegistryCatalogDataResponse,++ -- * Response Lenses+ putRegistryCatalogDataResponse_httpStatus,+ putRegistryCatalogDataResponse_registryCatalogData,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ECRPublic.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newPutRegistryCatalogData' smart constructor.+data PutRegistryCatalogData = PutRegistryCatalogData'+ { -- | The display name for a public registry. The display name is shown as the+ -- repository author in the Amazon ECR Public Gallery.+ --+ -- The registry display name is only publicly visible in the Amazon ECR+ -- Public Gallery for verified accounts.+ displayName :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutRegistryCatalogData' 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:+--+-- 'displayName', 'putRegistryCatalogData_displayName' - The display name for a public registry. The display name is shown as the+-- repository author in the Amazon ECR Public Gallery.+--+-- The registry display name is only publicly visible in the Amazon ECR+-- Public Gallery for verified accounts.+newPutRegistryCatalogData ::+ PutRegistryCatalogData+newPutRegistryCatalogData =+ PutRegistryCatalogData'+ { displayName =+ Prelude.Nothing+ }++-- | The display name for a public registry. The display name is shown as the+-- repository author in the Amazon ECR Public Gallery.+--+-- The registry display name is only publicly visible in the Amazon ECR+-- Public Gallery for verified accounts.+putRegistryCatalogData_displayName :: Lens.Lens' PutRegistryCatalogData (Prelude.Maybe Prelude.Text)+putRegistryCatalogData_displayName = Lens.lens (\PutRegistryCatalogData' {displayName} -> displayName) (\s@PutRegistryCatalogData' {} a -> s {displayName = a} :: PutRegistryCatalogData)++instance Core.AWSRequest PutRegistryCatalogData where+ type+ AWSResponse PutRegistryCatalogData =+ PutRegistryCatalogDataResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ PutRegistryCatalogDataResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "registryCatalogData")+ )++instance Prelude.Hashable PutRegistryCatalogData where+ hashWithSalt _salt PutRegistryCatalogData' {..} =+ _salt `Prelude.hashWithSalt` displayName++instance Prelude.NFData PutRegistryCatalogData where+ rnf PutRegistryCatalogData' {..} =+ Prelude.rnf displayName++instance Data.ToHeaders PutRegistryCatalogData where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "SpencerFrontendService.PutRegistryCatalogData" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON PutRegistryCatalogData where+ toJSON PutRegistryCatalogData' {..} =+ Data.object+ ( Prelude.catMaybes+ [("displayName" Data..=) Prelude.<$> displayName]+ )++instance Data.ToPath PutRegistryCatalogData where+ toPath = Prelude.const "/"++instance Data.ToQuery PutRegistryCatalogData where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPutRegistryCatalogDataResponse' smart constructor.+data PutRegistryCatalogDataResponse = PutRegistryCatalogDataResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The catalog data for the public registry.+ registryCatalogData :: RegistryCatalogData+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutRegistryCatalogDataResponse' 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', 'putRegistryCatalogDataResponse_httpStatus' - The response's http status code.+--+-- 'registryCatalogData', 'putRegistryCatalogDataResponse_registryCatalogData' - The catalog data for the public registry.+newPutRegistryCatalogDataResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'registryCatalogData'+ RegistryCatalogData ->+ PutRegistryCatalogDataResponse+newPutRegistryCatalogDataResponse+ pHttpStatus_+ pRegistryCatalogData_ =+ PutRegistryCatalogDataResponse'+ { httpStatus =+ pHttpStatus_,+ registryCatalogData = pRegistryCatalogData_+ }++-- | The response's http status code.+putRegistryCatalogDataResponse_httpStatus :: Lens.Lens' PutRegistryCatalogDataResponse Prelude.Int+putRegistryCatalogDataResponse_httpStatus = Lens.lens (\PutRegistryCatalogDataResponse' {httpStatus} -> httpStatus) (\s@PutRegistryCatalogDataResponse' {} a -> s {httpStatus = a} :: PutRegistryCatalogDataResponse)++-- | The catalog data for the public registry.+putRegistryCatalogDataResponse_registryCatalogData :: Lens.Lens' PutRegistryCatalogDataResponse RegistryCatalogData+putRegistryCatalogDataResponse_registryCatalogData = Lens.lens (\PutRegistryCatalogDataResponse' {registryCatalogData} -> registryCatalogData) (\s@PutRegistryCatalogDataResponse' {} a -> s {registryCatalogData = a} :: PutRegistryCatalogDataResponse)++instance+ Prelude.NFData+ PutRegistryCatalogDataResponse+ where+ rnf PutRegistryCatalogDataResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf registryCatalogData
+ gen/Amazonka/ECRPublic/PutRepositoryCatalogData.hs view
@@ -0,0 +1,218 @@+{-# 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.ECRPublic.PutRepositoryCatalogData+-- 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 or updates the catalog data for a repository in a public+-- registry.+module Amazonka.ECRPublic.PutRepositoryCatalogData+ ( -- * Creating a Request+ PutRepositoryCatalogData (..),+ newPutRepositoryCatalogData,++ -- * Request Lenses+ putRepositoryCatalogData_registryId,+ putRepositoryCatalogData_repositoryName,+ putRepositoryCatalogData_catalogData,++ -- * Destructuring the Response+ PutRepositoryCatalogDataResponse (..),+ newPutRepositoryCatalogDataResponse,++ -- * Response Lenses+ putRepositoryCatalogDataResponse_catalogData,+ putRepositoryCatalogDataResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ECRPublic.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newPutRepositoryCatalogData' smart constructor.+data PutRepositoryCatalogData = PutRepositoryCatalogData'+ { -- | The AWS account ID associated with the public registry the repository is+ -- in. If you do not specify a registry, the default public registry is+ -- assumed.+ registryId :: Prelude.Maybe Prelude.Text,+ -- | The name of the repository to create or update the catalog data for.+ repositoryName :: Prelude.Text,+ -- | An object containing the catalog data for a repository. This data is+ -- publicly visible in the Amazon ECR Public Gallery.+ catalogData :: RepositoryCatalogDataInput+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutRepositoryCatalogData' 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:+--+-- 'registryId', 'putRepositoryCatalogData_registryId' - The AWS account ID associated with the public registry the repository is+-- in. If you do not specify a registry, the default public registry is+-- assumed.+--+-- 'repositoryName', 'putRepositoryCatalogData_repositoryName' - The name of the repository to create or update the catalog data for.+--+-- 'catalogData', 'putRepositoryCatalogData_catalogData' - An object containing the catalog data for a repository. This data is+-- publicly visible in the Amazon ECR Public Gallery.+newPutRepositoryCatalogData ::+ -- | 'repositoryName'+ Prelude.Text ->+ -- | 'catalogData'+ RepositoryCatalogDataInput ->+ PutRepositoryCatalogData+newPutRepositoryCatalogData+ pRepositoryName_+ pCatalogData_ =+ PutRepositoryCatalogData'+ { registryId =+ Prelude.Nothing,+ repositoryName = pRepositoryName_,+ catalogData = pCatalogData_+ }++-- | The AWS account ID associated with the public registry the repository is+-- in. If you do not specify a registry, the default public registry is+-- assumed.+putRepositoryCatalogData_registryId :: Lens.Lens' PutRepositoryCatalogData (Prelude.Maybe Prelude.Text)+putRepositoryCatalogData_registryId = Lens.lens (\PutRepositoryCatalogData' {registryId} -> registryId) (\s@PutRepositoryCatalogData' {} a -> s {registryId = a} :: PutRepositoryCatalogData)++-- | The name of the repository to create or update the catalog data for.+putRepositoryCatalogData_repositoryName :: Lens.Lens' PutRepositoryCatalogData Prelude.Text+putRepositoryCatalogData_repositoryName = Lens.lens (\PutRepositoryCatalogData' {repositoryName} -> repositoryName) (\s@PutRepositoryCatalogData' {} a -> s {repositoryName = a} :: PutRepositoryCatalogData)++-- | An object containing the catalog data for a repository. This data is+-- publicly visible in the Amazon ECR Public Gallery.+putRepositoryCatalogData_catalogData :: Lens.Lens' PutRepositoryCatalogData RepositoryCatalogDataInput+putRepositoryCatalogData_catalogData = Lens.lens (\PutRepositoryCatalogData' {catalogData} -> catalogData) (\s@PutRepositoryCatalogData' {} a -> s {catalogData = a} :: PutRepositoryCatalogData)++instance Core.AWSRequest PutRepositoryCatalogData where+ type+ AWSResponse PutRepositoryCatalogData =+ PutRepositoryCatalogDataResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ PutRepositoryCatalogDataResponse'+ Prelude.<$> (x Data..?> "catalogData")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable PutRepositoryCatalogData where+ hashWithSalt _salt PutRepositoryCatalogData' {..} =+ _salt+ `Prelude.hashWithSalt` registryId+ `Prelude.hashWithSalt` repositoryName+ `Prelude.hashWithSalt` catalogData++instance Prelude.NFData PutRepositoryCatalogData where+ rnf PutRepositoryCatalogData' {..} =+ Prelude.rnf registryId+ `Prelude.seq` Prelude.rnf repositoryName+ `Prelude.seq` Prelude.rnf catalogData++instance Data.ToHeaders PutRepositoryCatalogData where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "SpencerFrontendService.PutRepositoryCatalogData" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON PutRepositoryCatalogData where+ toJSON PutRepositoryCatalogData' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("registryId" Data..=) Prelude.<$> registryId,+ Prelude.Just+ ("repositoryName" Data..= repositoryName),+ Prelude.Just ("catalogData" Data..= catalogData)+ ]+ )++instance Data.ToPath PutRepositoryCatalogData where+ toPath = Prelude.const "/"++instance Data.ToQuery PutRepositoryCatalogData where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPutRepositoryCatalogDataResponse' smart constructor.+data PutRepositoryCatalogDataResponse = PutRepositoryCatalogDataResponse'+ { -- | The catalog data for the repository.+ catalogData :: Prelude.Maybe RepositoryCatalogData,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutRepositoryCatalogDataResponse' 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:+--+-- 'catalogData', 'putRepositoryCatalogDataResponse_catalogData' - The catalog data for the repository.+--+-- 'httpStatus', 'putRepositoryCatalogDataResponse_httpStatus' - The response's http status code.+newPutRepositoryCatalogDataResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ PutRepositoryCatalogDataResponse+newPutRepositoryCatalogDataResponse pHttpStatus_ =+ PutRepositoryCatalogDataResponse'+ { catalogData =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The catalog data for the repository.+putRepositoryCatalogDataResponse_catalogData :: Lens.Lens' PutRepositoryCatalogDataResponse (Prelude.Maybe RepositoryCatalogData)+putRepositoryCatalogDataResponse_catalogData = Lens.lens (\PutRepositoryCatalogDataResponse' {catalogData} -> catalogData) (\s@PutRepositoryCatalogDataResponse' {} a -> s {catalogData = a} :: PutRepositoryCatalogDataResponse)++-- | The response's http status code.+putRepositoryCatalogDataResponse_httpStatus :: Lens.Lens' PutRepositoryCatalogDataResponse Prelude.Int+putRepositoryCatalogDataResponse_httpStatus = Lens.lens (\PutRepositoryCatalogDataResponse' {httpStatus} -> httpStatus) (\s@PutRepositoryCatalogDataResponse' {} a -> s {httpStatus = a} :: PutRepositoryCatalogDataResponse)++instance+ Prelude.NFData+ PutRepositoryCatalogDataResponse+ where+ rnf PutRepositoryCatalogDataResponse' {..} =+ Prelude.rnf catalogData+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ECRPublic/SetRepositoryPolicy.hs view
@@ -0,0 +1,266 @@+{-# 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.ECRPublic.SetRepositoryPolicy+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Applies a repository policy to the specified public repository to+-- control access permissions. For more information, see+-- <https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-policies.html Amazon ECR Repository Policies>+-- in the /Amazon Elastic Container Registry User Guide/.+module Amazonka.ECRPublic.SetRepositoryPolicy+ ( -- * Creating a Request+ SetRepositoryPolicy (..),+ newSetRepositoryPolicy,++ -- * Request Lenses+ setRepositoryPolicy_force,+ setRepositoryPolicy_registryId,+ setRepositoryPolicy_repositoryName,+ setRepositoryPolicy_policyText,++ -- * Destructuring the Response+ SetRepositoryPolicyResponse (..),+ newSetRepositoryPolicyResponse,++ -- * Response Lenses+ setRepositoryPolicyResponse_policyText,+ setRepositoryPolicyResponse_registryId,+ setRepositoryPolicyResponse_repositoryName,+ setRepositoryPolicyResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ECRPublic.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newSetRepositoryPolicy' smart constructor.+data SetRepositoryPolicy = SetRepositoryPolicy'+ { -- | If the policy you are attempting to set on a repository policy would+ -- prevent you from setting another policy in the future, you must force+ -- the SetRepositoryPolicy operation. This is intended to prevent+ -- accidental repository lock outs.+ force :: Prelude.Maybe Prelude.Bool,+ -- | The AWS account ID associated with the registry that contains the+ -- repository. If you do not specify a registry, the default public+ -- registry is assumed.+ registryId :: Prelude.Maybe Prelude.Text,+ -- | The name of the repository to receive the policy.+ repositoryName :: Prelude.Text,+ -- | The JSON repository policy text to apply to the repository. For more+ -- information, see+ -- <https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-policy-examples.html Amazon ECR Repository Policies>+ -- in the /Amazon Elastic Container Registry User Guide/.+ policyText :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SetRepositoryPolicy' 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:+--+-- 'force', 'setRepositoryPolicy_force' - If the policy you are attempting to set on a repository policy would+-- prevent you from setting another policy in the future, you must force+-- the SetRepositoryPolicy operation. This is intended to prevent+-- accidental repository lock outs.+--+-- 'registryId', 'setRepositoryPolicy_registryId' - The AWS account ID associated with the registry that contains the+-- repository. If you do not specify a registry, the default public+-- registry is assumed.+--+-- 'repositoryName', 'setRepositoryPolicy_repositoryName' - The name of the repository to receive the policy.+--+-- 'policyText', 'setRepositoryPolicy_policyText' - The JSON repository policy text to apply to the repository. For more+-- information, see+-- <https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-policy-examples.html Amazon ECR Repository Policies>+-- in the /Amazon Elastic Container Registry User Guide/.+newSetRepositoryPolicy ::+ -- | 'repositoryName'+ Prelude.Text ->+ -- | 'policyText'+ Prelude.Text ->+ SetRepositoryPolicy+newSetRepositoryPolicy pRepositoryName_ pPolicyText_ =+ SetRepositoryPolicy'+ { force = Prelude.Nothing,+ registryId = Prelude.Nothing,+ repositoryName = pRepositoryName_,+ policyText = pPolicyText_+ }++-- | If the policy you are attempting to set on a repository policy would+-- prevent you from setting another policy in the future, you must force+-- the SetRepositoryPolicy operation. This is intended to prevent+-- accidental repository lock outs.+setRepositoryPolicy_force :: Lens.Lens' SetRepositoryPolicy (Prelude.Maybe Prelude.Bool)+setRepositoryPolicy_force = Lens.lens (\SetRepositoryPolicy' {force} -> force) (\s@SetRepositoryPolicy' {} a -> s {force = a} :: SetRepositoryPolicy)++-- | The AWS account ID associated with the registry that contains the+-- repository. If you do not specify a registry, the default public+-- registry is assumed.+setRepositoryPolicy_registryId :: Lens.Lens' SetRepositoryPolicy (Prelude.Maybe Prelude.Text)+setRepositoryPolicy_registryId = Lens.lens (\SetRepositoryPolicy' {registryId} -> registryId) (\s@SetRepositoryPolicy' {} a -> s {registryId = a} :: SetRepositoryPolicy)++-- | The name of the repository to receive the policy.+setRepositoryPolicy_repositoryName :: Lens.Lens' SetRepositoryPolicy Prelude.Text+setRepositoryPolicy_repositoryName = Lens.lens (\SetRepositoryPolicy' {repositoryName} -> repositoryName) (\s@SetRepositoryPolicy' {} a -> s {repositoryName = a} :: SetRepositoryPolicy)++-- | The JSON repository policy text to apply to the repository. For more+-- information, see+-- <https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-policy-examples.html Amazon ECR Repository Policies>+-- in the /Amazon Elastic Container Registry User Guide/.+setRepositoryPolicy_policyText :: Lens.Lens' SetRepositoryPolicy Prelude.Text+setRepositoryPolicy_policyText = Lens.lens (\SetRepositoryPolicy' {policyText} -> policyText) (\s@SetRepositoryPolicy' {} a -> s {policyText = a} :: SetRepositoryPolicy)++instance Core.AWSRequest SetRepositoryPolicy where+ type+ AWSResponse SetRepositoryPolicy =+ SetRepositoryPolicyResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ SetRepositoryPolicyResponse'+ Prelude.<$> (x Data..?> "policyText")+ Prelude.<*> (x Data..?> "registryId")+ Prelude.<*> (x Data..?> "repositoryName")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable SetRepositoryPolicy where+ hashWithSalt _salt SetRepositoryPolicy' {..} =+ _salt+ `Prelude.hashWithSalt` force+ `Prelude.hashWithSalt` registryId+ `Prelude.hashWithSalt` repositoryName+ `Prelude.hashWithSalt` policyText++instance Prelude.NFData SetRepositoryPolicy where+ rnf SetRepositoryPolicy' {..} =+ Prelude.rnf force+ `Prelude.seq` Prelude.rnf registryId+ `Prelude.seq` Prelude.rnf repositoryName+ `Prelude.seq` Prelude.rnf policyText++instance Data.ToHeaders SetRepositoryPolicy where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "SpencerFrontendService.SetRepositoryPolicy" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON SetRepositoryPolicy where+ toJSON SetRepositoryPolicy' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("force" Data..=) Prelude.<$> force,+ ("registryId" Data..=) Prelude.<$> registryId,+ Prelude.Just+ ("repositoryName" Data..= repositoryName),+ Prelude.Just ("policyText" Data..= policyText)+ ]+ )++instance Data.ToPath SetRepositoryPolicy where+ toPath = Prelude.const "/"++instance Data.ToQuery SetRepositoryPolicy where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newSetRepositoryPolicyResponse' smart constructor.+data SetRepositoryPolicyResponse = SetRepositoryPolicyResponse'+ { -- | The JSON repository policy text applied to the repository.+ policyText :: Prelude.Maybe Prelude.Text,+ -- | The registry ID associated with the request.+ registryId :: Prelude.Maybe Prelude.Text,+ -- | The repository name associated with the request.+ repositoryName :: 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 'SetRepositoryPolicyResponse' 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:+--+-- 'policyText', 'setRepositoryPolicyResponse_policyText' - The JSON repository policy text applied to the repository.+--+-- 'registryId', 'setRepositoryPolicyResponse_registryId' - The registry ID associated with the request.+--+-- 'repositoryName', 'setRepositoryPolicyResponse_repositoryName' - The repository name associated with the request.+--+-- 'httpStatus', 'setRepositoryPolicyResponse_httpStatus' - The response's http status code.+newSetRepositoryPolicyResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ SetRepositoryPolicyResponse+newSetRepositoryPolicyResponse pHttpStatus_ =+ SetRepositoryPolicyResponse'+ { policyText =+ Prelude.Nothing,+ registryId = Prelude.Nothing,+ repositoryName = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The JSON repository policy text applied to the repository.+setRepositoryPolicyResponse_policyText :: Lens.Lens' SetRepositoryPolicyResponse (Prelude.Maybe Prelude.Text)+setRepositoryPolicyResponse_policyText = Lens.lens (\SetRepositoryPolicyResponse' {policyText} -> policyText) (\s@SetRepositoryPolicyResponse' {} a -> s {policyText = a} :: SetRepositoryPolicyResponse)++-- | The registry ID associated with the request.+setRepositoryPolicyResponse_registryId :: Lens.Lens' SetRepositoryPolicyResponse (Prelude.Maybe Prelude.Text)+setRepositoryPolicyResponse_registryId = Lens.lens (\SetRepositoryPolicyResponse' {registryId} -> registryId) (\s@SetRepositoryPolicyResponse' {} a -> s {registryId = a} :: SetRepositoryPolicyResponse)++-- | The repository name associated with the request.+setRepositoryPolicyResponse_repositoryName :: Lens.Lens' SetRepositoryPolicyResponse (Prelude.Maybe Prelude.Text)+setRepositoryPolicyResponse_repositoryName = Lens.lens (\SetRepositoryPolicyResponse' {repositoryName} -> repositoryName) (\s@SetRepositoryPolicyResponse' {} a -> s {repositoryName = a} :: SetRepositoryPolicyResponse)++-- | The response's http status code.+setRepositoryPolicyResponse_httpStatus :: Lens.Lens' SetRepositoryPolicyResponse Prelude.Int+setRepositoryPolicyResponse_httpStatus = Lens.lens (\SetRepositoryPolicyResponse' {httpStatus} -> httpStatus) (\s@SetRepositoryPolicyResponse' {} a -> s {httpStatus = a} :: SetRepositoryPolicyResponse)++instance Prelude.NFData SetRepositoryPolicyResponse where+ rnf SetRepositoryPolicyResponse' {..} =+ Prelude.rnf policyText+ `Prelude.seq` Prelude.rnf registryId+ `Prelude.seq` Prelude.rnf repositoryName+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ECRPublic/TagResource.hs view
@@ -0,0 +1,180 @@+{-# 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.ECRPublic.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)+--+-- Associates the specified tags to a resource with the specified+-- @resourceArn@. If existing tags on a resource are not specified in the+-- request parameters, they are not changed. When a resource is deleted,+-- the tags associated with that resource are deleted as well.+module Amazonka.ECRPublic.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.ECRPublic.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'+ { -- | The Amazon Resource Name (ARN) of the resource to which to add tags.+ -- Currently, the supported resource is an Amazon ECR Public repository.+ resourceArn :: Prelude.Text,+ -- | The tags to add to the resource. A tag is an array of key-value pairs.+ -- Tag keys can have a maximum character length of 128 characters, and tag+ -- values can have a maximum length of 256 characters.+ 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' - The Amazon Resource Name (ARN) of the resource to which to add tags.+-- Currently, the supported resource is an Amazon ECR Public repository.+--+-- 'tags', 'tagResource_tags' - The tags to add to the resource. A tag is an array of key-value pairs.+-- Tag keys can have a maximum character length of 128 characters, and tag+-- values can have a maximum length of 256 characters.+newTagResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ TagResource+newTagResource pResourceArn_ =+ TagResource'+ { resourceArn = pResourceArn_,+ tags = Prelude.mempty+ }++-- | The Amazon Resource Name (ARN) of the resource to which to add tags.+-- Currently, the supported resource is an Amazon ECR Public repository.+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++-- | The tags to add to the resource. A tag is an array of key-value pairs.+-- Tag keys can have a maximum character length of 128 characters, and tag+-- values can have a maximum length of 256 characters.+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.=# ( "SpencerFrontendService.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
+ gen/Amazonka/ECRPublic/Types.hs view
@@ -0,0 +1,460 @@+{-# 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.ECRPublic.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.ECRPublic.Types+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ _EmptyUploadException,+ _ImageAlreadyExistsException,+ _ImageDigestDoesNotMatchException,+ _ImageNotFoundException,+ _ImageTagAlreadyExistsException,+ _InvalidLayerException,+ _InvalidLayerPartException,+ _InvalidParameterException,+ _InvalidTagParameterException,+ _LayerAlreadyExistsException,+ _LayerPartTooSmallException,+ _LayersNotFoundException,+ _LimitExceededException,+ _ReferencedImagesNotFoundException,+ _RegistryNotFoundException,+ _RepositoryAlreadyExistsException,+ _RepositoryNotEmptyException,+ _RepositoryNotFoundException,+ _RepositoryPolicyNotFoundException,+ _ServerException,+ _TooManyTagsException,+ _UnsupportedCommandException,+ _UploadNotFoundException,++ -- * ImageFailureCode+ ImageFailureCode (..),++ -- * LayerAvailability+ LayerAvailability (..),++ -- * LayerFailureCode+ LayerFailureCode (..),++ -- * RegistryAliasStatus+ RegistryAliasStatus (..),++ -- * AuthorizationData+ AuthorizationData (..),+ newAuthorizationData,+ authorizationData_authorizationToken,+ authorizationData_expiresAt,++ -- * Image+ Image (..),+ newImage,+ image_imageId,+ image_imageManifest,+ image_imageManifestMediaType,+ image_registryId,+ image_repositoryName,++ -- * ImageDetail+ ImageDetail (..),+ newImageDetail,+ imageDetail_artifactMediaType,+ imageDetail_imageDigest,+ imageDetail_imageManifestMediaType,+ imageDetail_imagePushedAt,+ imageDetail_imageSizeInBytes,+ imageDetail_imageTags,+ imageDetail_registryId,+ imageDetail_repositoryName,++ -- * ImageFailure+ ImageFailure (..),+ newImageFailure,+ imageFailure_failureCode,+ imageFailure_failureReason,+ imageFailure_imageId,++ -- * ImageIdentifier+ ImageIdentifier (..),+ newImageIdentifier,+ imageIdentifier_imageDigest,+ imageIdentifier_imageTag,++ -- * ImageTagDetail+ ImageTagDetail (..),+ newImageTagDetail,+ imageTagDetail_createdAt,+ imageTagDetail_imageDetail,+ imageTagDetail_imageTag,++ -- * Layer+ Layer (..),+ newLayer,+ layer_layerAvailability,+ layer_layerDigest,+ layer_layerSize,+ layer_mediaType,++ -- * LayerFailure+ LayerFailure (..),+ newLayerFailure,+ layerFailure_failureCode,+ layerFailure_failureReason,+ layerFailure_layerDigest,++ -- * ReferencedImageDetail+ ReferencedImageDetail (..),+ newReferencedImageDetail,+ referencedImageDetail_artifactMediaType,+ referencedImageDetail_imageDigest,+ referencedImageDetail_imageManifestMediaType,+ referencedImageDetail_imagePushedAt,+ referencedImageDetail_imageSizeInBytes,++ -- * Registry+ Registry (..),+ newRegistry,+ registry_registryId,+ registry_registryArn,+ registry_registryUri,+ registry_verified,+ registry_aliases,++ -- * RegistryAlias+ RegistryAlias (..),+ newRegistryAlias,+ registryAlias_name,+ registryAlias_status,+ registryAlias_primaryRegistryAlias,+ registryAlias_defaultRegistryAlias,++ -- * RegistryCatalogData+ RegistryCatalogData (..),+ newRegistryCatalogData,+ registryCatalogData_displayName,++ -- * Repository+ Repository (..),+ newRepository,+ repository_createdAt,+ repository_registryId,+ repository_repositoryArn,+ repository_repositoryName,+ repository_repositoryUri,++ -- * RepositoryCatalogData+ RepositoryCatalogData (..),+ newRepositoryCatalogData,+ repositoryCatalogData_aboutText,+ repositoryCatalogData_architectures,+ repositoryCatalogData_description,+ repositoryCatalogData_logoUrl,+ repositoryCatalogData_marketplaceCertified,+ repositoryCatalogData_operatingSystems,+ repositoryCatalogData_usageText,++ -- * RepositoryCatalogDataInput+ RepositoryCatalogDataInput (..),+ newRepositoryCatalogDataInput,+ repositoryCatalogDataInput_aboutText,+ repositoryCatalogDataInput_architectures,+ repositoryCatalogDataInput_description,+ repositoryCatalogDataInput_logoImageBlob,+ repositoryCatalogDataInput_operatingSystems,+ repositoryCatalogDataInput_usageText,++ -- * Tag+ Tag (..),+ newTag,+ tag_key,+ tag_value,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.ECRPublic.Types.AuthorizationData+import Amazonka.ECRPublic.Types.Image+import Amazonka.ECRPublic.Types.ImageDetail+import Amazonka.ECRPublic.Types.ImageFailure+import Amazonka.ECRPublic.Types.ImageFailureCode+import Amazonka.ECRPublic.Types.ImageIdentifier+import Amazonka.ECRPublic.Types.ImageTagDetail+import Amazonka.ECRPublic.Types.Layer+import Amazonka.ECRPublic.Types.LayerAvailability+import Amazonka.ECRPublic.Types.LayerFailure+import Amazonka.ECRPublic.Types.LayerFailureCode+import Amazonka.ECRPublic.Types.ReferencedImageDetail+import Amazonka.ECRPublic.Types.Registry+import Amazonka.ECRPublic.Types.RegistryAlias+import Amazonka.ECRPublic.Types.RegistryAliasStatus+import Amazonka.ECRPublic.Types.RegistryCatalogData+import Amazonka.ECRPublic.Types.Repository+import Amazonka.ECRPublic.Types.RepositoryCatalogData+import Amazonka.ECRPublic.Types.RepositoryCatalogDataInput+import Amazonka.ECRPublic.Types.Tag+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2020-10-30@ of the Amazon Elastic Container Registry Public SDK configuration.+defaultService :: Core.Service+defaultService =+ Core.Service+ { Core.abbrev = "ECRPublic",+ Core.signer = Sign.v4,+ Core.endpointPrefix = "api.ecr-public",+ Core.signingName = "ecr-public",+ Core.version = "2020-10-30",+ Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+ Core.endpoint = Core.defaultEndpoint defaultService,+ Core.timeout = Prelude.Just 70,+ Core.check = Core.statusSuccess,+ Core.error = Core.parseJSONError "ECRPublic",+ 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++-- | The specified layer upload does not contain any layer parts.+_EmptyUploadException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_EmptyUploadException =+ Core._MatchServiceError+ defaultService+ "EmptyUploadException"++-- | The specified image has already been pushed, and there were no changes+-- to the manifest or image tag after the last push.+_ImageAlreadyExistsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ImageAlreadyExistsException =+ Core._MatchServiceError+ defaultService+ "ImageAlreadyExistsException"++-- | The specified image digest does not match the digest that Amazon ECR+-- calculated for the image.+_ImageDigestDoesNotMatchException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ImageDigestDoesNotMatchException =+ Core._MatchServiceError+ defaultService+ "ImageDigestDoesNotMatchException"++-- | The image requested does not exist in the specified repository.+_ImageNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ImageNotFoundException =+ Core._MatchServiceError+ defaultService+ "ImageNotFoundException"++-- | The specified image is tagged with a tag that already exists. The+-- repository is configured for tag immutability.+_ImageTagAlreadyExistsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ImageTagAlreadyExistsException =+ Core._MatchServiceError+ defaultService+ "ImageTagAlreadyExistsException"++-- | The layer digest calculation performed by Amazon ECR upon receipt of the+-- image layer does not match the digest specified.+_InvalidLayerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidLayerException =+ Core._MatchServiceError+ defaultService+ "InvalidLayerException"++-- | The layer part size is not valid, or the first byte specified is not+-- consecutive to the last byte of a previous layer part upload.+_InvalidLayerPartException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidLayerPartException =+ Core._MatchServiceError+ defaultService+ "InvalidLayerPartException"++-- | The specified parameter is invalid. Review the available parameters for+-- the API request.+_InvalidParameterException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidParameterException =+ Core._MatchServiceError+ defaultService+ "InvalidParameterException"++-- | An invalid parameter has been specified. Tag keys can have a maximum+-- character length of 128 characters, and tag values can have a maximum+-- length of 256 characters.+_InvalidTagParameterException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidTagParameterException =+ Core._MatchServiceError+ defaultService+ "InvalidTagParameterException"++-- | The image layer already exists in the associated repository.+_LayerAlreadyExistsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_LayerAlreadyExistsException =+ Core._MatchServiceError+ defaultService+ "LayerAlreadyExistsException"++-- | Layer parts must be at least 5 MiB in size.+_LayerPartTooSmallException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_LayerPartTooSmallException =+ Core._MatchServiceError+ defaultService+ "LayerPartTooSmallException"++-- | The specified layers could not be found, or the specified layer is not+-- valid for this repository.+_LayersNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_LayersNotFoundException =+ Core._MatchServiceError+ defaultService+ "LayersNotFoundException"++-- | The operation did not succeed because it would have exceeded a service+-- limit for your account. For more information, see+-- <https://docs.aws.amazon.com/AmazonECR/latest/userguide/service-quotas.html Amazon ECR Service Quotas>+-- in the Amazon Elastic Container Registry User Guide.+_LimitExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_LimitExceededException =+ Core._MatchServiceError+ defaultService+ "LimitExceededException"++-- | The manifest list is referencing an image that does not exist.+_ReferencedImagesNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ReferencedImagesNotFoundException =+ Core._MatchServiceError+ defaultService+ "ReferencedImagesNotFoundException"++-- | The registry does not exist.+_RegistryNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_RegistryNotFoundException =+ Core._MatchServiceError+ defaultService+ "RegistryNotFoundException"++-- | The specified repository already exists in the specified registry.+_RepositoryAlreadyExistsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_RepositoryAlreadyExistsException =+ Core._MatchServiceError+ defaultService+ "RepositoryAlreadyExistsException"++-- | The specified repository contains images. To delete a repository that+-- contains images, you must force the deletion with the @force@ parameter.+_RepositoryNotEmptyException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_RepositoryNotEmptyException =+ Core._MatchServiceError+ defaultService+ "RepositoryNotEmptyException"++-- | The specified repository could not be found. Check the spelling of the+-- specified repository and ensure that you are performing operations on+-- the correct registry.+_RepositoryNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_RepositoryNotFoundException =+ Core._MatchServiceError+ defaultService+ "RepositoryNotFoundException"++-- | The specified repository and registry combination does not have an+-- associated repository policy.+_RepositoryPolicyNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_RepositoryPolicyNotFoundException =+ Core._MatchServiceError+ defaultService+ "RepositoryPolicyNotFoundException"++-- | These errors are usually caused by a server-side issue.+_ServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServerException =+ Core._MatchServiceError+ defaultService+ "ServerException"++-- | The list of tags on the repository is over the limit. The maximum number+-- of tags that can be applied to a repository is 50.+_TooManyTagsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_TooManyTagsException =+ Core._MatchServiceError+ defaultService+ "TooManyTagsException"++-- | The action is not supported in this Region.+_UnsupportedCommandException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_UnsupportedCommandException =+ Core._MatchServiceError+ defaultService+ "UnsupportedCommandException"++-- | The upload could not be found, or the specified upload ID is not valid+-- for this repository.+_UploadNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_UploadNotFoundException =+ Core._MatchServiceError+ defaultService+ "UploadNotFoundException"
+ gen/Amazonka/ECRPublic/Types/AuthorizationData.hs view
@@ -0,0 +1,98 @@+{-# 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.ECRPublic.Types.AuthorizationData+-- 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.ECRPublic.Types.AuthorizationData 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++-- | An authorization token data object that corresponds to a public+-- registry.+--+-- /See:/ 'newAuthorizationData' smart constructor.+data AuthorizationData = AuthorizationData'+ { -- | A base64-encoded string that contains authorization data for a public+ -- Amazon ECR registry. When the string is decoded, it is presented in the+ -- format @user:password@ for public registry authentication using+ -- @docker login@.+ authorizationToken :: Prelude.Maybe Prelude.Text,+ -- | The Unix time in seconds and milliseconds when the authorization token+ -- expires. Authorization tokens are valid for 12 hours.+ expiresAt :: Prelude.Maybe Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AuthorizationData' 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:+--+-- 'authorizationToken', 'authorizationData_authorizationToken' - A base64-encoded string that contains authorization data for a public+-- Amazon ECR registry. When the string is decoded, it is presented in the+-- format @user:password@ for public registry authentication using+-- @docker login@.+--+-- 'expiresAt', 'authorizationData_expiresAt' - The Unix time in seconds and milliseconds when the authorization token+-- expires. Authorization tokens are valid for 12 hours.+newAuthorizationData ::+ AuthorizationData+newAuthorizationData =+ AuthorizationData'+ { authorizationToken =+ Prelude.Nothing,+ expiresAt = Prelude.Nothing+ }++-- | A base64-encoded string that contains authorization data for a public+-- Amazon ECR registry. When the string is decoded, it is presented in the+-- format @user:password@ for public registry authentication using+-- @docker login@.+authorizationData_authorizationToken :: Lens.Lens' AuthorizationData (Prelude.Maybe Prelude.Text)+authorizationData_authorizationToken = Lens.lens (\AuthorizationData' {authorizationToken} -> authorizationToken) (\s@AuthorizationData' {} a -> s {authorizationToken = a} :: AuthorizationData)++-- | The Unix time in seconds and milliseconds when the authorization token+-- expires. Authorization tokens are valid for 12 hours.+authorizationData_expiresAt :: Lens.Lens' AuthorizationData (Prelude.Maybe Prelude.UTCTime)+authorizationData_expiresAt = Lens.lens (\AuthorizationData' {expiresAt} -> expiresAt) (\s@AuthorizationData' {} a -> s {expiresAt = a} :: AuthorizationData) Prelude.. Lens.mapping Data._Time++instance Data.FromJSON AuthorizationData where+ parseJSON =+ Data.withObject+ "AuthorizationData"+ ( \x ->+ AuthorizationData'+ Prelude.<$> (x Data..:? "authorizationToken")+ Prelude.<*> (x Data..:? "expiresAt")+ )++instance Prelude.Hashable AuthorizationData where+ hashWithSalt _salt AuthorizationData' {..} =+ _salt+ `Prelude.hashWithSalt` authorizationToken+ `Prelude.hashWithSalt` expiresAt++instance Prelude.NFData AuthorizationData where+ rnf AuthorizationData' {..} =+ Prelude.rnf authorizationToken+ `Prelude.seq` Prelude.rnf expiresAt
+ gen/Amazonka/ECRPublic/Types/Image.hs view
@@ -0,0 +1,124 @@+{-# 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.ECRPublic.Types.Image+-- 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.ECRPublic.Types.Image where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ECRPublic.Types.ImageIdentifier+import qualified Amazonka.Prelude as Prelude++-- | An object representing an Amazon ECR image.+--+-- /See:/ 'newImage' smart constructor.+data Image = Image'+ { -- | An object containing the image tag and image digest associated with an+ -- image.+ imageId :: Prelude.Maybe ImageIdentifier,+ -- | The image manifest associated with the image.+ imageManifest :: Prelude.Maybe Prelude.Text,+ -- | The manifest media type of the image.+ imageManifestMediaType :: Prelude.Maybe Prelude.Text,+ -- | The AWS account ID associated with the registry containing the image.+ registryId :: Prelude.Maybe Prelude.Text,+ -- | The name of the repository associated with the image.+ repositoryName :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Image' 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:+--+-- 'imageId', 'image_imageId' - An object containing the image tag and image digest associated with an+-- image.+--+-- 'imageManifest', 'image_imageManifest' - The image manifest associated with the image.+--+-- 'imageManifestMediaType', 'image_imageManifestMediaType' - The manifest media type of the image.+--+-- 'registryId', 'image_registryId' - The AWS account ID associated with the registry containing the image.+--+-- 'repositoryName', 'image_repositoryName' - The name of the repository associated with the image.+newImage ::+ Image+newImage =+ Image'+ { imageId = Prelude.Nothing,+ imageManifest = Prelude.Nothing,+ imageManifestMediaType = Prelude.Nothing,+ registryId = Prelude.Nothing,+ repositoryName = Prelude.Nothing+ }++-- | An object containing the image tag and image digest associated with an+-- image.+image_imageId :: Lens.Lens' Image (Prelude.Maybe ImageIdentifier)+image_imageId = Lens.lens (\Image' {imageId} -> imageId) (\s@Image' {} a -> s {imageId = a} :: Image)++-- | The image manifest associated with the image.+image_imageManifest :: Lens.Lens' Image (Prelude.Maybe Prelude.Text)+image_imageManifest = Lens.lens (\Image' {imageManifest} -> imageManifest) (\s@Image' {} a -> s {imageManifest = a} :: Image)++-- | The manifest media type of the image.+image_imageManifestMediaType :: Lens.Lens' Image (Prelude.Maybe Prelude.Text)+image_imageManifestMediaType = Lens.lens (\Image' {imageManifestMediaType} -> imageManifestMediaType) (\s@Image' {} a -> s {imageManifestMediaType = a} :: Image)++-- | The AWS account ID associated with the registry containing the image.+image_registryId :: Lens.Lens' Image (Prelude.Maybe Prelude.Text)+image_registryId = Lens.lens (\Image' {registryId} -> registryId) (\s@Image' {} a -> s {registryId = a} :: Image)++-- | The name of the repository associated with the image.+image_repositoryName :: Lens.Lens' Image (Prelude.Maybe Prelude.Text)+image_repositoryName = Lens.lens (\Image' {repositoryName} -> repositoryName) (\s@Image' {} a -> s {repositoryName = a} :: Image)++instance Data.FromJSON Image where+ parseJSON =+ Data.withObject+ "Image"+ ( \x ->+ Image'+ Prelude.<$> (x Data..:? "imageId")+ Prelude.<*> (x Data..:? "imageManifest")+ Prelude.<*> (x Data..:? "imageManifestMediaType")+ Prelude.<*> (x Data..:? "registryId")+ Prelude.<*> (x Data..:? "repositoryName")+ )++instance Prelude.Hashable Image where+ hashWithSalt _salt Image' {..} =+ _salt+ `Prelude.hashWithSalt` imageId+ `Prelude.hashWithSalt` imageManifest+ `Prelude.hashWithSalt` imageManifestMediaType+ `Prelude.hashWithSalt` registryId+ `Prelude.hashWithSalt` repositoryName++instance Prelude.NFData Image where+ rnf Image' {..} =+ Prelude.rnf imageId+ `Prelude.seq` Prelude.rnf imageManifest+ `Prelude.seq` Prelude.rnf imageManifestMediaType+ `Prelude.seq` Prelude.rnf registryId+ `Prelude.seq` Prelude.rnf repositoryName
+ gen/Amazonka/ECRPublic/Types/ImageDetail.hs view
@@ -0,0 +1,190 @@+{-# 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.ECRPublic.Types.ImageDetail+-- 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.ECRPublic.Types.ImageDetail 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++-- | An object that describes an image returned by a DescribeImages+-- operation.+--+-- /See:/ 'newImageDetail' smart constructor.+data ImageDetail = ImageDetail'+ { -- | The artifact media type of the image.+ artifactMediaType :: Prelude.Maybe Prelude.Text,+ -- | The @sha256@ digest of the image manifest.+ imageDigest :: Prelude.Maybe Prelude.Text,+ -- | The media type of the image manifest.+ imageManifestMediaType :: Prelude.Maybe Prelude.Text,+ -- | The date and time, expressed in standard JavaScript date format, at+ -- which the current image was pushed to the repository.+ imagePushedAt :: Prelude.Maybe Data.POSIX,+ -- | The size, in bytes, of the image in the repository.+ --+ -- If the image is a manifest list, this will be the max size of all+ -- manifests in the list.+ --+ -- Beginning with Docker version 1.9, the Docker client compresses image+ -- layers before pushing them to a V2 Docker registry. The output of the+ -- @docker images@ command shows the uncompressed image size, so it may+ -- return a larger image size than the image sizes returned by+ -- DescribeImages.+ imageSizeInBytes :: Prelude.Maybe Prelude.Integer,+ -- | The list of tags associated with this image.+ imageTags :: Prelude.Maybe [Prelude.Text],+ -- | The AWS account ID associated with the public registry to which this+ -- image belongs.+ registryId :: Prelude.Maybe Prelude.Text,+ -- | The name of the repository to which this image belongs.+ repositoryName :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImageDetail' 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:+--+-- 'artifactMediaType', 'imageDetail_artifactMediaType' - The artifact media type of the image.+--+-- 'imageDigest', 'imageDetail_imageDigest' - The @sha256@ digest of the image manifest.+--+-- 'imageManifestMediaType', 'imageDetail_imageManifestMediaType' - The media type of the image manifest.+--+-- 'imagePushedAt', 'imageDetail_imagePushedAt' - The date and time, expressed in standard JavaScript date format, at+-- which the current image was pushed to the repository.+--+-- 'imageSizeInBytes', 'imageDetail_imageSizeInBytes' - The size, in bytes, of the image in the repository.+--+-- If the image is a manifest list, this will be the max size of all+-- manifests in the list.+--+-- Beginning with Docker version 1.9, the Docker client compresses image+-- layers before pushing them to a V2 Docker registry. The output of the+-- @docker images@ command shows the uncompressed image size, so it may+-- return a larger image size than the image sizes returned by+-- DescribeImages.+--+-- 'imageTags', 'imageDetail_imageTags' - The list of tags associated with this image.+--+-- 'registryId', 'imageDetail_registryId' - The AWS account ID associated with the public registry to which this+-- image belongs.+--+-- 'repositoryName', 'imageDetail_repositoryName' - The name of the repository to which this image belongs.+newImageDetail ::+ ImageDetail+newImageDetail =+ ImageDetail'+ { artifactMediaType = Prelude.Nothing,+ imageDigest = Prelude.Nothing,+ imageManifestMediaType = Prelude.Nothing,+ imagePushedAt = Prelude.Nothing,+ imageSizeInBytes = Prelude.Nothing,+ imageTags = Prelude.Nothing,+ registryId = Prelude.Nothing,+ repositoryName = Prelude.Nothing+ }++-- | The artifact media type of the image.+imageDetail_artifactMediaType :: Lens.Lens' ImageDetail (Prelude.Maybe Prelude.Text)+imageDetail_artifactMediaType = Lens.lens (\ImageDetail' {artifactMediaType} -> artifactMediaType) (\s@ImageDetail' {} a -> s {artifactMediaType = a} :: ImageDetail)++-- | The @sha256@ digest of the image manifest.+imageDetail_imageDigest :: Lens.Lens' ImageDetail (Prelude.Maybe Prelude.Text)+imageDetail_imageDigest = Lens.lens (\ImageDetail' {imageDigest} -> imageDigest) (\s@ImageDetail' {} a -> s {imageDigest = a} :: ImageDetail)++-- | The media type of the image manifest.+imageDetail_imageManifestMediaType :: Lens.Lens' ImageDetail (Prelude.Maybe Prelude.Text)+imageDetail_imageManifestMediaType = Lens.lens (\ImageDetail' {imageManifestMediaType} -> imageManifestMediaType) (\s@ImageDetail' {} a -> s {imageManifestMediaType = a} :: ImageDetail)++-- | The date and time, expressed in standard JavaScript date format, at+-- which the current image was pushed to the repository.+imageDetail_imagePushedAt :: Lens.Lens' ImageDetail (Prelude.Maybe Prelude.UTCTime)+imageDetail_imagePushedAt = Lens.lens (\ImageDetail' {imagePushedAt} -> imagePushedAt) (\s@ImageDetail' {} a -> s {imagePushedAt = a} :: ImageDetail) Prelude.. Lens.mapping Data._Time++-- | The size, in bytes, of the image in the repository.+--+-- If the image is a manifest list, this will be the max size of all+-- manifests in the list.+--+-- Beginning with Docker version 1.9, the Docker client compresses image+-- layers before pushing them to a V2 Docker registry. The output of the+-- @docker images@ command shows the uncompressed image size, so it may+-- return a larger image size than the image sizes returned by+-- DescribeImages.+imageDetail_imageSizeInBytes :: Lens.Lens' ImageDetail (Prelude.Maybe Prelude.Integer)+imageDetail_imageSizeInBytes = Lens.lens (\ImageDetail' {imageSizeInBytes} -> imageSizeInBytes) (\s@ImageDetail' {} a -> s {imageSizeInBytes = a} :: ImageDetail)++-- | The list of tags associated with this image.+imageDetail_imageTags :: Lens.Lens' ImageDetail (Prelude.Maybe [Prelude.Text])+imageDetail_imageTags = Lens.lens (\ImageDetail' {imageTags} -> imageTags) (\s@ImageDetail' {} a -> s {imageTags = a} :: ImageDetail) Prelude.. Lens.mapping Lens.coerced++-- | The AWS account ID associated with the public registry to which this+-- image belongs.+imageDetail_registryId :: Lens.Lens' ImageDetail (Prelude.Maybe Prelude.Text)+imageDetail_registryId = Lens.lens (\ImageDetail' {registryId} -> registryId) (\s@ImageDetail' {} a -> s {registryId = a} :: ImageDetail)++-- | The name of the repository to which this image belongs.+imageDetail_repositoryName :: Lens.Lens' ImageDetail (Prelude.Maybe Prelude.Text)+imageDetail_repositoryName = Lens.lens (\ImageDetail' {repositoryName} -> repositoryName) (\s@ImageDetail' {} a -> s {repositoryName = a} :: ImageDetail)++instance Data.FromJSON ImageDetail where+ parseJSON =+ Data.withObject+ "ImageDetail"+ ( \x ->+ ImageDetail'+ Prelude.<$> (x Data..:? "artifactMediaType")+ Prelude.<*> (x Data..:? "imageDigest")+ Prelude.<*> (x Data..:? "imageManifestMediaType")+ Prelude.<*> (x Data..:? "imagePushedAt")+ Prelude.<*> (x Data..:? "imageSizeInBytes")+ Prelude.<*> (x Data..:? "imageTags" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "registryId")+ Prelude.<*> (x Data..:? "repositoryName")+ )++instance Prelude.Hashable ImageDetail where+ hashWithSalt _salt ImageDetail' {..} =+ _salt+ `Prelude.hashWithSalt` artifactMediaType+ `Prelude.hashWithSalt` imageDigest+ `Prelude.hashWithSalt` imageManifestMediaType+ `Prelude.hashWithSalt` imagePushedAt+ `Prelude.hashWithSalt` imageSizeInBytes+ `Prelude.hashWithSalt` imageTags+ `Prelude.hashWithSalt` registryId+ `Prelude.hashWithSalt` repositoryName++instance Prelude.NFData ImageDetail where+ rnf ImageDetail' {..} =+ Prelude.rnf artifactMediaType+ `Prelude.seq` Prelude.rnf imageDigest+ `Prelude.seq` Prelude.rnf imageManifestMediaType+ `Prelude.seq` Prelude.rnf imagePushedAt+ `Prelude.seq` Prelude.rnf imageSizeInBytes+ `Prelude.seq` Prelude.rnf imageTags+ `Prelude.seq` Prelude.rnf registryId+ `Prelude.seq` Prelude.rnf repositoryName
+ gen/Amazonka/ECRPublic/Types/ImageFailure.hs view
@@ -0,0 +1,98 @@+{-# 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.ECRPublic.Types.ImageFailure+-- 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.ECRPublic.Types.ImageFailure where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ECRPublic.Types.ImageFailureCode+import Amazonka.ECRPublic.Types.ImageIdentifier+import qualified Amazonka.Prelude as Prelude++-- | An object representing an Amazon ECR image failure.+--+-- /See:/ 'newImageFailure' smart constructor.+data ImageFailure = ImageFailure'+ { -- | The code associated with the failure.+ failureCode :: Prelude.Maybe ImageFailureCode,+ -- | The reason for the failure.+ failureReason :: Prelude.Maybe Prelude.Text,+ -- | The image ID associated with the failure.+ imageId :: Prelude.Maybe ImageIdentifier+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImageFailure' 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:+--+-- 'failureCode', 'imageFailure_failureCode' - The code associated with the failure.+--+-- 'failureReason', 'imageFailure_failureReason' - The reason for the failure.+--+-- 'imageId', 'imageFailure_imageId' - The image ID associated with the failure.+newImageFailure ::+ ImageFailure+newImageFailure =+ ImageFailure'+ { failureCode = Prelude.Nothing,+ failureReason = Prelude.Nothing,+ imageId = Prelude.Nothing+ }++-- | The code associated with the failure.+imageFailure_failureCode :: Lens.Lens' ImageFailure (Prelude.Maybe ImageFailureCode)+imageFailure_failureCode = Lens.lens (\ImageFailure' {failureCode} -> failureCode) (\s@ImageFailure' {} a -> s {failureCode = a} :: ImageFailure)++-- | The reason for the failure.+imageFailure_failureReason :: Lens.Lens' ImageFailure (Prelude.Maybe Prelude.Text)+imageFailure_failureReason = Lens.lens (\ImageFailure' {failureReason} -> failureReason) (\s@ImageFailure' {} a -> s {failureReason = a} :: ImageFailure)++-- | The image ID associated with the failure.+imageFailure_imageId :: Lens.Lens' ImageFailure (Prelude.Maybe ImageIdentifier)+imageFailure_imageId = Lens.lens (\ImageFailure' {imageId} -> imageId) (\s@ImageFailure' {} a -> s {imageId = a} :: ImageFailure)++instance Data.FromJSON ImageFailure where+ parseJSON =+ Data.withObject+ "ImageFailure"+ ( \x ->+ ImageFailure'+ Prelude.<$> (x Data..:? "failureCode")+ Prelude.<*> (x Data..:? "failureReason")+ Prelude.<*> (x Data..:? "imageId")+ )++instance Prelude.Hashable ImageFailure where+ hashWithSalt _salt ImageFailure' {..} =+ _salt+ `Prelude.hashWithSalt` failureCode+ `Prelude.hashWithSalt` failureReason+ `Prelude.hashWithSalt` imageId++instance Prelude.NFData ImageFailure where+ rnf ImageFailure' {..} =+ Prelude.rnf failureCode+ `Prelude.seq` Prelude.rnf failureReason+ `Prelude.seq` Prelude.rnf imageId
+ gen/Amazonka/ECRPublic/Types/ImageFailureCode.hs view
@@ -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.ECRPublic.Types.ImageFailureCode+-- 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.ECRPublic.Types.ImageFailureCode+ ( ImageFailureCode+ ( ..,+ ImageFailureCode_ImageNotFound,+ ImageFailureCode_ImageReferencedByManifestList,+ ImageFailureCode_ImageTagDoesNotMatchDigest,+ ImageFailureCode_InvalidImageDigest,+ ImageFailureCode_InvalidImageTag,+ ImageFailureCode_KmsError,+ ImageFailureCode_MissingDigestAndTag+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ImageFailureCode = ImageFailureCode'+ { fromImageFailureCode ::+ 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 ImageFailureCode_ImageNotFound :: ImageFailureCode+pattern ImageFailureCode_ImageNotFound = ImageFailureCode' "ImageNotFound"++pattern ImageFailureCode_ImageReferencedByManifestList :: ImageFailureCode+pattern ImageFailureCode_ImageReferencedByManifestList = ImageFailureCode' "ImageReferencedByManifestList"++pattern ImageFailureCode_ImageTagDoesNotMatchDigest :: ImageFailureCode+pattern ImageFailureCode_ImageTagDoesNotMatchDigest = ImageFailureCode' "ImageTagDoesNotMatchDigest"++pattern ImageFailureCode_InvalidImageDigest :: ImageFailureCode+pattern ImageFailureCode_InvalidImageDigest = ImageFailureCode' "InvalidImageDigest"++pattern ImageFailureCode_InvalidImageTag :: ImageFailureCode+pattern ImageFailureCode_InvalidImageTag = ImageFailureCode' "InvalidImageTag"++pattern ImageFailureCode_KmsError :: ImageFailureCode+pattern ImageFailureCode_KmsError = ImageFailureCode' "KmsError"++pattern ImageFailureCode_MissingDigestAndTag :: ImageFailureCode+pattern ImageFailureCode_MissingDigestAndTag = ImageFailureCode' "MissingDigestAndTag"++{-# COMPLETE+ ImageFailureCode_ImageNotFound,+ ImageFailureCode_ImageReferencedByManifestList,+ ImageFailureCode_ImageTagDoesNotMatchDigest,+ ImageFailureCode_InvalidImageDigest,+ ImageFailureCode_InvalidImageTag,+ ImageFailureCode_KmsError,+ ImageFailureCode_MissingDigestAndTag,+ ImageFailureCode'+ #-}
+ gen/Amazonka/ECRPublic/Types/ImageIdentifier.hs view
@@ -0,0 +1,93 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ECRPublic.Types.ImageIdentifier+-- 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.ECRPublic.Types.ImageIdentifier 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++-- | An object with identifying information for an Amazon ECR image.+--+-- /See:/ 'newImageIdentifier' smart constructor.+data ImageIdentifier = ImageIdentifier'+ { -- | The @sha256@ digest of the image manifest.+ imageDigest :: Prelude.Maybe Prelude.Text,+ -- | The tag used for the image.+ imageTag :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImageIdentifier' 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:+--+-- 'imageDigest', 'imageIdentifier_imageDigest' - The @sha256@ digest of the image manifest.+--+-- 'imageTag', 'imageIdentifier_imageTag' - The tag used for the image.+newImageIdentifier ::+ ImageIdentifier+newImageIdentifier =+ ImageIdentifier'+ { imageDigest = Prelude.Nothing,+ imageTag = Prelude.Nothing+ }++-- | The @sha256@ digest of the image manifest.+imageIdentifier_imageDigest :: Lens.Lens' ImageIdentifier (Prelude.Maybe Prelude.Text)+imageIdentifier_imageDigest = Lens.lens (\ImageIdentifier' {imageDigest} -> imageDigest) (\s@ImageIdentifier' {} a -> s {imageDigest = a} :: ImageIdentifier)++-- | The tag used for the image.+imageIdentifier_imageTag :: Lens.Lens' ImageIdentifier (Prelude.Maybe Prelude.Text)+imageIdentifier_imageTag = Lens.lens (\ImageIdentifier' {imageTag} -> imageTag) (\s@ImageIdentifier' {} a -> s {imageTag = a} :: ImageIdentifier)++instance Data.FromJSON ImageIdentifier where+ parseJSON =+ Data.withObject+ "ImageIdentifier"+ ( \x ->+ ImageIdentifier'+ Prelude.<$> (x Data..:? "imageDigest")+ Prelude.<*> (x Data..:? "imageTag")+ )++instance Prelude.Hashable ImageIdentifier where+ hashWithSalt _salt ImageIdentifier' {..} =+ _salt+ `Prelude.hashWithSalt` imageDigest+ `Prelude.hashWithSalt` imageTag++instance Prelude.NFData ImageIdentifier where+ rnf ImageIdentifier' {..} =+ Prelude.rnf imageDigest+ `Prelude.seq` Prelude.rnf imageTag++instance Data.ToJSON ImageIdentifier where+ toJSON ImageIdentifier' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("imageDigest" Data..=) Prelude.<$> imageDigest,+ ("imageTag" Data..=) Prelude.<$> imageTag+ ]+ )
+ gen/Amazonka/ECRPublic/Types/ImageTagDetail.hs view
@@ -0,0 +1,97 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ECRPublic.Types.ImageTagDetail+-- 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.ECRPublic.Types.ImageTagDetail where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ECRPublic.Types.ReferencedImageDetail+import qualified Amazonka.Prelude as Prelude++-- | An object representing the image tag details for an image.+--+-- /See:/ 'newImageTagDetail' smart constructor.+data ImageTagDetail = ImageTagDetail'+ { -- | The time stamp indicating when the image tag was created.+ createdAt :: Prelude.Maybe Data.POSIX,+ -- | An object that describes the details of an image.+ imageDetail :: Prelude.Maybe ReferencedImageDetail,+ -- | The tag associated with the image.+ imageTag :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImageTagDetail' 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:+--+-- 'createdAt', 'imageTagDetail_createdAt' - The time stamp indicating when the image tag was created.+--+-- 'imageDetail', 'imageTagDetail_imageDetail' - An object that describes the details of an image.+--+-- 'imageTag', 'imageTagDetail_imageTag' - The tag associated with the image.+newImageTagDetail ::+ ImageTagDetail+newImageTagDetail =+ ImageTagDetail'+ { createdAt = Prelude.Nothing,+ imageDetail = Prelude.Nothing,+ imageTag = Prelude.Nothing+ }++-- | The time stamp indicating when the image tag was created.+imageTagDetail_createdAt :: Lens.Lens' ImageTagDetail (Prelude.Maybe Prelude.UTCTime)+imageTagDetail_createdAt = Lens.lens (\ImageTagDetail' {createdAt} -> createdAt) (\s@ImageTagDetail' {} a -> s {createdAt = a} :: ImageTagDetail) Prelude.. Lens.mapping Data._Time++-- | An object that describes the details of an image.+imageTagDetail_imageDetail :: Lens.Lens' ImageTagDetail (Prelude.Maybe ReferencedImageDetail)+imageTagDetail_imageDetail = Lens.lens (\ImageTagDetail' {imageDetail} -> imageDetail) (\s@ImageTagDetail' {} a -> s {imageDetail = a} :: ImageTagDetail)++-- | The tag associated with the image.+imageTagDetail_imageTag :: Lens.Lens' ImageTagDetail (Prelude.Maybe Prelude.Text)+imageTagDetail_imageTag = Lens.lens (\ImageTagDetail' {imageTag} -> imageTag) (\s@ImageTagDetail' {} a -> s {imageTag = a} :: ImageTagDetail)++instance Data.FromJSON ImageTagDetail where+ parseJSON =+ Data.withObject+ "ImageTagDetail"+ ( \x ->+ ImageTagDetail'+ Prelude.<$> (x Data..:? "createdAt")+ Prelude.<*> (x Data..:? "imageDetail")+ Prelude.<*> (x Data..:? "imageTag")+ )++instance Prelude.Hashable ImageTagDetail where+ hashWithSalt _salt ImageTagDetail' {..} =+ _salt+ `Prelude.hashWithSalt` createdAt+ `Prelude.hashWithSalt` imageDetail+ `Prelude.hashWithSalt` imageTag++instance Prelude.NFData ImageTagDetail where+ rnf ImageTagDetail' {..} =+ Prelude.rnf createdAt+ `Prelude.seq` Prelude.rnf imageDetail+ `Prelude.seq` Prelude.rnf imageTag
+ gen/Amazonka/ECRPublic/Types/Layer.hs view
@@ -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.ECRPublic.Types.Layer+-- 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.ECRPublic.Types.Layer where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ECRPublic.Types.LayerAvailability+import qualified Amazonka.Prelude as Prelude++-- | An object representing an Amazon ECR image layer.+--+-- /See:/ 'newLayer' smart constructor.+data Layer = Layer'+ { -- | The availability status of the image layer.+ layerAvailability :: Prelude.Maybe LayerAvailability,+ -- | The @sha256@ digest of the image layer.+ layerDigest :: Prelude.Maybe Prelude.Text,+ -- | The size, in bytes, of the image layer.+ layerSize :: Prelude.Maybe Prelude.Integer,+ -- | The media type of the layer, such as+ -- @application\/vnd.docker.image.rootfs.diff.tar.gzip@ or+ -- @application\/vnd.oci.image.layer.v1.tar+gzip@.+ mediaType :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Layer' 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:+--+-- 'layerAvailability', 'layer_layerAvailability' - The availability status of the image layer.+--+-- 'layerDigest', 'layer_layerDigest' - The @sha256@ digest of the image layer.+--+-- 'layerSize', 'layer_layerSize' - The size, in bytes, of the image layer.+--+-- 'mediaType', 'layer_mediaType' - The media type of the layer, such as+-- @application\/vnd.docker.image.rootfs.diff.tar.gzip@ or+-- @application\/vnd.oci.image.layer.v1.tar+gzip@.+newLayer ::+ Layer+newLayer =+ Layer'+ { layerAvailability = Prelude.Nothing,+ layerDigest = Prelude.Nothing,+ layerSize = Prelude.Nothing,+ mediaType = Prelude.Nothing+ }++-- | The availability status of the image layer.+layer_layerAvailability :: Lens.Lens' Layer (Prelude.Maybe LayerAvailability)+layer_layerAvailability = Lens.lens (\Layer' {layerAvailability} -> layerAvailability) (\s@Layer' {} a -> s {layerAvailability = a} :: Layer)++-- | The @sha256@ digest of the image layer.+layer_layerDigest :: Lens.Lens' Layer (Prelude.Maybe Prelude.Text)+layer_layerDigest = Lens.lens (\Layer' {layerDigest} -> layerDigest) (\s@Layer' {} a -> s {layerDigest = a} :: Layer)++-- | The size, in bytes, of the image layer.+layer_layerSize :: Lens.Lens' Layer (Prelude.Maybe Prelude.Integer)+layer_layerSize = Lens.lens (\Layer' {layerSize} -> layerSize) (\s@Layer' {} a -> s {layerSize = a} :: Layer)++-- | The media type of the layer, such as+-- @application\/vnd.docker.image.rootfs.diff.tar.gzip@ or+-- @application\/vnd.oci.image.layer.v1.tar+gzip@.+layer_mediaType :: Lens.Lens' Layer (Prelude.Maybe Prelude.Text)+layer_mediaType = Lens.lens (\Layer' {mediaType} -> mediaType) (\s@Layer' {} a -> s {mediaType = a} :: Layer)++instance Data.FromJSON Layer where+ parseJSON =+ Data.withObject+ "Layer"+ ( \x ->+ Layer'+ Prelude.<$> (x Data..:? "layerAvailability")+ Prelude.<*> (x Data..:? "layerDigest")+ Prelude.<*> (x Data..:? "layerSize")+ Prelude.<*> (x Data..:? "mediaType")+ )++instance Prelude.Hashable Layer where+ hashWithSalt _salt Layer' {..} =+ _salt+ `Prelude.hashWithSalt` layerAvailability+ `Prelude.hashWithSalt` layerDigest+ `Prelude.hashWithSalt` layerSize+ `Prelude.hashWithSalt` mediaType++instance Prelude.NFData Layer where+ rnf Layer' {..} =+ Prelude.rnf layerAvailability+ `Prelude.seq` Prelude.rnf layerDigest+ `Prelude.seq` Prelude.rnf layerSize+ `Prelude.seq` Prelude.rnf mediaType
+ gen/Amazonka/ECRPublic/Types/LayerAvailability.hs view
@@ -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.ECRPublic.Types.LayerAvailability+-- 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.ECRPublic.Types.LayerAvailability+ ( LayerAvailability+ ( ..,+ LayerAvailability_AVAILABLE,+ LayerAvailability_UNAVAILABLE+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype LayerAvailability = LayerAvailability'+ { fromLayerAvailability ::+ 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 LayerAvailability_AVAILABLE :: LayerAvailability+pattern LayerAvailability_AVAILABLE = LayerAvailability' "AVAILABLE"++pattern LayerAvailability_UNAVAILABLE :: LayerAvailability+pattern LayerAvailability_UNAVAILABLE = LayerAvailability' "UNAVAILABLE"++{-# COMPLETE+ LayerAvailability_AVAILABLE,+ LayerAvailability_UNAVAILABLE,+ LayerAvailability'+ #-}
+ gen/Amazonka/ECRPublic/Types/LayerFailure.hs view
@@ -0,0 +1,97 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ECRPublic.Types.LayerFailure+-- 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.ECRPublic.Types.LayerFailure where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ECRPublic.Types.LayerFailureCode+import qualified Amazonka.Prelude as Prelude++-- | An object representing an Amazon ECR image layer failure.+--+-- /See:/ 'newLayerFailure' smart constructor.+data LayerFailure = LayerFailure'+ { -- | The failure code associated with the failure.+ failureCode :: Prelude.Maybe LayerFailureCode,+ -- | The reason for the failure.+ failureReason :: Prelude.Maybe Prelude.Text,+ -- | The layer digest associated with the failure.+ layerDigest :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LayerFailure' 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:+--+-- 'failureCode', 'layerFailure_failureCode' - The failure code associated with the failure.+--+-- 'failureReason', 'layerFailure_failureReason' - The reason for the failure.+--+-- 'layerDigest', 'layerFailure_layerDigest' - The layer digest associated with the failure.+newLayerFailure ::+ LayerFailure+newLayerFailure =+ LayerFailure'+ { failureCode = Prelude.Nothing,+ failureReason = Prelude.Nothing,+ layerDigest = Prelude.Nothing+ }++-- | The failure code associated with the failure.+layerFailure_failureCode :: Lens.Lens' LayerFailure (Prelude.Maybe LayerFailureCode)+layerFailure_failureCode = Lens.lens (\LayerFailure' {failureCode} -> failureCode) (\s@LayerFailure' {} a -> s {failureCode = a} :: LayerFailure)++-- | The reason for the failure.+layerFailure_failureReason :: Lens.Lens' LayerFailure (Prelude.Maybe Prelude.Text)+layerFailure_failureReason = Lens.lens (\LayerFailure' {failureReason} -> failureReason) (\s@LayerFailure' {} a -> s {failureReason = a} :: LayerFailure)++-- | The layer digest associated with the failure.+layerFailure_layerDigest :: Lens.Lens' LayerFailure (Prelude.Maybe Prelude.Text)+layerFailure_layerDigest = Lens.lens (\LayerFailure' {layerDigest} -> layerDigest) (\s@LayerFailure' {} a -> s {layerDigest = a} :: LayerFailure)++instance Data.FromJSON LayerFailure where+ parseJSON =+ Data.withObject+ "LayerFailure"+ ( \x ->+ LayerFailure'+ Prelude.<$> (x Data..:? "failureCode")+ Prelude.<*> (x Data..:? "failureReason")+ Prelude.<*> (x Data..:? "layerDigest")+ )++instance Prelude.Hashable LayerFailure where+ hashWithSalt _salt LayerFailure' {..} =+ _salt+ `Prelude.hashWithSalt` failureCode+ `Prelude.hashWithSalt` failureReason+ `Prelude.hashWithSalt` layerDigest++instance Prelude.NFData LayerFailure where+ rnf LayerFailure' {..} =+ Prelude.rnf failureCode+ `Prelude.seq` Prelude.rnf failureReason+ `Prelude.seq` Prelude.rnf layerDigest
+ gen/Amazonka/ECRPublic/Types/LayerFailureCode.hs view
@@ -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.ECRPublic.Types.LayerFailureCode+-- 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.ECRPublic.Types.LayerFailureCode+ ( LayerFailureCode+ ( ..,+ LayerFailureCode_InvalidLayerDigest,+ LayerFailureCode_MissingLayerDigest+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype LayerFailureCode = LayerFailureCode'+ { fromLayerFailureCode ::+ 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 LayerFailureCode_InvalidLayerDigest :: LayerFailureCode+pattern LayerFailureCode_InvalidLayerDigest = LayerFailureCode' "InvalidLayerDigest"++pattern LayerFailureCode_MissingLayerDigest :: LayerFailureCode+pattern LayerFailureCode_MissingLayerDigest = LayerFailureCode' "MissingLayerDigest"++{-# COMPLETE+ LayerFailureCode_InvalidLayerDigest,+ LayerFailureCode_MissingLayerDigest,+ LayerFailureCode'+ #-}
+ gen/Amazonka/ECRPublic/Types/ReferencedImageDetail.hs view
@@ -0,0 +1,152 @@+{-# 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.ECRPublic.Types.ReferencedImageDetail+-- 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.ECRPublic.Types.ReferencedImageDetail 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++-- | An object that describes the image tag details returned by a+-- DescribeImageTags action.+--+-- /See:/ 'newReferencedImageDetail' smart constructor.+data ReferencedImageDetail = ReferencedImageDetail'+ { -- | The artifact media type of the image.+ artifactMediaType :: Prelude.Maybe Prelude.Text,+ -- | The @sha256@ digest of the image manifest.+ imageDigest :: Prelude.Maybe Prelude.Text,+ -- | The media type of the image manifest.+ imageManifestMediaType :: Prelude.Maybe Prelude.Text,+ -- | The date and time, expressed in standard JavaScript date format, at+ -- which the current image tag was pushed to the repository.+ imagePushedAt :: Prelude.Maybe Data.POSIX,+ -- | The size, in bytes, of the image in the repository.+ --+ -- If the image is a manifest list, this will be the max size of all+ -- manifests in the list.+ --+ -- Beginning with Docker version 1.9, the Docker client compresses image+ -- layers before pushing them to a V2 Docker registry. The output of the+ -- @docker images@ command shows the uncompressed image size, so it may+ -- return a larger image size than the image sizes returned by+ -- DescribeImages.+ imageSizeInBytes :: Prelude.Maybe Prelude.Integer+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ReferencedImageDetail' 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:+--+-- 'artifactMediaType', 'referencedImageDetail_artifactMediaType' - The artifact media type of the image.+--+-- 'imageDigest', 'referencedImageDetail_imageDigest' - The @sha256@ digest of the image manifest.+--+-- 'imageManifestMediaType', 'referencedImageDetail_imageManifestMediaType' - The media type of the image manifest.+--+-- 'imagePushedAt', 'referencedImageDetail_imagePushedAt' - The date and time, expressed in standard JavaScript date format, at+-- which the current image tag was pushed to the repository.+--+-- 'imageSizeInBytes', 'referencedImageDetail_imageSizeInBytes' - The size, in bytes, of the image in the repository.+--+-- If the image is a manifest list, this will be the max size of all+-- manifests in the list.+--+-- Beginning with Docker version 1.9, the Docker client compresses image+-- layers before pushing them to a V2 Docker registry. The output of the+-- @docker images@ command shows the uncompressed image size, so it may+-- return a larger image size than the image sizes returned by+-- DescribeImages.+newReferencedImageDetail ::+ ReferencedImageDetail+newReferencedImageDetail =+ ReferencedImageDetail'+ { artifactMediaType =+ Prelude.Nothing,+ imageDigest = Prelude.Nothing,+ imageManifestMediaType = Prelude.Nothing,+ imagePushedAt = Prelude.Nothing,+ imageSizeInBytes = Prelude.Nothing+ }++-- | The artifact media type of the image.+referencedImageDetail_artifactMediaType :: Lens.Lens' ReferencedImageDetail (Prelude.Maybe Prelude.Text)+referencedImageDetail_artifactMediaType = Lens.lens (\ReferencedImageDetail' {artifactMediaType} -> artifactMediaType) (\s@ReferencedImageDetail' {} a -> s {artifactMediaType = a} :: ReferencedImageDetail)++-- | The @sha256@ digest of the image manifest.+referencedImageDetail_imageDigest :: Lens.Lens' ReferencedImageDetail (Prelude.Maybe Prelude.Text)+referencedImageDetail_imageDigest = Lens.lens (\ReferencedImageDetail' {imageDigest} -> imageDigest) (\s@ReferencedImageDetail' {} a -> s {imageDigest = a} :: ReferencedImageDetail)++-- | The media type of the image manifest.+referencedImageDetail_imageManifestMediaType :: Lens.Lens' ReferencedImageDetail (Prelude.Maybe Prelude.Text)+referencedImageDetail_imageManifestMediaType = Lens.lens (\ReferencedImageDetail' {imageManifestMediaType} -> imageManifestMediaType) (\s@ReferencedImageDetail' {} a -> s {imageManifestMediaType = a} :: ReferencedImageDetail)++-- | The date and time, expressed in standard JavaScript date format, at+-- which the current image tag was pushed to the repository.+referencedImageDetail_imagePushedAt :: Lens.Lens' ReferencedImageDetail (Prelude.Maybe Prelude.UTCTime)+referencedImageDetail_imagePushedAt = Lens.lens (\ReferencedImageDetail' {imagePushedAt} -> imagePushedAt) (\s@ReferencedImageDetail' {} a -> s {imagePushedAt = a} :: ReferencedImageDetail) Prelude.. Lens.mapping Data._Time++-- | The size, in bytes, of the image in the repository.+--+-- If the image is a manifest list, this will be the max size of all+-- manifests in the list.+--+-- Beginning with Docker version 1.9, the Docker client compresses image+-- layers before pushing them to a V2 Docker registry. The output of the+-- @docker images@ command shows the uncompressed image size, so it may+-- return a larger image size than the image sizes returned by+-- DescribeImages.+referencedImageDetail_imageSizeInBytes :: Lens.Lens' ReferencedImageDetail (Prelude.Maybe Prelude.Integer)+referencedImageDetail_imageSizeInBytes = Lens.lens (\ReferencedImageDetail' {imageSizeInBytes} -> imageSizeInBytes) (\s@ReferencedImageDetail' {} a -> s {imageSizeInBytes = a} :: ReferencedImageDetail)++instance Data.FromJSON ReferencedImageDetail where+ parseJSON =+ Data.withObject+ "ReferencedImageDetail"+ ( \x ->+ ReferencedImageDetail'+ Prelude.<$> (x Data..:? "artifactMediaType")+ Prelude.<*> (x Data..:? "imageDigest")+ Prelude.<*> (x Data..:? "imageManifestMediaType")+ Prelude.<*> (x Data..:? "imagePushedAt")+ Prelude.<*> (x Data..:? "imageSizeInBytes")+ )++instance Prelude.Hashable ReferencedImageDetail where+ hashWithSalt _salt ReferencedImageDetail' {..} =+ _salt+ `Prelude.hashWithSalt` artifactMediaType+ `Prelude.hashWithSalt` imageDigest+ `Prelude.hashWithSalt` imageManifestMediaType+ `Prelude.hashWithSalt` imagePushedAt+ `Prelude.hashWithSalt` imageSizeInBytes++instance Prelude.NFData ReferencedImageDetail where+ rnf ReferencedImageDetail' {..} =+ Prelude.rnf artifactMediaType+ `Prelude.seq` Prelude.rnf imageDigest+ `Prelude.seq` Prelude.rnf imageManifestMediaType+ `Prelude.seq` Prelude.rnf imagePushedAt+ `Prelude.seq` Prelude.rnf imageSizeInBytes
+ gen/Amazonka/ECRPublic/Types/Registry.hs view
@@ -0,0 +1,148 @@+{-# 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.ECRPublic.Types.Registry+-- 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.ECRPublic.Types.Registry where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ECRPublic.Types.RegistryAlias+import qualified Amazonka.Prelude as Prelude++-- | The details of a public registry.+--+-- /See:/ 'newRegistry' smart constructor.+data Registry = Registry'+ { -- | The AWS account ID associated with the registry. If you do not specify a+ -- registry, the default public registry is assumed.+ registryId :: Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the public registry.+ registryArn :: Prelude.Text,+ -- | The URI of a public registry. The URI contains a universal prefix and+ -- the registry alias.+ registryUri :: Prelude.Text,+ -- | Whether the account is verified. This indicates whether the account is+ -- an AWS Marketplace vendor. If an account is verified, each public+ -- repository will received a verified account badge on the Amazon ECR+ -- Public Gallery.+ verified :: Prelude.Bool,+ -- | An array of objects representing the aliases for a public registry.+ aliases :: [RegistryAlias]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Registry' 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:+--+-- 'registryId', 'registry_registryId' - The AWS account ID associated with the registry. If you do not specify a+-- registry, the default public registry is assumed.+--+-- 'registryArn', 'registry_registryArn' - The Amazon Resource Name (ARN) of the public registry.+--+-- 'registryUri', 'registry_registryUri' - The URI of a public registry. The URI contains a universal prefix and+-- the registry alias.+--+-- 'verified', 'registry_verified' - Whether the account is verified. This indicates whether the account is+-- an AWS Marketplace vendor. If an account is verified, each public+-- repository will received a verified account badge on the Amazon ECR+-- Public Gallery.+--+-- 'aliases', 'registry_aliases' - An array of objects representing the aliases for a public registry.+newRegistry ::+ -- | 'registryId'+ Prelude.Text ->+ -- | 'registryArn'+ Prelude.Text ->+ -- | 'registryUri'+ Prelude.Text ->+ -- | 'verified'+ Prelude.Bool ->+ Registry+newRegistry+ pRegistryId_+ pRegistryArn_+ pRegistryUri_+ pVerified_ =+ Registry'+ { registryId = pRegistryId_,+ registryArn = pRegistryArn_,+ registryUri = pRegistryUri_,+ verified = pVerified_,+ aliases = Prelude.mempty+ }++-- | The AWS account ID associated with the registry. If you do not specify a+-- registry, the default public registry is assumed.+registry_registryId :: Lens.Lens' Registry Prelude.Text+registry_registryId = Lens.lens (\Registry' {registryId} -> registryId) (\s@Registry' {} a -> s {registryId = a} :: Registry)++-- | The Amazon Resource Name (ARN) of the public registry.+registry_registryArn :: Lens.Lens' Registry Prelude.Text+registry_registryArn = Lens.lens (\Registry' {registryArn} -> registryArn) (\s@Registry' {} a -> s {registryArn = a} :: Registry)++-- | The URI of a public registry. The URI contains a universal prefix and+-- the registry alias.+registry_registryUri :: Lens.Lens' Registry Prelude.Text+registry_registryUri = Lens.lens (\Registry' {registryUri} -> registryUri) (\s@Registry' {} a -> s {registryUri = a} :: Registry)++-- | Whether the account is verified. This indicates whether the account is+-- an AWS Marketplace vendor. If an account is verified, each public+-- repository will received a verified account badge on the Amazon ECR+-- Public Gallery.+registry_verified :: Lens.Lens' Registry Prelude.Bool+registry_verified = Lens.lens (\Registry' {verified} -> verified) (\s@Registry' {} a -> s {verified = a} :: Registry)++-- | An array of objects representing the aliases for a public registry.+registry_aliases :: Lens.Lens' Registry [RegistryAlias]+registry_aliases = Lens.lens (\Registry' {aliases} -> aliases) (\s@Registry' {} a -> s {aliases = a} :: Registry) Prelude.. Lens.coerced++instance Data.FromJSON Registry where+ parseJSON =+ Data.withObject+ "Registry"+ ( \x ->+ Registry'+ Prelude.<$> (x Data..: "registryId")+ Prelude.<*> (x Data..: "registryArn")+ Prelude.<*> (x Data..: "registryUri")+ Prelude.<*> (x Data..: "verified")+ Prelude.<*> (x Data..:? "aliases" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable Registry where+ hashWithSalt _salt Registry' {..} =+ _salt+ `Prelude.hashWithSalt` registryId+ `Prelude.hashWithSalt` registryArn+ `Prelude.hashWithSalt` registryUri+ `Prelude.hashWithSalt` verified+ `Prelude.hashWithSalt` aliases++instance Prelude.NFData Registry where+ rnf Registry' {..} =+ Prelude.rnf registryId+ `Prelude.seq` Prelude.rnf registryArn+ `Prelude.seq` Prelude.rnf registryUri+ `Prelude.seq` Prelude.rnf verified+ `Prelude.seq` Prelude.rnf aliases
+ gen/Amazonka/ECRPublic/Types/RegistryAlias.hs view
@@ -0,0 +1,149 @@+{-# 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.ECRPublic.Types.RegistryAlias+-- 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.ECRPublic.Types.RegistryAlias where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ECRPublic.Types.RegistryAliasStatus+import qualified Amazonka.Prelude as Prelude++-- | An object representing the aliases for a public registry. A public+-- registry is given an alias upon creation but a custom alias can be set+-- using the Amazon ECR console. For more information, see+-- <https://docs.aws.amazon.com/AmazonECR/latest/userguide/Registries.html Registries>+-- in the /Amazon Elastic Container Registry User Guide/.+--+-- /See:/ 'newRegistryAlias' smart constructor.+data RegistryAlias = RegistryAlias'+ { -- | The name of the registry alias.+ name :: Prelude.Text,+ -- | The status of the registry alias.+ status :: RegistryAliasStatus,+ -- | Whether or not the registry alias is the primary alias for the registry.+ -- If true, the alias is the primary registry alias and is displayed in+ -- both the repository URL and the image URI used in the @docker pull@+ -- commands on the Amazon ECR Public Gallery.+ --+ -- A registry alias that is not the primary registry alias can be used in+ -- the repository URI in a @docker pull@ command.+ primaryRegistryAlias :: Prelude.Bool,+ -- | Whether or not the registry alias is the default alias for the registry.+ -- When the first public repository is created, your public registry is+ -- assigned a default registry alias.+ defaultRegistryAlias :: Prelude.Bool+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RegistryAlias' 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', 'registryAlias_name' - The name of the registry alias.+--+-- 'status', 'registryAlias_status' - The status of the registry alias.+--+-- 'primaryRegistryAlias', 'registryAlias_primaryRegistryAlias' - Whether or not the registry alias is the primary alias for the registry.+-- If true, the alias is the primary registry alias and is displayed in+-- both the repository URL and the image URI used in the @docker pull@+-- commands on the Amazon ECR Public Gallery.+--+-- A registry alias that is not the primary registry alias can be used in+-- the repository URI in a @docker pull@ command.+--+-- 'defaultRegistryAlias', 'registryAlias_defaultRegistryAlias' - Whether or not the registry alias is the default alias for the registry.+-- When the first public repository is created, your public registry is+-- assigned a default registry alias.+newRegistryAlias ::+ -- | 'name'+ Prelude.Text ->+ -- | 'status'+ RegistryAliasStatus ->+ -- | 'primaryRegistryAlias'+ Prelude.Bool ->+ -- | 'defaultRegistryAlias'+ Prelude.Bool ->+ RegistryAlias+newRegistryAlias+ pName_+ pStatus_+ pPrimaryRegistryAlias_+ pDefaultRegistryAlias_ =+ RegistryAlias'+ { name = pName_,+ status = pStatus_,+ primaryRegistryAlias = pPrimaryRegistryAlias_,+ defaultRegistryAlias = pDefaultRegistryAlias_+ }++-- | The name of the registry alias.+registryAlias_name :: Lens.Lens' RegistryAlias Prelude.Text+registryAlias_name = Lens.lens (\RegistryAlias' {name} -> name) (\s@RegistryAlias' {} a -> s {name = a} :: RegistryAlias)++-- | The status of the registry alias.+registryAlias_status :: Lens.Lens' RegistryAlias RegistryAliasStatus+registryAlias_status = Lens.lens (\RegistryAlias' {status} -> status) (\s@RegistryAlias' {} a -> s {status = a} :: RegistryAlias)++-- | Whether or not the registry alias is the primary alias for the registry.+-- If true, the alias is the primary registry alias and is displayed in+-- both the repository URL and the image URI used in the @docker pull@+-- commands on the Amazon ECR Public Gallery.+--+-- A registry alias that is not the primary registry alias can be used in+-- the repository URI in a @docker pull@ command.+registryAlias_primaryRegistryAlias :: Lens.Lens' RegistryAlias Prelude.Bool+registryAlias_primaryRegistryAlias = Lens.lens (\RegistryAlias' {primaryRegistryAlias} -> primaryRegistryAlias) (\s@RegistryAlias' {} a -> s {primaryRegistryAlias = a} :: RegistryAlias)++-- | Whether or not the registry alias is the default alias for the registry.+-- When the first public repository is created, your public registry is+-- assigned a default registry alias.+registryAlias_defaultRegistryAlias :: Lens.Lens' RegistryAlias Prelude.Bool+registryAlias_defaultRegistryAlias = Lens.lens (\RegistryAlias' {defaultRegistryAlias} -> defaultRegistryAlias) (\s@RegistryAlias' {} a -> s {defaultRegistryAlias = a} :: RegistryAlias)++instance Data.FromJSON RegistryAlias where+ parseJSON =+ Data.withObject+ "RegistryAlias"+ ( \x ->+ RegistryAlias'+ Prelude.<$> (x Data..: "name")+ Prelude.<*> (x Data..: "status")+ Prelude.<*> (x Data..: "primaryRegistryAlias")+ Prelude.<*> (x Data..: "defaultRegistryAlias")+ )++instance Prelude.Hashable RegistryAlias where+ hashWithSalt _salt RegistryAlias' {..} =+ _salt+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` status+ `Prelude.hashWithSalt` primaryRegistryAlias+ `Prelude.hashWithSalt` defaultRegistryAlias++instance Prelude.NFData RegistryAlias where+ rnf RegistryAlias' {..} =+ Prelude.rnf name+ `Prelude.seq` Prelude.rnf status+ `Prelude.seq` Prelude.rnf primaryRegistryAlias+ `Prelude.seq` Prelude.rnf defaultRegistryAlias
+ gen/Amazonka/ECRPublic/Types/RegistryAliasStatus.hs view
@@ -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.ECRPublic.Types.RegistryAliasStatus+-- 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.ECRPublic.Types.RegistryAliasStatus+ ( RegistryAliasStatus+ ( ..,+ RegistryAliasStatus_ACTIVE,+ RegistryAliasStatus_PENDING,+ RegistryAliasStatus_REJECTED+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype RegistryAliasStatus = RegistryAliasStatus'+ { fromRegistryAliasStatus ::+ 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 RegistryAliasStatus_ACTIVE :: RegistryAliasStatus+pattern RegistryAliasStatus_ACTIVE = RegistryAliasStatus' "ACTIVE"++pattern RegistryAliasStatus_PENDING :: RegistryAliasStatus+pattern RegistryAliasStatus_PENDING = RegistryAliasStatus' "PENDING"++pattern RegistryAliasStatus_REJECTED :: RegistryAliasStatus+pattern RegistryAliasStatus_REJECTED = RegistryAliasStatus' "REJECTED"++{-# COMPLETE+ RegistryAliasStatus_ACTIVE,+ RegistryAliasStatus_PENDING,+ RegistryAliasStatus_REJECTED,+ RegistryAliasStatus'+ #-}
+ gen/Amazonka/ECRPublic/Types/RegistryCatalogData.hs view
@@ -0,0 +1,81 @@+{-# 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.ECRPublic.Types.RegistryCatalogData+-- 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.ECRPublic.Types.RegistryCatalogData where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The metadata for a public registry.+--+-- /See:/ 'newRegistryCatalogData' smart constructor.+data RegistryCatalogData = RegistryCatalogData'+ { -- | The display name for a public registry. This appears on the Amazon ECR+ -- Public Gallery.+ --+ -- Only accounts that have the verified account badge can have a registry+ -- display name.+ displayName :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RegistryCatalogData' 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:+--+-- 'displayName', 'registryCatalogData_displayName' - The display name for a public registry. This appears on the Amazon ECR+-- Public Gallery.+--+-- Only accounts that have the verified account badge can have a registry+-- display name.+newRegistryCatalogData ::+ RegistryCatalogData+newRegistryCatalogData =+ RegistryCatalogData' {displayName = Prelude.Nothing}++-- | The display name for a public registry. This appears on the Amazon ECR+-- Public Gallery.+--+-- Only accounts that have the verified account badge can have a registry+-- display name.+registryCatalogData_displayName :: Lens.Lens' RegistryCatalogData (Prelude.Maybe Prelude.Text)+registryCatalogData_displayName = Lens.lens (\RegistryCatalogData' {displayName} -> displayName) (\s@RegistryCatalogData' {} a -> s {displayName = a} :: RegistryCatalogData)++instance Data.FromJSON RegistryCatalogData where+ parseJSON =+ Data.withObject+ "RegistryCatalogData"+ ( \x ->+ RegistryCatalogData'+ Prelude.<$> (x Data..:? "displayName")+ )++instance Prelude.Hashable RegistryCatalogData where+ hashWithSalt _salt RegistryCatalogData' {..} =+ _salt `Prelude.hashWithSalt` displayName++instance Prelude.NFData RegistryCatalogData where+ rnf RegistryCatalogData' {..} =+ Prelude.rnf displayName
+ gen/Amazonka/ECRPublic/Types/Repository.hs view
@@ -0,0 +1,141 @@+{-# 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.ECRPublic.Types.Repository+-- 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.ECRPublic.Types.Repository 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++-- | An object representing a repository.+--+-- /See:/ 'newRepository' smart constructor.+data Repository = Repository'+ { -- | The date and time, in JavaScript date format, when the repository was+ -- created.+ createdAt :: Prelude.Maybe Data.POSIX,+ -- | The AWS account ID associated with the public registry that contains the+ -- repository.+ registryId :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) that identifies the repository. The ARN+ -- contains the @arn:aws:ecr@ namespace, followed by the region of the+ -- repository, AWS account ID of the repository owner, repository+ -- namespace, and repository name. For example,+ -- @arn:aws:ecr:region:012345678910:repository\/test@.+ repositoryArn :: Prelude.Maybe Prelude.Text,+ -- | The name of the repository.+ repositoryName :: Prelude.Maybe Prelude.Text,+ -- | The URI for the repository. You can use this URI for container image+ -- @push@ and @pull@ operations.+ repositoryUri :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Repository' 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:+--+-- 'createdAt', 'repository_createdAt' - The date and time, in JavaScript date format, when the repository was+-- created.+--+-- 'registryId', 'repository_registryId' - The AWS account ID associated with the public registry that contains the+-- repository.+--+-- 'repositoryArn', 'repository_repositoryArn' - The Amazon Resource Name (ARN) that identifies the repository. The ARN+-- contains the @arn:aws:ecr@ namespace, followed by the region of the+-- repository, AWS account ID of the repository owner, repository+-- namespace, and repository name. For example,+-- @arn:aws:ecr:region:012345678910:repository\/test@.+--+-- 'repositoryName', 'repository_repositoryName' - The name of the repository.+--+-- 'repositoryUri', 'repository_repositoryUri' - The URI for the repository. You can use this URI for container image+-- @push@ and @pull@ operations.+newRepository ::+ Repository+newRepository =+ Repository'+ { createdAt = Prelude.Nothing,+ registryId = Prelude.Nothing,+ repositoryArn = Prelude.Nothing,+ repositoryName = Prelude.Nothing,+ repositoryUri = Prelude.Nothing+ }++-- | The date and time, in JavaScript date format, when the repository was+-- created.+repository_createdAt :: Lens.Lens' Repository (Prelude.Maybe Prelude.UTCTime)+repository_createdAt = Lens.lens (\Repository' {createdAt} -> createdAt) (\s@Repository' {} a -> s {createdAt = a} :: Repository) Prelude.. Lens.mapping Data._Time++-- | The AWS account ID associated with the public registry that contains the+-- repository.+repository_registryId :: Lens.Lens' Repository (Prelude.Maybe Prelude.Text)+repository_registryId = Lens.lens (\Repository' {registryId} -> registryId) (\s@Repository' {} a -> s {registryId = a} :: Repository)++-- | The Amazon Resource Name (ARN) that identifies the repository. The ARN+-- contains the @arn:aws:ecr@ namespace, followed by the region of the+-- repository, AWS account ID of the repository owner, repository+-- namespace, and repository name. For example,+-- @arn:aws:ecr:region:012345678910:repository\/test@.+repository_repositoryArn :: Lens.Lens' Repository (Prelude.Maybe Prelude.Text)+repository_repositoryArn = Lens.lens (\Repository' {repositoryArn} -> repositoryArn) (\s@Repository' {} a -> s {repositoryArn = a} :: Repository)++-- | The name of the repository.+repository_repositoryName :: Lens.Lens' Repository (Prelude.Maybe Prelude.Text)+repository_repositoryName = Lens.lens (\Repository' {repositoryName} -> repositoryName) (\s@Repository' {} a -> s {repositoryName = a} :: Repository)++-- | The URI for the repository. You can use this URI for container image+-- @push@ and @pull@ operations.+repository_repositoryUri :: Lens.Lens' Repository (Prelude.Maybe Prelude.Text)+repository_repositoryUri = Lens.lens (\Repository' {repositoryUri} -> repositoryUri) (\s@Repository' {} a -> s {repositoryUri = a} :: Repository)++instance Data.FromJSON Repository where+ parseJSON =+ Data.withObject+ "Repository"+ ( \x ->+ Repository'+ Prelude.<$> (x Data..:? "createdAt")+ Prelude.<*> (x Data..:? "registryId")+ Prelude.<*> (x Data..:? "repositoryArn")+ Prelude.<*> (x Data..:? "repositoryName")+ Prelude.<*> (x Data..:? "repositoryUri")+ )++instance Prelude.Hashable Repository where+ hashWithSalt _salt Repository' {..} =+ _salt+ `Prelude.hashWithSalt` createdAt+ `Prelude.hashWithSalt` registryId+ `Prelude.hashWithSalt` repositoryArn+ `Prelude.hashWithSalt` repositoryName+ `Prelude.hashWithSalt` repositoryUri++instance Prelude.NFData Repository where+ rnf Repository' {..} =+ Prelude.rnf createdAt+ `Prelude.seq` Prelude.rnf registryId+ `Prelude.seq` Prelude.rnf repositoryArn+ `Prelude.seq` Prelude.rnf repositoryName+ `Prelude.seq` Prelude.rnf repositoryUri
+ gen/Amazonka/ECRPublic/Types/RepositoryCatalogData.hs view
@@ -0,0 +1,172 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ECRPublic.Types.RepositoryCatalogData+-- 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.ECRPublic.Types.RepositoryCatalogData where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The catalog data for a repository. This data is publicly visible in the+-- Amazon ECR Public Gallery.+--+-- /See:/ 'newRepositoryCatalogData' smart constructor.+data RepositoryCatalogData = RepositoryCatalogData'+ { -- | The longform description of the contents of the repository. This text+ -- appears in the repository details on the Amazon ECR Public Gallery.+ aboutText :: Prelude.Maybe Prelude.Text,+ -- | The architecture tags that are associated with the repository.+ --+ -- Only supported operating system tags appear publicly in the Amazon ECR+ -- Public Gallery. For more information, see RepositoryCatalogDataInput.+ architectures :: Prelude.Maybe [Prelude.Text],+ -- | The short description of the repository.+ description :: Prelude.Maybe Prelude.Text,+ -- | The URL containing the logo associated with the repository.+ logoUrl :: Prelude.Maybe Prelude.Text,+ -- | Whether or not the repository is certified by AWS Marketplace.+ marketplaceCertified :: Prelude.Maybe Prelude.Bool,+ -- | The operating system tags that are associated with the repository.+ --+ -- Only supported operating system tags appear publicly in the Amazon ECR+ -- Public Gallery. For more information, see RepositoryCatalogDataInput.+ operatingSystems :: Prelude.Maybe [Prelude.Text],+ -- | The longform usage details of the contents of the repository. The usage+ -- text provides context for users of the repository.+ usageText :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RepositoryCatalogData' 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:+--+-- 'aboutText', 'repositoryCatalogData_aboutText' - The longform description of the contents of the repository. This text+-- appears in the repository details on the Amazon ECR Public Gallery.+--+-- 'architectures', 'repositoryCatalogData_architectures' - The architecture tags that are associated with the repository.+--+-- Only supported operating system tags appear publicly in the Amazon ECR+-- Public Gallery. For more information, see RepositoryCatalogDataInput.+--+-- 'description', 'repositoryCatalogData_description' - The short description of the repository.+--+-- 'logoUrl', 'repositoryCatalogData_logoUrl' - The URL containing the logo associated with the repository.+--+-- 'marketplaceCertified', 'repositoryCatalogData_marketplaceCertified' - Whether or not the repository is certified by AWS Marketplace.+--+-- 'operatingSystems', 'repositoryCatalogData_operatingSystems' - The operating system tags that are associated with the repository.+--+-- Only supported operating system tags appear publicly in the Amazon ECR+-- Public Gallery. For more information, see RepositoryCatalogDataInput.+--+-- 'usageText', 'repositoryCatalogData_usageText' - The longform usage details of the contents of the repository. The usage+-- text provides context for users of the repository.+newRepositoryCatalogData ::+ RepositoryCatalogData+newRepositoryCatalogData =+ RepositoryCatalogData'+ { aboutText = Prelude.Nothing,+ architectures = Prelude.Nothing,+ description = Prelude.Nothing,+ logoUrl = Prelude.Nothing,+ marketplaceCertified = Prelude.Nothing,+ operatingSystems = Prelude.Nothing,+ usageText = Prelude.Nothing+ }++-- | The longform description of the contents of the repository. This text+-- appears in the repository details on the Amazon ECR Public Gallery.+repositoryCatalogData_aboutText :: Lens.Lens' RepositoryCatalogData (Prelude.Maybe Prelude.Text)+repositoryCatalogData_aboutText = Lens.lens (\RepositoryCatalogData' {aboutText} -> aboutText) (\s@RepositoryCatalogData' {} a -> s {aboutText = a} :: RepositoryCatalogData)++-- | The architecture tags that are associated with the repository.+--+-- Only supported operating system tags appear publicly in the Amazon ECR+-- Public Gallery. For more information, see RepositoryCatalogDataInput.+repositoryCatalogData_architectures :: Lens.Lens' RepositoryCatalogData (Prelude.Maybe [Prelude.Text])+repositoryCatalogData_architectures = Lens.lens (\RepositoryCatalogData' {architectures} -> architectures) (\s@RepositoryCatalogData' {} a -> s {architectures = a} :: RepositoryCatalogData) Prelude.. Lens.mapping Lens.coerced++-- | The short description of the repository.+repositoryCatalogData_description :: Lens.Lens' RepositoryCatalogData (Prelude.Maybe Prelude.Text)+repositoryCatalogData_description = Lens.lens (\RepositoryCatalogData' {description} -> description) (\s@RepositoryCatalogData' {} a -> s {description = a} :: RepositoryCatalogData)++-- | The URL containing the logo associated with the repository.+repositoryCatalogData_logoUrl :: Lens.Lens' RepositoryCatalogData (Prelude.Maybe Prelude.Text)+repositoryCatalogData_logoUrl = Lens.lens (\RepositoryCatalogData' {logoUrl} -> logoUrl) (\s@RepositoryCatalogData' {} a -> s {logoUrl = a} :: RepositoryCatalogData)++-- | Whether or not the repository is certified by AWS Marketplace.+repositoryCatalogData_marketplaceCertified :: Lens.Lens' RepositoryCatalogData (Prelude.Maybe Prelude.Bool)+repositoryCatalogData_marketplaceCertified = Lens.lens (\RepositoryCatalogData' {marketplaceCertified} -> marketplaceCertified) (\s@RepositoryCatalogData' {} a -> s {marketplaceCertified = a} :: RepositoryCatalogData)++-- | The operating system tags that are associated with the repository.+--+-- Only supported operating system tags appear publicly in the Amazon ECR+-- Public Gallery. For more information, see RepositoryCatalogDataInput.+repositoryCatalogData_operatingSystems :: Lens.Lens' RepositoryCatalogData (Prelude.Maybe [Prelude.Text])+repositoryCatalogData_operatingSystems = Lens.lens (\RepositoryCatalogData' {operatingSystems} -> operatingSystems) (\s@RepositoryCatalogData' {} a -> s {operatingSystems = a} :: RepositoryCatalogData) Prelude.. Lens.mapping Lens.coerced++-- | The longform usage details of the contents of the repository. The usage+-- text provides context for users of the repository.+repositoryCatalogData_usageText :: Lens.Lens' RepositoryCatalogData (Prelude.Maybe Prelude.Text)+repositoryCatalogData_usageText = Lens.lens (\RepositoryCatalogData' {usageText} -> usageText) (\s@RepositoryCatalogData' {} a -> s {usageText = a} :: RepositoryCatalogData)++instance Data.FromJSON RepositoryCatalogData where+ parseJSON =+ Data.withObject+ "RepositoryCatalogData"+ ( \x ->+ RepositoryCatalogData'+ Prelude.<$> (x Data..:? "aboutText")+ Prelude.<*> (x Data..:? "architectures" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "description")+ Prelude.<*> (x Data..:? "logoUrl")+ Prelude.<*> (x Data..:? "marketplaceCertified")+ Prelude.<*> ( x+ Data..:? "operatingSystems"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..:? "usageText")+ )++instance Prelude.Hashable RepositoryCatalogData where+ hashWithSalt _salt RepositoryCatalogData' {..} =+ _salt+ `Prelude.hashWithSalt` aboutText+ `Prelude.hashWithSalt` architectures+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` logoUrl+ `Prelude.hashWithSalt` marketplaceCertified+ `Prelude.hashWithSalt` operatingSystems+ `Prelude.hashWithSalt` usageText++instance Prelude.NFData RepositoryCatalogData where+ rnf RepositoryCatalogData' {..} =+ Prelude.rnf aboutText+ `Prelude.seq` Prelude.rnf architectures+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf logoUrl+ `Prelude.seq` Prelude.rnf marketplaceCertified+ `Prelude.seq` Prelude.rnf operatingSystems+ `Prelude.seq` Prelude.rnf usageText
+ gen/Amazonka/ECRPublic/Types/RepositoryCatalogDataInput.hs view
@@ -0,0 +1,250 @@+{-# 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.ECRPublic.Types.RepositoryCatalogDataInput+-- 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.ECRPublic.Types.RepositoryCatalogDataInput 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++-- | An object containing the catalog data for a repository. This data is+-- publicly visible in the Amazon ECR Public Gallery.+--+-- /See:/ 'newRepositoryCatalogDataInput' smart constructor.+data RepositoryCatalogDataInput = RepositoryCatalogDataInput'+ { -- | A detailed description of the contents of the repository. It is publicly+ -- visible in the Amazon ECR Public Gallery. The text must be in markdown+ -- format.+ aboutText :: Prelude.Maybe Prelude.Text,+ -- | The system architecture that the images in the repository are compatible+ -- with. On the Amazon ECR Public Gallery, the following supported+ -- architectures will appear as badges on the repository and are used as+ -- search filters.+ --+ -- - @Linux@+ --+ -- - @Windows@+ --+ -- If an unsupported tag is added to your repository catalog data, it will+ -- be associated with the repository and can be retrieved using the API but+ -- will not be discoverable in the Amazon ECR Public Gallery.+ architectures :: Prelude.Maybe [Prelude.Text],+ -- | A short description of the contents of the repository. This text appears+ -- in both the image details and also when searching for repositories on+ -- the Amazon ECR Public Gallery.+ description :: Prelude.Maybe Prelude.Text,+ -- | The base64-encoded repository logo payload.+ --+ -- The repository logo is only publicly visible in the Amazon ECR Public+ -- Gallery for verified accounts.+ logoImageBlob :: Prelude.Maybe Data.Base64,+ -- | The operating systems that the images in the repository are compatible+ -- with. On the Amazon ECR Public Gallery, the following supported+ -- operating systems will appear as badges on the repository and are used+ -- as search filters.+ --+ -- - @ARM@+ --+ -- - @ARM 64@+ --+ -- - @x86@+ --+ -- - @x86-64@+ --+ -- If an unsupported tag is added to your repository catalog data, it will+ -- be associated with the repository and can be retrieved using the API but+ -- will not be discoverable in the Amazon ECR Public Gallery.+ operatingSystems :: Prelude.Maybe [Prelude.Text],+ -- | Detailed information on how to use the contents of the repository. It is+ -- publicly visible in the Amazon ECR Public Gallery. The usage text+ -- provides context, support information, and additional usage details for+ -- users of the repository. The text must be in markdown format.+ usageText :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RepositoryCatalogDataInput' 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:+--+-- 'aboutText', 'repositoryCatalogDataInput_aboutText' - A detailed description of the contents of the repository. It is publicly+-- visible in the Amazon ECR Public Gallery. The text must be in markdown+-- format.+--+-- 'architectures', 'repositoryCatalogDataInput_architectures' - The system architecture that the images in the repository are compatible+-- with. On the Amazon ECR Public Gallery, the following supported+-- architectures will appear as badges on the repository and are used as+-- search filters.+--+-- - @Linux@+--+-- - @Windows@+--+-- If an unsupported tag is added to your repository catalog data, it will+-- be associated with the repository and can be retrieved using the API but+-- will not be discoverable in the Amazon ECR Public Gallery.+--+-- 'description', 'repositoryCatalogDataInput_description' - A short description of the contents of the repository. This text appears+-- in both the image details and also when searching for repositories on+-- the Amazon ECR Public Gallery.+--+-- 'logoImageBlob', 'repositoryCatalogDataInput_logoImageBlob' - The base64-encoded repository logo payload.+--+-- The repository logo is only publicly visible in the Amazon ECR Public+-- Gallery for verified accounts.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+--+-- 'operatingSystems', 'repositoryCatalogDataInput_operatingSystems' - The operating systems that the images in the repository are compatible+-- with. On the Amazon ECR Public Gallery, the following supported+-- operating systems will appear as badges on the repository and are used+-- as search filters.+--+-- - @ARM@+--+-- - @ARM 64@+--+-- - @x86@+--+-- - @x86-64@+--+-- If an unsupported tag is added to your repository catalog data, it will+-- be associated with the repository and can be retrieved using the API but+-- will not be discoverable in the Amazon ECR Public Gallery.+--+-- 'usageText', 'repositoryCatalogDataInput_usageText' - Detailed information on how to use the contents of the repository. It is+-- publicly visible in the Amazon ECR Public Gallery. The usage text+-- provides context, support information, and additional usage details for+-- users of the repository. The text must be in markdown format.+newRepositoryCatalogDataInput ::+ RepositoryCatalogDataInput+newRepositoryCatalogDataInput =+ RepositoryCatalogDataInput'+ { aboutText =+ Prelude.Nothing,+ architectures = Prelude.Nothing,+ description = Prelude.Nothing,+ logoImageBlob = Prelude.Nothing,+ operatingSystems = Prelude.Nothing,+ usageText = Prelude.Nothing+ }++-- | A detailed description of the contents of the repository. It is publicly+-- visible in the Amazon ECR Public Gallery. The text must be in markdown+-- format.+repositoryCatalogDataInput_aboutText :: Lens.Lens' RepositoryCatalogDataInput (Prelude.Maybe Prelude.Text)+repositoryCatalogDataInput_aboutText = Lens.lens (\RepositoryCatalogDataInput' {aboutText} -> aboutText) (\s@RepositoryCatalogDataInput' {} a -> s {aboutText = a} :: RepositoryCatalogDataInput)++-- | The system architecture that the images in the repository are compatible+-- with. On the Amazon ECR Public Gallery, the following supported+-- architectures will appear as badges on the repository and are used as+-- search filters.+--+-- - @Linux@+--+-- - @Windows@+--+-- If an unsupported tag is added to your repository catalog data, it will+-- be associated with the repository and can be retrieved using the API but+-- will not be discoverable in the Amazon ECR Public Gallery.+repositoryCatalogDataInput_architectures :: Lens.Lens' RepositoryCatalogDataInput (Prelude.Maybe [Prelude.Text])+repositoryCatalogDataInput_architectures = Lens.lens (\RepositoryCatalogDataInput' {architectures} -> architectures) (\s@RepositoryCatalogDataInput' {} a -> s {architectures = a} :: RepositoryCatalogDataInput) Prelude.. Lens.mapping Lens.coerced++-- | A short description of the contents of the repository. This text appears+-- in both the image details and also when searching for repositories on+-- the Amazon ECR Public Gallery.+repositoryCatalogDataInput_description :: Lens.Lens' RepositoryCatalogDataInput (Prelude.Maybe Prelude.Text)+repositoryCatalogDataInput_description = Lens.lens (\RepositoryCatalogDataInput' {description} -> description) (\s@RepositoryCatalogDataInput' {} a -> s {description = a} :: RepositoryCatalogDataInput)++-- | The base64-encoded repository logo payload.+--+-- The repository logo is only publicly visible in the Amazon ECR Public+-- Gallery for verified accounts.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+repositoryCatalogDataInput_logoImageBlob :: Lens.Lens' RepositoryCatalogDataInput (Prelude.Maybe Prelude.ByteString)+repositoryCatalogDataInput_logoImageBlob = Lens.lens (\RepositoryCatalogDataInput' {logoImageBlob} -> logoImageBlob) (\s@RepositoryCatalogDataInput' {} a -> s {logoImageBlob = a} :: RepositoryCatalogDataInput) Prelude.. Lens.mapping Data._Base64++-- | The operating systems that the images in the repository are compatible+-- with. On the Amazon ECR Public Gallery, the following supported+-- operating systems will appear as badges on the repository and are used+-- as search filters.+--+-- - @ARM@+--+-- - @ARM 64@+--+-- - @x86@+--+-- - @x86-64@+--+-- If an unsupported tag is added to your repository catalog data, it will+-- be associated with the repository and can be retrieved using the API but+-- will not be discoverable in the Amazon ECR Public Gallery.+repositoryCatalogDataInput_operatingSystems :: Lens.Lens' RepositoryCatalogDataInput (Prelude.Maybe [Prelude.Text])+repositoryCatalogDataInput_operatingSystems = Lens.lens (\RepositoryCatalogDataInput' {operatingSystems} -> operatingSystems) (\s@RepositoryCatalogDataInput' {} a -> s {operatingSystems = a} :: RepositoryCatalogDataInput) Prelude.. Lens.mapping Lens.coerced++-- | Detailed information on how to use the contents of the repository. It is+-- publicly visible in the Amazon ECR Public Gallery. The usage text+-- provides context, support information, and additional usage details for+-- users of the repository. The text must be in markdown format.+repositoryCatalogDataInput_usageText :: Lens.Lens' RepositoryCatalogDataInput (Prelude.Maybe Prelude.Text)+repositoryCatalogDataInput_usageText = Lens.lens (\RepositoryCatalogDataInput' {usageText} -> usageText) (\s@RepositoryCatalogDataInput' {} a -> s {usageText = a} :: RepositoryCatalogDataInput)++instance Prelude.Hashable RepositoryCatalogDataInput where+ hashWithSalt _salt RepositoryCatalogDataInput' {..} =+ _salt+ `Prelude.hashWithSalt` aboutText+ `Prelude.hashWithSalt` architectures+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` logoImageBlob+ `Prelude.hashWithSalt` operatingSystems+ `Prelude.hashWithSalt` usageText++instance Prelude.NFData RepositoryCatalogDataInput where+ rnf RepositoryCatalogDataInput' {..} =+ Prelude.rnf aboutText+ `Prelude.seq` Prelude.rnf architectures+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf logoImageBlob+ `Prelude.seq` Prelude.rnf operatingSystems+ `Prelude.seq` Prelude.rnf usageText++instance Data.ToJSON RepositoryCatalogDataInput where+ toJSON RepositoryCatalogDataInput' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("aboutText" Data..=) Prelude.<$> aboutText,+ ("architectures" Data..=) Prelude.<$> architectures,+ ("description" Data..=) Prelude.<$> description,+ ("logoImageBlob" Data..=) Prelude.<$> logoImageBlob,+ ("operatingSystems" Data..=)+ Prelude.<$> operatingSystems,+ ("usageText" Data..=) Prelude.<$> usageText+ ]+ )
+ gen/Amazonka/ECRPublic/Types/Tag.hs view
@@ -0,0 +1,101 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ECRPublic.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.ECRPublic.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++-- | The metadata that you apply to a resource to help you categorize and+-- organize them. Each tag consists of a key and an optional value, both of+-- which you define. Tag keys can have a maximum character length of 128+-- characters, and tag values can have a maximum length of 256 characters.+--+-- /See:/ 'newTag' smart constructor.+data Tag = Tag'+ { -- | One part of a key-value pair that make up a tag. A @key@ is a general+ -- label that acts like a category for more specific tag values.+ key :: Prelude.Maybe Prelude.Text,+ -- | The optional part of a key-value pair that make up a tag. A @value@ acts+ -- as a descriptor within a tag category (key).+ 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' - One part of a key-value pair that make up a tag. A @key@ is a general+-- label that acts like a category for more specific tag values.+--+-- 'value', 'tag_value' - The optional part of a key-value pair that make up a tag. A @value@ acts+-- as a descriptor within a tag category (key).+newTag ::+ Tag+newTag =+ Tag'+ { key = Prelude.Nothing,+ value = Prelude.Nothing+ }++-- | One part of a key-value pair that make up a tag. A @key@ is a general+-- label that acts like a category for more specific tag values.+tag_key :: Lens.Lens' Tag (Prelude.Maybe Prelude.Text)+tag_key = Lens.lens (\Tag' {key} -> key) (\s@Tag' {} a -> s {key = a} :: Tag)++-- | The optional part of a key-value pair that make up a tag. A @value@ acts+-- as a descriptor within a tag category (key).+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+ ]+ )
+ gen/Amazonka/ECRPublic/UntagResource.hs view
@@ -0,0 +1,177 @@+{-# 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.ECRPublic.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)+--+-- Deletes specified tags from a resource.+module Amazonka.ECRPublic.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.ECRPublic.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'+ { -- | The Amazon Resource Name (ARN) of the resource from which to delete+ -- tags. Currently, the supported resource is an Amazon ECR Public+ -- repository.+ resourceArn :: Prelude.Text,+ -- | The keys of the tags to be removed.+ 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' - The Amazon Resource Name (ARN) of the resource from which to delete+-- tags. Currently, the supported resource is an Amazon ECR Public+-- repository.+--+-- 'tagKeys', 'untagResource_tagKeys' - The keys of the tags to be removed.+newUntagResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ UntagResource+newUntagResource pResourceArn_ =+ UntagResource'+ { resourceArn = pResourceArn_,+ tagKeys = Prelude.mempty+ }++-- | The Amazon Resource Name (ARN) of the resource from which to delete+-- tags. Currently, the supported resource is an Amazon ECR Public+-- repository.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | The keys of the tags to be removed.+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.=# ( "SpencerFrontendService.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
+ gen/Amazonka/ECRPublic/UploadLayerPart.hs view
@@ -0,0 +1,321 @@+{-# 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.ECRPublic.UploadLayerPart+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Uploads an image layer part to Amazon ECR.+--+-- When an image is pushed, each new image layer is uploaded in parts. The+-- maximum size of each image layer part can be 20971520 bytes (or about+-- 20MB). The UploadLayerPart API is called once per each new image layer+-- part.+--+-- This operation is used by the Amazon ECR proxy and is not generally used+-- by customers for pulling and pushing images. In most cases, you should+-- use the @docker@ CLI to pull, tag, and push images.+module Amazonka.ECRPublic.UploadLayerPart+ ( -- * Creating a Request+ UploadLayerPart (..),+ newUploadLayerPart,++ -- * Request Lenses+ uploadLayerPart_registryId,+ uploadLayerPart_repositoryName,+ uploadLayerPart_uploadId,+ uploadLayerPart_partFirstByte,+ uploadLayerPart_partLastByte,+ uploadLayerPart_layerPartBlob,++ -- * Destructuring the Response+ UploadLayerPartResponse (..),+ newUploadLayerPartResponse,++ -- * Response Lenses+ uploadLayerPartResponse_lastByteReceived,+ uploadLayerPartResponse_registryId,+ uploadLayerPartResponse_repositoryName,+ uploadLayerPartResponse_uploadId,+ uploadLayerPartResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ECRPublic.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUploadLayerPart' smart constructor.+data UploadLayerPart = UploadLayerPart'+ { -- | The AWS account ID associated with the registry to which you are+ -- uploading layer parts. If you do not specify a registry, the default+ -- public registry is assumed.+ registryId :: Prelude.Maybe Prelude.Text,+ -- | The name of the repository to which you are uploading layer parts.+ repositoryName :: Prelude.Text,+ -- | The upload ID from a previous InitiateLayerUpload operation to associate+ -- with the layer part upload.+ uploadId :: Prelude.Text,+ -- | The position of the first byte of the layer part witin the overall image+ -- layer.+ partFirstByte :: Prelude.Natural,+ -- | The position of the last byte of the layer part within the overall image+ -- layer.+ partLastByte :: Prelude.Natural,+ -- | The base64-encoded layer part payload.+ layerPartBlob :: Data.Base64+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UploadLayerPart' 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:+--+-- 'registryId', 'uploadLayerPart_registryId' - The AWS account ID associated with the registry to which you are+-- uploading layer parts. If you do not specify a registry, the default+-- public registry is assumed.+--+-- 'repositoryName', 'uploadLayerPart_repositoryName' - The name of the repository to which you are uploading layer parts.+--+-- 'uploadId', 'uploadLayerPart_uploadId' - The upload ID from a previous InitiateLayerUpload operation to associate+-- with the layer part upload.+--+-- 'partFirstByte', 'uploadLayerPart_partFirstByte' - The position of the first byte of the layer part witin the overall image+-- layer.+--+-- 'partLastByte', 'uploadLayerPart_partLastByte' - The position of the last byte of the layer part within the overall image+-- layer.+--+-- 'layerPartBlob', 'uploadLayerPart_layerPartBlob' - The base64-encoded layer part payload.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+newUploadLayerPart ::+ -- | 'repositoryName'+ Prelude.Text ->+ -- | 'uploadId'+ Prelude.Text ->+ -- | 'partFirstByte'+ Prelude.Natural ->+ -- | 'partLastByte'+ Prelude.Natural ->+ -- | 'layerPartBlob'+ Prelude.ByteString ->+ UploadLayerPart+newUploadLayerPart+ pRepositoryName_+ pUploadId_+ pPartFirstByte_+ pPartLastByte_+ pLayerPartBlob_ =+ UploadLayerPart'+ { registryId = Prelude.Nothing,+ repositoryName = pRepositoryName_,+ uploadId = pUploadId_,+ partFirstByte = pPartFirstByte_,+ partLastByte = pPartLastByte_,+ layerPartBlob = Data._Base64 Lens.# pLayerPartBlob_+ }++-- | The AWS account ID associated with the registry to which you are+-- uploading layer parts. If you do not specify a registry, the default+-- public registry is assumed.+uploadLayerPart_registryId :: Lens.Lens' UploadLayerPart (Prelude.Maybe Prelude.Text)+uploadLayerPart_registryId = Lens.lens (\UploadLayerPart' {registryId} -> registryId) (\s@UploadLayerPart' {} a -> s {registryId = a} :: UploadLayerPart)++-- | The name of the repository to which you are uploading layer parts.+uploadLayerPart_repositoryName :: Lens.Lens' UploadLayerPart Prelude.Text+uploadLayerPart_repositoryName = Lens.lens (\UploadLayerPart' {repositoryName} -> repositoryName) (\s@UploadLayerPart' {} a -> s {repositoryName = a} :: UploadLayerPart)++-- | The upload ID from a previous InitiateLayerUpload operation to associate+-- with the layer part upload.+uploadLayerPart_uploadId :: Lens.Lens' UploadLayerPart Prelude.Text+uploadLayerPart_uploadId = Lens.lens (\UploadLayerPart' {uploadId} -> uploadId) (\s@UploadLayerPart' {} a -> s {uploadId = a} :: UploadLayerPart)++-- | The position of the first byte of the layer part witin the overall image+-- layer.+uploadLayerPart_partFirstByte :: Lens.Lens' UploadLayerPart Prelude.Natural+uploadLayerPart_partFirstByte = Lens.lens (\UploadLayerPart' {partFirstByte} -> partFirstByte) (\s@UploadLayerPart' {} a -> s {partFirstByte = a} :: UploadLayerPart)++-- | The position of the last byte of the layer part within the overall image+-- layer.+uploadLayerPart_partLastByte :: Lens.Lens' UploadLayerPart Prelude.Natural+uploadLayerPart_partLastByte = Lens.lens (\UploadLayerPart' {partLastByte} -> partLastByte) (\s@UploadLayerPart' {} a -> s {partLastByte = a} :: UploadLayerPart)++-- | The base64-encoded layer part payload.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+uploadLayerPart_layerPartBlob :: Lens.Lens' UploadLayerPart Prelude.ByteString+uploadLayerPart_layerPartBlob = Lens.lens (\UploadLayerPart' {layerPartBlob} -> layerPartBlob) (\s@UploadLayerPart' {} a -> s {layerPartBlob = a} :: UploadLayerPart) Prelude.. Data._Base64++instance Core.AWSRequest UploadLayerPart where+ type+ AWSResponse UploadLayerPart =+ UploadLayerPartResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UploadLayerPartResponse'+ Prelude.<$> (x Data..?> "lastByteReceived")+ Prelude.<*> (x Data..?> "registryId")+ Prelude.<*> (x Data..?> "repositoryName")+ Prelude.<*> (x Data..?> "uploadId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UploadLayerPart where+ hashWithSalt _salt UploadLayerPart' {..} =+ _salt+ `Prelude.hashWithSalt` registryId+ `Prelude.hashWithSalt` repositoryName+ `Prelude.hashWithSalt` uploadId+ `Prelude.hashWithSalt` partFirstByte+ `Prelude.hashWithSalt` partLastByte+ `Prelude.hashWithSalt` layerPartBlob++instance Prelude.NFData UploadLayerPart where+ rnf UploadLayerPart' {..} =+ Prelude.rnf registryId+ `Prelude.seq` Prelude.rnf repositoryName+ `Prelude.seq` Prelude.rnf uploadId+ `Prelude.seq` Prelude.rnf partFirstByte+ `Prelude.seq` Prelude.rnf partLastByte+ `Prelude.seq` Prelude.rnf layerPartBlob++instance Data.ToHeaders UploadLayerPart where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "SpencerFrontendService.UploadLayerPart" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UploadLayerPart where+ toJSON UploadLayerPart' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("registryId" Data..=) Prelude.<$> registryId,+ Prelude.Just+ ("repositoryName" Data..= repositoryName),+ Prelude.Just ("uploadId" Data..= uploadId),+ Prelude.Just ("partFirstByte" Data..= partFirstByte),+ Prelude.Just ("partLastByte" Data..= partLastByte),+ Prelude.Just+ ("layerPartBlob" Data..= layerPartBlob)+ ]+ )++instance Data.ToPath UploadLayerPart where+ toPath = Prelude.const "/"++instance Data.ToQuery UploadLayerPart where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUploadLayerPartResponse' smart constructor.+data UploadLayerPartResponse = UploadLayerPartResponse'+ { -- | The integer value of the last byte received in the request.+ lastByteReceived :: Prelude.Maybe Prelude.Natural,+ -- | The registry ID associated with the request.+ registryId :: Prelude.Maybe Prelude.Text,+ -- | The repository name associated with the request.+ repositoryName :: Prelude.Maybe Prelude.Text,+ -- | The upload ID associated with the request.+ uploadId :: 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 'UploadLayerPartResponse' 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:+--+-- 'lastByteReceived', 'uploadLayerPartResponse_lastByteReceived' - The integer value of the last byte received in the request.+--+-- 'registryId', 'uploadLayerPartResponse_registryId' - The registry ID associated with the request.+--+-- 'repositoryName', 'uploadLayerPartResponse_repositoryName' - The repository name associated with the request.+--+-- 'uploadId', 'uploadLayerPartResponse_uploadId' - The upload ID associated with the request.+--+-- 'httpStatus', 'uploadLayerPartResponse_httpStatus' - The response's http status code.+newUploadLayerPartResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UploadLayerPartResponse+newUploadLayerPartResponse pHttpStatus_ =+ UploadLayerPartResponse'+ { lastByteReceived =+ Prelude.Nothing,+ registryId = Prelude.Nothing,+ repositoryName = Prelude.Nothing,+ uploadId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The integer value of the last byte received in the request.+uploadLayerPartResponse_lastByteReceived :: Lens.Lens' UploadLayerPartResponse (Prelude.Maybe Prelude.Natural)+uploadLayerPartResponse_lastByteReceived = Lens.lens (\UploadLayerPartResponse' {lastByteReceived} -> lastByteReceived) (\s@UploadLayerPartResponse' {} a -> s {lastByteReceived = a} :: UploadLayerPartResponse)++-- | The registry ID associated with the request.+uploadLayerPartResponse_registryId :: Lens.Lens' UploadLayerPartResponse (Prelude.Maybe Prelude.Text)+uploadLayerPartResponse_registryId = Lens.lens (\UploadLayerPartResponse' {registryId} -> registryId) (\s@UploadLayerPartResponse' {} a -> s {registryId = a} :: UploadLayerPartResponse)++-- | The repository name associated with the request.+uploadLayerPartResponse_repositoryName :: Lens.Lens' UploadLayerPartResponse (Prelude.Maybe Prelude.Text)+uploadLayerPartResponse_repositoryName = Lens.lens (\UploadLayerPartResponse' {repositoryName} -> repositoryName) (\s@UploadLayerPartResponse' {} a -> s {repositoryName = a} :: UploadLayerPartResponse)++-- | The upload ID associated with the request.+uploadLayerPartResponse_uploadId :: Lens.Lens' UploadLayerPartResponse (Prelude.Maybe Prelude.Text)+uploadLayerPartResponse_uploadId = Lens.lens (\UploadLayerPartResponse' {uploadId} -> uploadId) (\s@UploadLayerPartResponse' {} a -> s {uploadId = a} :: UploadLayerPartResponse)++-- | The response's http status code.+uploadLayerPartResponse_httpStatus :: Lens.Lens' UploadLayerPartResponse Prelude.Int+uploadLayerPartResponse_httpStatus = Lens.lens (\UploadLayerPartResponse' {httpStatus} -> httpStatus) (\s@UploadLayerPartResponse' {} a -> s {httpStatus = a} :: UploadLayerPartResponse)++instance Prelude.NFData UploadLayerPartResponse where+ rnf UploadLayerPartResponse' {..} =+ Prelude.rnf lastByteReceived+ `Prelude.seq` Prelude.rnf registryId+ `Prelude.seq` Prelude.rnf repositoryName+ `Prelude.seq` Prelude.rnf uploadId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ECRPublic/Waiters.hs view
@@ -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.ECRPublic.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.ECRPublic.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ECRPublic.Lens+import Amazonka.ECRPublic.Types+import qualified Amazonka.Prelude as Prelude
+ src/.gitkeep view
+ test/Main.hs view
@@ -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.ECRPublic+import Test.Amazonka.ECRPublic.Internal+import Test.Tasty++main :: IO ()+main =+ defaultMain $+ testGroup+ "ECRPublic"+ [ testGroup "tests" tests,+ testGroup "fixtures" fixtures+ ]
+ test/Test/Amazonka/ECRPublic.hs view
@@ -0,0 +1,20 @@+-- |+-- Module : Test.Amazonka.ECRPublic+-- 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.ECRPublic+ ( tests,+ fixtures,+ )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/ECRPublic/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module : Test.Amazonka.ECRPublic.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.ECRPublic.Internal where
+ test/Test/Amazonka/Gen/ECRPublic.hs view
@@ -0,0 +1,498 @@+{-# 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.ECRPublic+-- 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.ECRPublic where++import Amazonka.ECRPublic+import qualified Data.Proxy as Proxy+import Test.Amazonka.ECRPublic.Internal+import Test.Amazonka.Fixture+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"+-- [ requestBatchCheckLayerAvailability $+-- newBatchCheckLayerAvailability+--+-- , requestBatchDeleteImage $+-- newBatchDeleteImage+--+-- , requestCompleteLayerUpload $+-- newCompleteLayerUpload+--+-- , requestCreateRepository $+-- newCreateRepository+--+-- , requestDeleteRepository $+-- newDeleteRepository+--+-- , requestDeleteRepositoryPolicy $+-- newDeleteRepositoryPolicy+--+-- , requestDescribeImageTags $+-- newDescribeImageTags+--+-- , requestDescribeImages $+-- newDescribeImages+--+-- , requestDescribeRegistries $+-- newDescribeRegistries+--+-- , requestDescribeRepositories $+-- newDescribeRepositories+--+-- , requestGetAuthorizationToken $+-- newGetAuthorizationToken+--+-- , requestGetRegistryCatalogData $+-- newGetRegistryCatalogData+--+-- , requestGetRepositoryCatalogData $+-- newGetRepositoryCatalogData+--+-- , requestGetRepositoryPolicy $+-- newGetRepositoryPolicy+--+-- , requestInitiateLayerUpload $+-- newInitiateLayerUpload+--+-- , requestListTagsForResource $+-- newListTagsForResource+--+-- , requestPutImage $+-- newPutImage+--+-- , requestPutRegistryCatalogData $+-- newPutRegistryCatalogData+--+-- , requestPutRepositoryCatalogData $+-- newPutRepositoryCatalogData+--+-- , requestSetRepositoryPolicy $+-- newSetRepositoryPolicy+--+-- , requestTagResource $+-- newTagResource+--+-- , requestUntagResource $+-- newUntagResource+--+-- , requestUploadLayerPart $+-- newUploadLayerPart+--+-- ]++-- , testGroup "response"+-- [ responseBatchCheckLayerAvailability $+-- newBatchCheckLayerAvailabilityResponse+--+-- , responseBatchDeleteImage $+-- newBatchDeleteImageResponse+--+-- , responseCompleteLayerUpload $+-- newCompleteLayerUploadResponse+--+-- , responseCreateRepository $+-- newCreateRepositoryResponse+--+-- , responseDeleteRepository $+-- newDeleteRepositoryResponse+--+-- , responseDeleteRepositoryPolicy $+-- newDeleteRepositoryPolicyResponse+--+-- , responseDescribeImageTags $+-- newDescribeImageTagsResponse+--+-- , responseDescribeImages $+-- newDescribeImagesResponse+--+-- , responseDescribeRegistries $+-- newDescribeRegistriesResponse+--+-- , responseDescribeRepositories $+-- newDescribeRepositoriesResponse+--+-- , responseGetAuthorizationToken $+-- newGetAuthorizationTokenResponse+--+-- , responseGetRegistryCatalogData $+-- newGetRegistryCatalogDataResponse+--+-- , responseGetRepositoryCatalogData $+-- newGetRepositoryCatalogDataResponse+--+-- , responseGetRepositoryPolicy $+-- newGetRepositoryPolicyResponse+--+-- , responseInitiateLayerUpload $+-- newInitiateLayerUploadResponse+--+-- , responseListTagsForResource $+-- newListTagsForResourceResponse+--+-- , responsePutImage $+-- newPutImageResponse+--+-- , responsePutRegistryCatalogData $+-- newPutRegistryCatalogDataResponse+--+-- , responsePutRepositoryCatalogData $+-- newPutRepositoryCatalogDataResponse+--+-- , responseSetRepositoryPolicy $+-- newSetRepositoryPolicyResponse+--+-- , responseTagResource $+-- newTagResourceResponse+--+-- , responseUntagResource $+-- newUntagResourceResponse+--+-- , responseUploadLayerPart $+-- newUploadLayerPartResponse+--+-- ]+-- ]++-- Requests++requestBatchCheckLayerAvailability :: BatchCheckLayerAvailability -> TestTree+requestBatchCheckLayerAvailability =+ req+ "BatchCheckLayerAvailability"+ "fixture/BatchCheckLayerAvailability.yaml"++requestBatchDeleteImage :: BatchDeleteImage -> TestTree+requestBatchDeleteImage =+ req+ "BatchDeleteImage"+ "fixture/BatchDeleteImage.yaml"++requestCompleteLayerUpload :: CompleteLayerUpload -> TestTree+requestCompleteLayerUpload =+ req+ "CompleteLayerUpload"+ "fixture/CompleteLayerUpload.yaml"++requestCreateRepository :: CreateRepository -> TestTree+requestCreateRepository =+ req+ "CreateRepository"+ "fixture/CreateRepository.yaml"++requestDeleteRepository :: DeleteRepository -> TestTree+requestDeleteRepository =+ req+ "DeleteRepository"+ "fixture/DeleteRepository.yaml"++requestDeleteRepositoryPolicy :: DeleteRepositoryPolicy -> TestTree+requestDeleteRepositoryPolicy =+ req+ "DeleteRepositoryPolicy"+ "fixture/DeleteRepositoryPolicy.yaml"++requestDescribeImageTags :: DescribeImageTags -> TestTree+requestDescribeImageTags =+ req+ "DescribeImageTags"+ "fixture/DescribeImageTags.yaml"++requestDescribeImages :: DescribeImages -> TestTree+requestDescribeImages =+ req+ "DescribeImages"+ "fixture/DescribeImages.yaml"++requestDescribeRegistries :: DescribeRegistries -> TestTree+requestDescribeRegistries =+ req+ "DescribeRegistries"+ "fixture/DescribeRegistries.yaml"++requestDescribeRepositories :: DescribeRepositories -> TestTree+requestDescribeRepositories =+ req+ "DescribeRepositories"+ "fixture/DescribeRepositories.yaml"++requestGetAuthorizationToken :: GetAuthorizationToken -> TestTree+requestGetAuthorizationToken =+ req+ "GetAuthorizationToken"+ "fixture/GetAuthorizationToken.yaml"++requestGetRegistryCatalogData :: GetRegistryCatalogData -> TestTree+requestGetRegistryCatalogData =+ req+ "GetRegistryCatalogData"+ "fixture/GetRegistryCatalogData.yaml"++requestGetRepositoryCatalogData :: GetRepositoryCatalogData -> TestTree+requestGetRepositoryCatalogData =+ req+ "GetRepositoryCatalogData"+ "fixture/GetRepositoryCatalogData.yaml"++requestGetRepositoryPolicy :: GetRepositoryPolicy -> TestTree+requestGetRepositoryPolicy =+ req+ "GetRepositoryPolicy"+ "fixture/GetRepositoryPolicy.yaml"++requestInitiateLayerUpload :: InitiateLayerUpload -> TestTree+requestInitiateLayerUpload =+ req+ "InitiateLayerUpload"+ "fixture/InitiateLayerUpload.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+ req+ "ListTagsForResource"+ "fixture/ListTagsForResource.yaml"++requestPutImage :: PutImage -> TestTree+requestPutImage =+ req+ "PutImage"+ "fixture/PutImage.yaml"++requestPutRegistryCatalogData :: PutRegistryCatalogData -> TestTree+requestPutRegistryCatalogData =+ req+ "PutRegistryCatalogData"+ "fixture/PutRegistryCatalogData.yaml"++requestPutRepositoryCatalogData :: PutRepositoryCatalogData -> TestTree+requestPutRepositoryCatalogData =+ req+ "PutRepositoryCatalogData"+ "fixture/PutRepositoryCatalogData.yaml"++requestSetRepositoryPolicy :: SetRepositoryPolicy -> TestTree+requestSetRepositoryPolicy =+ req+ "SetRepositoryPolicy"+ "fixture/SetRepositoryPolicy.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+ req+ "TagResource"+ "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+ req+ "UntagResource"+ "fixture/UntagResource.yaml"++requestUploadLayerPart :: UploadLayerPart -> TestTree+requestUploadLayerPart =+ req+ "UploadLayerPart"+ "fixture/UploadLayerPart.yaml"++-- Responses++responseBatchCheckLayerAvailability :: BatchCheckLayerAvailabilityResponse -> TestTree+responseBatchCheckLayerAvailability =+ res+ "BatchCheckLayerAvailabilityResponse"+ "fixture/BatchCheckLayerAvailabilityResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy BatchCheckLayerAvailability)++responseBatchDeleteImage :: BatchDeleteImageResponse -> TestTree+responseBatchDeleteImage =+ res+ "BatchDeleteImageResponse"+ "fixture/BatchDeleteImageResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy BatchDeleteImage)++responseCompleteLayerUpload :: CompleteLayerUploadResponse -> TestTree+responseCompleteLayerUpload =+ res+ "CompleteLayerUploadResponse"+ "fixture/CompleteLayerUploadResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CompleteLayerUpload)++responseCreateRepository :: CreateRepositoryResponse -> TestTree+responseCreateRepository =+ res+ "CreateRepositoryResponse"+ "fixture/CreateRepositoryResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateRepository)++responseDeleteRepository :: DeleteRepositoryResponse -> TestTree+responseDeleteRepository =+ res+ "DeleteRepositoryResponse"+ "fixture/DeleteRepositoryResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteRepository)++responseDeleteRepositoryPolicy :: DeleteRepositoryPolicyResponse -> TestTree+responseDeleteRepositoryPolicy =+ res+ "DeleteRepositoryPolicyResponse"+ "fixture/DeleteRepositoryPolicyResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteRepositoryPolicy)++responseDescribeImageTags :: DescribeImageTagsResponse -> TestTree+responseDescribeImageTags =+ res+ "DescribeImageTagsResponse"+ "fixture/DescribeImageTagsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeImageTags)++responseDescribeImages :: DescribeImagesResponse -> TestTree+responseDescribeImages =+ res+ "DescribeImagesResponse"+ "fixture/DescribeImagesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeImages)++responseDescribeRegistries :: DescribeRegistriesResponse -> TestTree+responseDescribeRegistries =+ res+ "DescribeRegistriesResponse"+ "fixture/DescribeRegistriesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeRegistries)++responseDescribeRepositories :: DescribeRepositoriesResponse -> TestTree+responseDescribeRepositories =+ res+ "DescribeRepositoriesResponse"+ "fixture/DescribeRepositoriesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeRepositories)++responseGetAuthorizationToken :: GetAuthorizationTokenResponse -> TestTree+responseGetAuthorizationToken =+ res+ "GetAuthorizationTokenResponse"+ "fixture/GetAuthorizationTokenResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetAuthorizationToken)++responseGetRegistryCatalogData :: GetRegistryCatalogDataResponse -> TestTree+responseGetRegistryCatalogData =+ res+ "GetRegistryCatalogDataResponse"+ "fixture/GetRegistryCatalogDataResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetRegistryCatalogData)++responseGetRepositoryCatalogData :: GetRepositoryCatalogDataResponse -> TestTree+responseGetRepositoryCatalogData =+ res+ "GetRepositoryCatalogDataResponse"+ "fixture/GetRepositoryCatalogDataResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetRepositoryCatalogData)++responseGetRepositoryPolicy :: GetRepositoryPolicyResponse -> TestTree+responseGetRepositoryPolicy =+ res+ "GetRepositoryPolicyResponse"+ "fixture/GetRepositoryPolicyResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetRepositoryPolicy)++responseInitiateLayerUpload :: InitiateLayerUploadResponse -> TestTree+responseInitiateLayerUpload =+ res+ "InitiateLayerUploadResponse"+ "fixture/InitiateLayerUploadResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy InitiateLayerUpload)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+ res+ "ListTagsForResourceResponse"+ "fixture/ListTagsForResourceResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responsePutImage :: PutImageResponse -> TestTree+responsePutImage =+ res+ "PutImageResponse"+ "fixture/PutImageResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PutImage)++responsePutRegistryCatalogData :: PutRegistryCatalogDataResponse -> TestTree+responsePutRegistryCatalogData =+ res+ "PutRegistryCatalogDataResponse"+ "fixture/PutRegistryCatalogDataResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PutRegistryCatalogData)++responsePutRepositoryCatalogData :: PutRepositoryCatalogDataResponse -> TestTree+responsePutRepositoryCatalogData =+ res+ "PutRepositoryCatalogDataResponse"+ "fixture/PutRepositoryCatalogDataResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PutRepositoryCatalogData)++responseSetRepositoryPolicy :: SetRepositoryPolicyResponse -> TestTree+responseSetRepositoryPolicy =+ res+ "SetRepositoryPolicyResponse"+ "fixture/SetRepositoryPolicyResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy SetRepositoryPolicy)++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)++responseUploadLayerPart :: UploadLayerPartResponse -> TestTree+responseUploadLayerPart =+ res+ "UploadLayerPartResponse"+ "fixture/UploadLayerPartResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UploadLayerPart)