amazonka-ecr (empty) → 1.4.0
raw patch · 61 files changed
+4579/−0 lines, 61 filesdep +amazonka-coredep +amazonka-ecrdep +amazonka-testsetup-changed
Dependencies added: amazonka-core, amazonka-ecr, amazonka-test, base, bytestring, tasty, tasty-hunit, text, time, unordered-containers
Files
- LICENSE +367/−0
- README.md +48/−0
- Setup.hs +2/−0
- amazonka-ecr.cabal +103/−0
- fixture/BatchCheckLayerAvailability.yaml +0/−0
- fixture/BatchCheckLayerAvailabilityResponse.proto +0/−0
- fixture/BatchDeleteImage.yaml +0/−0
- fixture/BatchDeleteImageResponse.proto +0/−0
- fixture/BatchGetImage.yaml +0/−0
- fixture/BatchGetImageResponse.proto +0/−0
- fixture/CompleteLayerUpload.yaml +0/−0
- fixture/CompleteLayerUploadResponse.proto +0/−0
- fixture/CreateRepository.yaml +0/−0
- fixture/CreateRepositoryResponse.proto +0/−0
- fixture/DeleteRepository.yaml +0/−0
- fixture/DeleteRepositoryPolicy.yaml +0/−0
- fixture/DeleteRepositoryPolicyResponse.proto +0/−0
- fixture/DeleteRepositoryResponse.proto +0/−0
- fixture/DescribeRepositories.yaml +0/−0
- fixture/DescribeRepositoriesResponse.proto +0/−0
- fixture/GetAuthorizationToken.yaml +0/−0
- fixture/GetAuthorizationTokenResponse.proto +0/−0
- fixture/GetDownloadURLForLayer.yaml +0/−0
- fixture/GetDownloadURLForLayerResponse.proto +0/−0
- fixture/GetRepositoryPolicy.yaml +0/−0
- fixture/GetRepositoryPolicyResponse.proto +0/−0
- fixture/InitiateLayerUpload.yaml +0/−0
- fixture/InitiateLayerUploadResponse.proto +0/−0
- fixture/ListImages.yaml +0/−0
- fixture/ListImagesResponse.proto +0/−0
- fixture/PutImage.yaml +0/−0
- fixture/PutImageResponse.proto +0/−0
- fixture/SetRepositoryPolicy.yaml +0/−0
- fixture/SetRepositoryPolicyResponse.proto +0/−0
- fixture/UploadLayerPart.yaml +0/−0
- fixture/UploadLayerPartResponse.proto +0/−0
- gen/Network/AWS/ECR.hs +239/−0
- gen/Network/AWS/ECR/BatchCheckLayerAvailability.hs +170/−0
- gen/Network/AWS/ECR/BatchDeleteImage.hs +167/−0
- gen/Network/AWS/ECR/BatchGetImage.hs +167/−0
- gen/Network/AWS/ECR/CompleteLayerUpload.hs +201/−0
- gen/Network/AWS/ECR/CreateRepository.hs +131/−0
- gen/Network/AWS/ECR/DeleteRepository.hs +151/−0
- gen/Network/AWS/ECR/DeleteRepositoryPolicy.hs +162/−0
- gen/Network/AWS/ECR/DescribeRepositories.hs +187/−0
- gen/Network/AWS/ECR/GetAuthorizationToken.hs +139/−0
- gen/Network/AWS/ECR/GetDownloadURLForLayer.hs +169/−0
- gen/Network/AWS/ECR/GetRepositoryPolicy.hs +161/−0
- gen/Network/AWS/ECR/InitiateLayerUpload.hs +157/−0
- gen/Network/AWS/ECR/ListImages.hs +184/−0
- gen/Network/AWS/ECR/PutImage.hs +155/−0
- gen/Network/AWS/ECR/SetRepositoryPolicy.hs +186/−0
- gen/Network/AWS/ECR/Types.hs +219/−0
- gen/Network/AWS/ECR/Types/Product.hs +378/−0
- gen/Network/AWS/ECR/Types/Sum.hs +104/−0
- gen/Network/AWS/ECR/UploadLayerPart.hs +225/−0
- gen/Network/AWS/ECR/Waiters.hs +21/−0
- test/Main.hs +21/−0
- test/Test/AWS/ECR.hs +23/−0
- test/Test/AWS/ECR/Internal.hs +15/−0
- test/Test/AWS/Gen/ECR.hs +327/−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,48 @@+# Amazon EC2 Container Registry SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`1.4.0`+++## Description++Amazon EC2 Container Registry (Amazon ECR) is a managed AWS Docker+registry service. Customers can use the familiar Docker CLI to push,+pull, and manage images. Amazon ECR provides a secure, scalable, and+reliable registry. Amazon ECR supports private Docker repositories with+resource-based permissions using AWS IAM so that specific users or+Amazon EC2 instances can access repositories and images. Developers can+use the Docker CLI to author and manage images.++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-ecr)+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 and sending requests.++Use of lenses is required for constructing and manipulating types.+This is due to the amount 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).++## 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` 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.
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
+ amazonka-ecr.cabal view
@@ -0,0 +1,103 @@+name: amazonka-ecr+version: 1.4.0+synopsis: Amazon EC2 Container Registry SDK.+homepage: https://github.com/brendanhay/amazonka+bug-reports: https://github.com/brendanhay/amazonka/issues+license: OtherLicense+license-file: LICENSE+author: Brendan Hay+maintainer: Brendan Hay <brendan.g.hay@gmail.com>+copyright: Copyright (c) 2013-2016 Brendan Hay+category: Network, AWS, Cloud, Distributed Computing+build-type: Simple+cabal-version: >= 1.10+extra-source-files: README.md fixture/*.yaml fixture/*.proto+description:+ Amazon EC2 Container Registry (Amazon ECR) is a managed AWS Docker+ registry service. Customers can use the familiar Docker CLI to push,+ pull, and manage images. Amazon ECR provides a secure, scalable, and+ reliable registry. Amazon ECR supports private Docker repositories with+ resource-based permissions using AWS IAM so that specific users or+ Amazon EC2 instances can access repositories and images. Developers can+ use the Docker CLI to author and manage images.+ .+ 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 and sending requests.+ .+ Use of lenses is required for constructing and manipulating types.+ This is due to the amount of nesting of AWS types and transparency regarding+ de/serialisation into more palatable Haskell values.+ The provided lenses should be compatible with any of the major lens libraries+ such as <http://hackage.haskell.org/package/lens lens> or+ <http://hackage.haskell.org/package/lens-family-core lens-family-core>.+ .+ See "Network.AWS.ECR" or <https://aws.amazon.com/documentation/ the AWS Documentation>+ to get started.++source-repository head+ type: git+ location: git://github.com/brendanhay/amazonka.git++library+ default-language: Haskell2010+ hs-source-dirs: src gen++ ghc-options: -Wall++ exposed-modules:+ Network.AWS.ECR+ , Network.AWS.ECR.BatchCheckLayerAvailability+ , Network.AWS.ECR.BatchDeleteImage+ , Network.AWS.ECR.BatchGetImage+ , Network.AWS.ECR.CompleteLayerUpload+ , Network.AWS.ECR.CreateRepository+ , Network.AWS.ECR.DeleteRepository+ , Network.AWS.ECR.DeleteRepositoryPolicy+ , Network.AWS.ECR.DescribeRepositories+ , Network.AWS.ECR.GetAuthorizationToken+ , Network.AWS.ECR.GetDownloadURLForLayer+ , Network.AWS.ECR.GetRepositoryPolicy+ , Network.AWS.ECR.InitiateLayerUpload+ , Network.AWS.ECR.ListImages+ , Network.AWS.ECR.PutImage+ , Network.AWS.ECR.SetRepositoryPolicy+ , Network.AWS.ECR.Types+ , Network.AWS.ECR.UploadLayerPart+ , Network.AWS.ECR.Waiters++ other-modules:+ Network.AWS.ECR.Types.Product+ , Network.AWS.ECR.Types.Sum++ build-depends:+ amazonka-core == 1.4.0.*+ , base >= 4.7 && < 5++test-suite amazonka-ecr-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.AWS.ECR+ , Test.AWS.Gen.ECR+ , Test.AWS.ECR.Internal++ build-depends:+ amazonka-core == 1.4.0.*+ , amazonka-test == 1.4.0.*+ , amazonka-ecr == 1.4.0.*+ , base+ , bytestring+ , tasty+ , tasty-hunit+ , text+ , time+ , unordered-containers
+ fixture/BatchCheckLayerAvailability.yaml view
+ fixture/BatchCheckLayerAvailabilityResponse.proto view
+ fixture/BatchDeleteImage.yaml view
+ fixture/BatchDeleteImageResponse.proto view
+ fixture/BatchGetImage.yaml view
+ fixture/BatchGetImageResponse.proto view
+ fixture/CompleteLayerUpload.yaml view
+ fixture/CompleteLayerUploadResponse.proto view
+ fixture/CreateRepository.yaml view
+ fixture/CreateRepositoryResponse.proto view
+ fixture/DeleteRepository.yaml view
+ fixture/DeleteRepositoryPolicy.yaml view
+ fixture/DeleteRepositoryPolicyResponse.proto view
+ fixture/DeleteRepositoryResponse.proto view
+ fixture/DescribeRepositories.yaml view
+ fixture/DescribeRepositoriesResponse.proto view
+ fixture/GetAuthorizationToken.yaml view
+ fixture/GetAuthorizationTokenResponse.proto view
+ fixture/GetDownloadURLForLayer.yaml view
+ fixture/GetDownloadURLForLayerResponse.proto view
+ fixture/GetRepositoryPolicy.yaml view
+ fixture/GetRepositoryPolicyResponse.proto view
+ fixture/InitiateLayerUpload.yaml view
+ fixture/InitiateLayerUploadResponse.proto view
+ fixture/ListImages.yaml view
+ fixture/ListImagesResponse.proto view
+ fixture/PutImage.yaml view
+ fixture/PutImageResponse.proto view
+ fixture/SetRepositoryPolicy.yaml view
+ fixture/SetRepositoryPolicyResponse.proto view
+ fixture/UploadLayerPart.yaml view
+ fixture/UploadLayerPartResponse.proto view
+ gen/Network/AWS/ECR.hs view
@@ -0,0 +1,239 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.ECR+-- Copyright : (c) 2013-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Amazon EC2 Container Registry (Amazon ECR) is a managed AWS Docker+-- registry service. Customers can use the familiar Docker CLI to push,+-- pull, and manage images. Amazon ECR provides a secure, scalable, and+-- reliable registry. Amazon ECR supports private Docker repositories with+-- resource-based permissions using AWS IAM so that specific users or+-- Amazon EC2 instances can access repositories and images. Developers can+-- use the Docker CLI to author and manage images.+module Network.AWS.ECR+ (+ -- * Service Configuration+ ecr++ -- * Errors+ -- $errors++ -- ** LayersNotFoundException+ , _LayersNotFoundException++ -- ** InvalidParameterException+ , _InvalidParameterException++ -- ** LayerAlreadyExistsException+ , _LayerAlreadyExistsException++ -- ** ServerException+ , _ServerException++ -- ** LayerInaccessibleException+ , _LayerInaccessibleException++ -- ** InvalidLayerException+ , _InvalidLayerException++ -- ** LayerPartTooSmallException+ , _LayerPartTooSmallException++ -- ** ImageAlreadyExistsException+ , _ImageAlreadyExistsException++ -- ** RepositoryNotFoundException+ , _RepositoryNotFoundException++ -- ** UploadNotFoundException+ , _UploadNotFoundException++ -- ** InvalidLayerPartException+ , _InvalidLayerPartException++ -- ** RepositoryNotEmptyException+ , _RepositoryNotEmptyException++ -- ** RepositoryAlreadyExistsException+ , _RepositoryAlreadyExistsException++ -- ** RepositoryPolicyNotFoundException+ , _RepositoryPolicyNotFoundException++ -- ** EmptyUploadException+ , _EmptyUploadException++ -- ** LimitExceededException+ , _LimitExceededException++ -- * Waiters+ -- $waiters++ -- * Operations+ -- $operations++ -- ** GetRepositoryPolicy+ , module Network.AWS.ECR.GetRepositoryPolicy++ -- ** BatchDeleteImage+ , module Network.AWS.ECR.BatchDeleteImage++ -- ** BatchCheckLayerAvailability+ , module Network.AWS.ECR.BatchCheckLayerAvailability++ -- ** DeleteRepositoryPolicy+ , module Network.AWS.ECR.DeleteRepositoryPolicy++ -- ** CreateRepository+ , module Network.AWS.ECR.CreateRepository++ -- ** CompleteLayerUpload+ , module Network.AWS.ECR.CompleteLayerUpload++ -- ** DescribeRepositories+ , module Network.AWS.ECR.DescribeRepositories++ -- ** UploadLayerPart+ , module Network.AWS.ECR.UploadLayerPart++ -- ** BatchGetImage+ , module Network.AWS.ECR.BatchGetImage++ -- ** SetRepositoryPolicy+ , module Network.AWS.ECR.SetRepositoryPolicy++ -- ** InitiateLayerUpload+ , module Network.AWS.ECR.InitiateLayerUpload++ -- ** DeleteRepository+ , module Network.AWS.ECR.DeleteRepository++ -- ** PutImage+ , module Network.AWS.ECR.PutImage++ -- ** ListImages+ , module Network.AWS.ECR.ListImages++ -- ** GetAuthorizationToken+ , module Network.AWS.ECR.GetAuthorizationToken++ -- ** GetDownloadURLForLayer+ , module Network.AWS.ECR.GetDownloadURLForLayer++ -- * Types++ -- ** ImageFailureCode+ , ImageFailureCode (..)++ -- ** LayerAvailability+ , LayerAvailability (..)++ -- ** LayerFailureCode+ , LayerFailureCode (..)++ -- ** AuthorizationData+ , AuthorizationData+ , authorizationData+ , adExpiresAt+ , adProxyEndpoint+ , adAuthorizationToken++ -- ** Image+ , Image+ , image+ , iRegistryId+ , iImageId+ , iRepositoryName+ , iImageManifest++ -- ** ImageFailure+ , ImageFailure+ , imageFailure+ , ifFailureReason+ , ifFailureCode+ , ifImageId++ -- ** ImageIdentifier+ , ImageIdentifier+ , imageIdentifier+ , iiImageDigest+ , iiImageTag++ -- ** Layer+ , Layer+ , layer+ , lLayerDigest+ , lLayerSize+ , lLayerAvailability++ -- ** LayerFailure+ , LayerFailure+ , layerFailure+ , lfFailureReason+ , lfFailureCode+ , lfLayerDigest++ -- ** Repository+ , Repository+ , repository+ , rRepositoryARN+ , rRegistryId+ , rRepositoryName+ ) where++import Network.AWS.ECR.BatchCheckLayerAvailability+import Network.AWS.ECR.BatchDeleteImage+import Network.AWS.ECR.BatchGetImage+import Network.AWS.ECR.CompleteLayerUpload+import Network.AWS.ECR.CreateRepository+import Network.AWS.ECR.DeleteRepository+import Network.AWS.ECR.DeleteRepositoryPolicy+import Network.AWS.ECR.DescribeRepositories+import Network.AWS.ECR.GetAuthorizationToken+import Network.AWS.ECR.GetDownloadURLForLayer+import Network.AWS.ECR.GetRepositoryPolicy+import Network.AWS.ECR.InitiateLayerUpload+import Network.AWS.ECR.ListImages+import Network.AWS.ECR.PutImage+import Network.AWS.ECR.SetRepositoryPolicy+import Network.AWS.ECR.Types+import Network.AWS.ECR.UploadLayerPart+import Network.AWS.ECR.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 'ECR'.+-}++{- $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/Network/AWS/ECR/BatchCheckLayerAvailability.hs view
@@ -0,0 +1,170 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.ECR.BatchCheckLayerAvailability+-- Copyright : (c) 2013-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Check the availability of multiple image layers in a specified registry+-- and repository.+--+-- This operation is used by the Amazon ECR proxy, and it is not intended+-- for general use by customers. Use the 'docker' CLI to pull, tag, and+-- push images.+module Network.AWS.ECR.BatchCheckLayerAvailability+ (+ -- * Creating a Request+ batchCheckLayerAvailability+ , BatchCheckLayerAvailability+ -- * Request Lenses+ , bclaRegistryId+ , bclaRepositoryName+ , bclaLayerDigests++ -- * Destructuring the Response+ , batchCheckLayerAvailabilityResponse+ , BatchCheckLayerAvailabilityResponse+ -- * Response Lenses+ , bclarsFailures+ , bclarsLayers+ , bclarsResponseStatus+ ) where++import Network.AWS.ECR.Types+import Network.AWS.ECR.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'batchCheckLayerAvailability' smart constructor.+data BatchCheckLayerAvailability = BatchCheckLayerAvailability'+ { _bclaRegistryId :: !(Maybe Text)+ , _bclaRepositoryName :: !Text+ , _bclaLayerDigests :: !(List1 Text)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'BatchCheckLayerAvailability' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bclaRegistryId'+--+-- * 'bclaRepositoryName'+--+-- * 'bclaLayerDigests'+batchCheckLayerAvailability+ :: Text -- ^ 'bclaRepositoryName'+ -> NonEmpty Text -- ^ 'bclaLayerDigests'+ -> BatchCheckLayerAvailability+batchCheckLayerAvailability pRepositoryName_ pLayerDigests_ =+ BatchCheckLayerAvailability'+ { _bclaRegistryId = Nothing+ , _bclaRepositoryName = pRepositoryName_+ , _bclaLayerDigests = _List1 # pLayerDigests_+ }++-- | The AWS account ID associated with the registry that contains the image+-- layers to check. If you do not specify a registry, the default registry+-- is assumed.+bclaRegistryId :: Lens' BatchCheckLayerAvailability (Maybe Text)+bclaRegistryId = lens _bclaRegistryId (\ s a -> s{_bclaRegistryId = a});++-- | The name of the repository that is associated with the image layers to+-- check.+bclaRepositoryName :: Lens' BatchCheckLayerAvailability Text+bclaRepositoryName = lens _bclaRepositoryName (\ s a -> s{_bclaRepositoryName = a});++-- | The digests of the image layers to check.+bclaLayerDigests :: Lens' BatchCheckLayerAvailability (NonEmpty Text)+bclaLayerDigests = lens _bclaLayerDigests (\ s a -> s{_bclaLayerDigests = a}) . _List1;++instance AWSRequest BatchCheckLayerAvailability where+ type Rs BatchCheckLayerAvailability =+ BatchCheckLayerAvailabilityResponse+ request = postJSON ecr+ response+ = receiveJSON+ (\ s h x ->+ BatchCheckLayerAvailabilityResponse' <$>+ (x .?> "failures" .!@ mempty) <*>+ (x .?> "layers" .!@ mempty)+ <*> (pure (fromEnum s)))++instance Hashable BatchCheckLayerAvailability++instance ToHeaders BatchCheckLayerAvailability where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AmazonEC2ContainerRegistry_V20150921.BatchCheckLayerAvailability"+ :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON BatchCheckLayerAvailability where+ toJSON BatchCheckLayerAvailability'{..}+ = object+ (catMaybes+ [("registryId" .=) <$> _bclaRegistryId,+ Just ("repositoryName" .= _bclaRepositoryName),+ Just ("layerDigests" .= _bclaLayerDigests)])++instance ToPath BatchCheckLayerAvailability where+ toPath = const "/"++instance ToQuery BatchCheckLayerAvailability where+ toQuery = const mempty++-- | /See:/ 'batchCheckLayerAvailabilityResponse' smart constructor.+data BatchCheckLayerAvailabilityResponse = BatchCheckLayerAvailabilityResponse'+ { _bclarsFailures :: !(Maybe [LayerFailure])+ , _bclarsLayers :: !(Maybe [Layer])+ , _bclarsResponseStatus :: !Int+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'BatchCheckLayerAvailabilityResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bclarsFailures'+--+-- * 'bclarsLayers'+--+-- * 'bclarsResponseStatus'+batchCheckLayerAvailabilityResponse+ :: Int -- ^ 'bclarsResponseStatus'+ -> BatchCheckLayerAvailabilityResponse+batchCheckLayerAvailabilityResponse pResponseStatus_ =+ BatchCheckLayerAvailabilityResponse'+ { _bclarsFailures = Nothing+ , _bclarsLayers = Nothing+ , _bclarsResponseStatus = pResponseStatus_+ }++-- | Any failures associated with the call.+bclarsFailures :: Lens' BatchCheckLayerAvailabilityResponse [LayerFailure]+bclarsFailures = lens _bclarsFailures (\ s a -> s{_bclarsFailures = a}) . _Default . _Coerce;++-- | A list of image layer objects corresponding to the image layer+-- references in the request.+bclarsLayers :: Lens' BatchCheckLayerAvailabilityResponse [Layer]+bclarsLayers = lens _bclarsLayers (\ s a -> s{_bclarsLayers = a}) . _Default . _Coerce;++-- | The response status code.+bclarsResponseStatus :: Lens' BatchCheckLayerAvailabilityResponse Int+bclarsResponseStatus = lens _bclarsResponseStatus (\ s a -> s{_bclarsResponseStatus = a});
+ gen/Network/AWS/ECR/BatchDeleteImage.hs view
@@ -0,0 +1,167 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.ECR.BatchDeleteImage+-- Copyright : (c) 2013-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a list of specified images within a specified repository. Images+-- are specified with either 'imageTag' or 'imageDigest'.+module Network.AWS.ECR.BatchDeleteImage+ (+ -- * Creating a Request+ batchDeleteImage+ , BatchDeleteImage+ -- * Request Lenses+ , bdiRegistryId+ , bdiRepositoryName+ , bdiImageIds++ -- * Destructuring the Response+ , batchDeleteImageResponse+ , BatchDeleteImageResponse+ -- * Response Lenses+ , bdirsFailures+ , bdirsImageIds+ , bdirsResponseStatus+ ) where++import Network.AWS.ECR.Types+import Network.AWS.ECR.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | Deletes specified images within a specified repository. Images are+-- specified with either the 'imageTag' or 'imageDigest'.+--+-- /See:/ 'batchDeleteImage' smart constructor.+data BatchDeleteImage = BatchDeleteImage'+ { _bdiRegistryId :: !(Maybe Text)+ , _bdiRepositoryName :: !Text+ , _bdiImageIds :: !(List1 ImageIdentifier)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'BatchDeleteImage' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bdiRegistryId'+--+-- * 'bdiRepositoryName'+--+-- * 'bdiImageIds'+batchDeleteImage+ :: Text -- ^ 'bdiRepositoryName'+ -> NonEmpty ImageIdentifier -- ^ 'bdiImageIds'+ -> BatchDeleteImage+batchDeleteImage pRepositoryName_ pImageIds_ =+ BatchDeleteImage'+ { _bdiRegistryId = Nothing+ , _bdiRepositoryName = pRepositoryName_+ , _bdiImageIds = _List1 # pImageIds_+ }++-- | The AWS account ID associated with the registry that contains the image+-- to delete. If you do not specify a registry, the default registry is+-- assumed.+bdiRegistryId :: Lens' BatchDeleteImage (Maybe Text)+bdiRegistryId = lens _bdiRegistryId (\ s a -> s{_bdiRegistryId = a});++-- | The repository that contains the image to delete.+bdiRepositoryName :: Lens' BatchDeleteImage Text+bdiRepositoryName = lens _bdiRepositoryName (\ s a -> s{_bdiRepositoryName = a});++-- | A list of image ID references that correspond to images to delete. The+-- format of the 'imageIds' reference is 'imageTag=tag' or+-- 'imageDigest=digest'.+bdiImageIds :: Lens' BatchDeleteImage (NonEmpty ImageIdentifier)+bdiImageIds = lens _bdiImageIds (\ s a -> s{_bdiImageIds = a}) . _List1;++instance AWSRequest BatchDeleteImage where+ type Rs BatchDeleteImage = BatchDeleteImageResponse+ request = postJSON ecr+ response+ = receiveJSON+ (\ s h x ->+ BatchDeleteImageResponse' <$>+ (x .?> "failures" .!@ mempty) <*> (x .?> "imageIds")+ <*> (pure (fromEnum s)))++instance Hashable BatchDeleteImage++instance ToHeaders BatchDeleteImage where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AmazonEC2ContainerRegistry_V20150921.BatchDeleteImage"+ :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON BatchDeleteImage where+ toJSON BatchDeleteImage'{..}+ = object+ (catMaybes+ [("registryId" .=) <$> _bdiRegistryId,+ Just ("repositoryName" .= _bdiRepositoryName),+ Just ("imageIds" .= _bdiImageIds)])++instance ToPath BatchDeleteImage where+ toPath = const "/"++instance ToQuery BatchDeleteImage where+ toQuery = const mempty++-- | /See:/ 'batchDeleteImageResponse' smart constructor.+data BatchDeleteImageResponse = BatchDeleteImageResponse'+ { _bdirsFailures :: !(Maybe [ImageFailure])+ , _bdirsImageIds :: !(Maybe (List1 ImageIdentifier))+ , _bdirsResponseStatus :: !Int+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'BatchDeleteImageResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bdirsFailures'+--+-- * 'bdirsImageIds'+--+-- * 'bdirsResponseStatus'+batchDeleteImageResponse+ :: Int -- ^ 'bdirsResponseStatus'+ -> BatchDeleteImageResponse+batchDeleteImageResponse pResponseStatus_ =+ BatchDeleteImageResponse'+ { _bdirsFailures = Nothing+ , _bdirsImageIds = Nothing+ , _bdirsResponseStatus = pResponseStatus_+ }++-- | Any failures associated with the call.+bdirsFailures :: Lens' BatchDeleteImageResponse [ImageFailure]+bdirsFailures = lens _bdirsFailures (\ s a -> s{_bdirsFailures = a}) . _Default . _Coerce;++-- | The image IDs of the deleted images.+bdirsImageIds :: Lens' BatchDeleteImageResponse (Maybe (NonEmpty ImageIdentifier))+bdirsImageIds = lens _bdirsImageIds (\ s a -> s{_bdirsImageIds = a}) . mapping _List1;++-- | The response status code.+bdirsResponseStatus :: Lens' BatchDeleteImageResponse Int+bdirsResponseStatus = lens _bdirsResponseStatus (\ s a -> s{_bdirsResponseStatus = a});
+ gen/Network/AWS/ECR/BatchGetImage.hs view
@@ -0,0 +1,167 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.ECR.BatchGetImage+-- Copyright : (c) 2013-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets detailed information for specified images within a specified+-- repository. Images are specified with either 'imageTag' or+-- 'imageDigest'.+module Network.AWS.ECR.BatchGetImage+ (+ -- * Creating a Request+ batchGetImage+ , BatchGetImage+ -- * Request Lenses+ , bgiRegistryId+ , bgiRepositoryName+ , bgiImageIds++ -- * Destructuring the Response+ , batchGetImageResponse+ , BatchGetImageResponse+ -- * Response Lenses+ , bgirsImages+ , bgirsFailures+ , bgirsResponseStatus+ ) where++import Network.AWS.ECR.Types+import Network.AWS.ECR.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'batchGetImage' smart constructor.+data BatchGetImage = BatchGetImage'+ { _bgiRegistryId :: !(Maybe Text)+ , _bgiRepositoryName :: !Text+ , _bgiImageIds :: !(List1 ImageIdentifier)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'BatchGetImage' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bgiRegistryId'+--+-- * 'bgiRepositoryName'+--+-- * 'bgiImageIds'+batchGetImage+ :: Text -- ^ 'bgiRepositoryName'+ -> NonEmpty ImageIdentifier -- ^ 'bgiImageIds'+ -> BatchGetImage+batchGetImage pRepositoryName_ pImageIds_ =+ BatchGetImage'+ { _bgiRegistryId = Nothing+ , _bgiRepositoryName = pRepositoryName_+ , _bgiImageIds = _List1 # pImageIds_+ }++-- | The AWS account ID associated with the registry that contains the images+-- to describe. If you do not specify a registry, the default registry is+-- assumed.+bgiRegistryId :: Lens' BatchGetImage (Maybe Text)+bgiRegistryId = lens _bgiRegistryId (\ s a -> s{_bgiRegistryId = a});++-- | The repository that contains the images to describe.+bgiRepositoryName :: Lens' BatchGetImage Text+bgiRepositoryName = lens _bgiRepositoryName (\ s a -> s{_bgiRepositoryName = a});++-- | A list of image ID references that correspond to images to describe. The+-- format of the 'imageIds' reference is 'imageTag=tag' or+-- 'imageDigest=digest'.+bgiImageIds :: Lens' BatchGetImage (NonEmpty ImageIdentifier)+bgiImageIds = lens _bgiImageIds (\ s a -> s{_bgiImageIds = a}) . _List1;++instance AWSRequest BatchGetImage where+ type Rs BatchGetImage = BatchGetImageResponse+ request = postJSON ecr+ response+ = receiveJSON+ (\ s h x ->+ BatchGetImageResponse' <$>+ (x .?> "images" .!@ mempty) <*>+ (x .?> "failures" .!@ mempty)+ <*> (pure (fromEnum s)))++instance Hashable BatchGetImage++instance ToHeaders BatchGetImage where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AmazonEC2ContainerRegistry_V20150921.BatchGetImage"+ :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON BatchGetImage where+ toJSON BatchGetImage'{..}+ = object+ (catMaybes+ [("registryId" .=) <$> _bgiRegistryId,+ Just ("repositoryName" .= _bgiRepositoryName),+ Just ("imageIds" .= _bgiImageIds)])++instance ToPath BatchGetImage where+ toPath = const "/"++instance ToQuery BatchGetImage where+ toQuery = const mempty++-- | /See:/ 'batchGetImageResponse' smart constructor.+data BatchGetImageResponse = BatchGetImageResponse'+ { _bgirsImages :: !(Maybe [Image])+ , _bgirsFailures :: !(Maybe [ImageFailure])+ , _bgirsResponseStatus :: !Int+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'BatchGetImageResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bgirsImages'+--+-- * 'bgirsFailures'+--+-- * 'bgirsResponseStatus'+batchGetImageResponse+ :: Int -- ^ 'bgirsResponseStatus'+ -> BatchGetImageResponse+batchGetImageResponse pResponseStatus_ =+ BatchGetImageResponse'+ { _bgirsImages = Nothing+ , _bgirsFailures = Nothing+ , _bgirsResponseStatus = pResponseStatus_+ }++-- | A list of image objects corresponding to the image references in the+-- request.+bgirsImages :: Lens' BatchGetImageResponse [Image]+bgirsImages = lens _bgirsImages (\ s a -> s{_bgirsImages = a}) . _Default . _Coerce;++-- | Any failures associated with the call.+bgirsFailures :: Lens' BatchGetImageResponse [ImageFailure]+bgirsFailures = lens _bgirsFailures (\ s a -> s{_bgirsFailures = a}) . _Default . _Coerce;++-- | The response status code.+bgirsResponseStatus :: Lens' BatchGetImageResponse Int+bgirsResponseStatus = lens _bgirsResponseStatus (\ s a -> s{_bgirsResponseStatus = a});
+ gen/Network/AWS/ECR/CompleteLayerUpload.hs view
@@ -0,0 +1,201 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.ECR.CompleteLayerUpload+-- Copyright : (c) 2013-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Inform Amazon ECR that the image layer upload for a specified registry,+-- repository name, and upload ID, has completed. You can optionally+-- provide a 'sha256' digest of the image layer for data validation+-- purposes.+--+-- This operation is used by the Amazon ECR proxy, and it is not intended+-- for general use by customers. Use the 'docker' CLI to pull, tag, and+-- push images.+module Network.AWS.ECR.CompleteLayerUpload+ (+ -- * Creating a Request+ completeLayerUpload+ , CompleteLayerUpload+ -- * Request Lenses+ , cluRegistryId+ , cluRepositoryName+ , cluUploadId+ , cluLayerDigests++ -- * Destructuring the Response+ , completeLayerUploadResponse+ , CompleteLayerUploadResponse+ -- * Response Lenses+ , clursRegistryId+ , clursLayerDigest+ , clursRepositoryName+ , clursUploadId+ , clursResponseStatus+ ) where++import Network.AWS.ECR.Types+import Network.AWS.ECR.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'completeLayerUpload' smart constructor.+data CompleteLayerUpload = CompleteLayerUpload'+ { _cluRegistryId :: !(Maybe Text)+ , _cluRepositoryName :: !Text+ , _cluUploadId :: !Text+ , _cluLayerDigests :: !(List1 Text)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CompleteLayerUpload' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cluRegistryId'+--+-- * 'cluRepositoryName'+--+-- * 'cluUploadId'+--+-- * 'cluLayerDigests'+completeLayerUpload+ :: Text -- ^ 'cluRepositoryName'+ -> Text -- ^ 'cluUploadId'+ -> NonEmpty Text -- ^ 'cluLayerDigests'+ -> CompleteLayerUpload+completeLayerUpload pRepositoryName_ pUploadId_ pLayerDigests_ =+ CompleteLayerUpload'+ { _cluRegistryId = Nothing+ , _cluRepositoryName = pRepositoryName_+ , _cluUploadId = pUploadId_+ , _cluLayerDigests = _List1 # pLayerDigests_+ }++-- | The AWS account ID associated with the registry to which to upload+-- layers. If you do not specify a registry, the default registry is+-- assumed.+cluRegistryId :: Lens' CompleteLayerUpload (Maybe Text)+cluRegistryId = lens _cluRegistryId (\ s a -> s{_cluRegistryId = a});++-- | The name of the repository to associate with the image layer.+cluRepositoryName :: Lens' CompleteLayerUpload Text+cluRepositoryName = lens _cluRepositoryName (\ s a -> s{_cluRepositoryName = a});++-- | The upload ID from a previous < InitiateLayerUpload> operation to+-- associate with the image layer.+cluUploadId :: Lens' CompleteLayerUpload Text+cluUploadId = lens _cluUploadId (\ s a -> s{_cluUploadId = a});++-- | The 'sha256' digest of the image layer.+cluLayerDigests :: Lens' CompleteLayerUpload (NonEmpty Text)+cluLayerDigests = lens _cluLayerDigests (\ s a -> s{_cluLayerDigests = a}) . _List1;++instance AWSRequest CompleteLayerUpload where+ type Rs CompleteLayerUpload =+ CompleteLayerUploadResponse+ request = postJSON ecr+ response+ = receiveJSON+ (\ s h x ->+ CompleteLayerUploadResponse' <$>+ (x .?> "registryId") <*> (x .?> "layerDigest") <*>+ (x .?> "repositoryName")+ <*> (x .?> "uploadId")+ <*> (pure (fromEnum s)))++instance Hashable CompleteLayerUpload++instance ToHeaders CompleteLayerUpload where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AmazonEC2ContainerRegistry_V20150921.CompleteLayerUpload"+ :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CompleteLayerUpload where+ toJSON CompleteLayerUpload'{..}+ = object+ (catMaybes+ [("registryId" .=) <$> _cluRegistryId,+ Just ("repositoryName" .= _cluRepositoryName),+ Just ("uploadId" .= _cluUploadId),+ Just ("layerDigests" .= _cluLayerDigests)])++instance ToPath CompleteLayerUpload where+ toPath = const "/"++instance ToQuery CompleteLayerUpload where+ toQuery = const mempty++-- | /See:/ 'completeLayerUploadResponse' smart constructor.+data CompleteLayerUploadResponse = CompleteLayerUploadResponse'+ { _clursRegistryId :: !(Maybe Text)+ , _clursLayerDigest :: !(Maybe Text)+ , _clursRepositoryName :: !(Maybe Text)+ , _clursUploadId :: !(Maybe Text)+ , _clursResponseStatus :: !Int+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CompleteLayerUploadResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'clursRegistryId'+--+-- * 'clursLayerDigest'+--+-- * 'clursRepositoryName'+--+-- * 'clursUploadId'+--+-- * 'clursResponseStatus'+completeLayerUploadResponse+ :: Int -- ^ 'clursResponseStatus'+ -> CompleteLayerUploadResponse+completeLayerUploadResponse pResponseStatus_ =+ CompleteLayerUploadResponse'+ { _clursRegistryId = Nothing+ , _clursLayerDigest = Nothing+ , _clursRepositoryName = Nothing+ , _clursUploadId = Nothing+ , _clursResponseStatus = pResponseStatus_+ }++-- | The registry ID associated with the request.+clursRegistryId :: Lens' CompleteLayerUploadResponse (Maybe Text)+clursRegistryId = lens _clursRegistryId (\ s a -> s{_clursRegistryId = a});++-- | The 'sha256' digest of the image layer.+clursLayerDigest :: Lens' CompleteLayerUploadResponse (Maybe Text)+clursLayerDigest = lens _clursLayerDigest (\ s a -> s{_clursLayerDigest = a});++-- | The repository name associated with the request.+clursRepositoryName :: Lens' CompleteLayerUploadResponse (Maybe Text)+clursRepositoryName = lens _clursRepositoryName (\ s a -> s{_clursRepositoryName = a});++-- | The upload ID associated with the layer.+clursUploadId :: Lens' CompleteLayerUploadResponse (Maybe Text)+clursUploadId = lens _clursUploadId (\ s a -> s{_clursUploadId = a});++-- | The response status code.+clursResponseStatus :: Lens' CompleteLayerUploadResponse Int+clursResponseStatus = lens _clursResponseStatus (\ s a -> s{_clursResponseStatus = a});
+ gen/Network/AWS/ECR/CreateRepository.hs view
@@ -0,0 +1,131 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.ECR.CreateRepository+-- Copyright : (c) 2013-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an image repository.+module Network.AWS.ECR.CreateRepository+ (+ -- * Creating a Request+ createRepository+ , CreateRepository+ -- * Request Lenses+ , crRepositoryName++ -- * Destructuring the Response+ , createRepositoryResponse+ , CreateRepositoryResponse+ -- * Response Lenses+ , crrsRepository+ , crrsResponseStatus+ ) where++import Network.AWS.ECR.Types+import Network.AWS.ECR.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'createRepository' smart constructor.+newtype CreateRepository = CreateRepository'+ { _crRepositoryName :: Text+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateRepository' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'crRepositoryName'+createRepository+ :: Text -- ^ 'crRepositoryName'+ -> CreateRepository+createRepository pRepositoryName_ =+ CreateRepository'+ { _crRepositoryName = pRepositoryName_+ }++-- | The name to use for the repository. 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').+crRepositoryName :: Lens' CreateRepository Text+crRepositoryName = lens _crRepositoryName (\ s a -> s{_crRepositoryName = a});++instance AWSRequest CreateRepository where+ type Rs CreateRepository = CreateRepositoryResponse+ request = postJSON ecr+ response+ = receiveJSON+ (\ s h x ->+ CreateRepositoryResponse' <$>+ (x .?> "repository") <*> (pure (fromEnum s)))++instance Hashable CreateRepository++instance ToHeaders CreateRepository where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AmazonEC2ContainerRegistry_V20150921.CreateRepository"+ :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreateRepository where+ toJSON CreateRepository'{..}+ = object+ (catMaybes+ [Just ("repositoryName" .= _crRepositoryName)])++instance ToPath CreateRepository where+ toPath = const "/"++instance ToQuery CreateRepository where+ toQuery = const mempty++-- | /See:/ 'createRepositoryResponse' smart constructor.+data CreateRepositoryResponse = CreateRepositoryResponse'+ { _crrsRepository :: !(Maybe Repository)+ , _crrsResponseStatus :: !Int+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateRepositoryResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'crrsRepository'+--+-- * 'crrsResponseStatus'+createRepositoryResponse+ :: Int -- ^ 'crrsResponseStatus'+ -> CreateRepositoryResponse+createRepositoryResponse pResponseStatus_ =+ CreateRepositoryResponse'+ { _crrsRepository = Nothing+ , _crrsResponseStatus = pResponseStatus_+ }++-- | Undocumented member.+crrsRepository :: Lens' CreateRepositoryResponse (Maybe Repository)+crrsRepository = lens _crrsRepository (\ s a -> s{_crrsRepository = a});++-- | The response status code.+crrsResponseStatus :: Lens' CreateRepositoryResponse Int+crrsResponseStatus = lens _crrsResponseStatus (\ s a -> s{_crrsResponseStatus = a});
+ gen/Network/AWS/ECR/DeleteRepository.hs view
@@ -0,0 +1,151 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.ECR.DeleteRepository+-- Copyright : (c) 2013-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an existing image repository. If a repository contains images,+-- you must use the 'force' option to delete it.+module Network.AWS.ECR.DeleteRepository+ (+ -- * Creating a Request+ deleteRepository+ , DeleteRepository+ -- * Request Lenses+ , dForce+ , dRegistryId+ , dRepositoryName++ -- * Destructuring the Response+ , deleteRepositoryResponse+ , DeleteRepositoryResponse+ -- * Response Lenses+ , drsRepository+ , drsResponseStatus+ ) where++import Network.AWS.ECR.Types+import Network.AWS.ECR.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'deleteRepository' smart constructor.+data DeleteRepository = DeleteRepository'+ { _dForce :: !(Maybe Bool)+ , _dRegistryId :: !(Maybe Text)+ , _dRepositoryName :: !Text+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteRepository' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dForce'+--+-- * 'dRegistryId'+--+-- * 'dRepositoryName'+deleteRepository+ :: Text -- ^ 'dRepositoryName'+ -> DeleteRepository+deleteRepository pRepositoryName_ =+ DeleteRepository'+ { _dForce = Nothing+ , _dRegistryId = Nothing+ , _dRepositoryName = pRepositoryName_+ }++-- | Force the deletion of the repository if it contains images.+dForce :: Lens' DeleteRepository (Maybe Bool)+dForce = lens _dForce (\ s a -> s{_dForce = a});++-- | The AWS account ID associated with the registry that contains the+-- repository to delete. If you do not specify a registry, the default+-- registry is assumed.+dRegistryId :: Lens' DeleteRepository (Maybe Text)+dRegistryId = lens _dRegistryId (\ s a -> s{_dRegistryId = a});++-- | The name of the repository to delete.+dRepositoryName :: Lens' DeleteRepository Text+dRepositoryName = lens _dRepositoryName (\ s a -> s{_dRepositoryName = a});++instance AWSRequest DeleteRepository where+ type Rs DeleteRepository = DeleteRepositoryResponse+ request = postJSON ecr+ response+ = receiveJSON+ (\ s h x ->+ DeleteRepositoryResponse' <$>+ (x .?> "repository") <*> (pure (fromEnum s)))++instance Hashable DeleteRepository++instance ToHeaders DeleteRepository where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AmazonEC2ContainerRegistry_V20150921.DeleteRepository"+ :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DeleteRepository where+ toJSON DeleteRepository'{..}+ = object+ (catMaybes+ [("force" .=) <$> _dForce,+ ("registryId" .=) <$> _dRegistryId,+ Just ("repositoryName" .= _dRepositoryName)])++instance ToPath DeleteRepository where+ toPath = const "/"++instance ToQuery DeleteRepository where+ toQuery = const mempty++-- | /See:/ 'deleteRepositoryResponse' smart constructor.+data DeleteRepositoryResponse = DeleteRepositoryResponse'+ { _drsRepository :: !(Maybe Repository)+ , _drsResponseStatus :: !Int+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteRepositoryResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drsRepository'+--+-- * 'drsResponseStatus'+deleteRepositoryResponse+ :: Int -- ^ 'drsResponseStatus'+ -> DeleteRepositoryResponse+deleteRepositoryResponse pResponseStatus_ =+ DeleteRepositoryResponse'+ { _drsRepository = Nothing+ , _drsResponseStatus = pResponseStatus_+ }++-- | Undocumented member.+drsRepository :: Lens' DeleteRepositoryResponse (Maybe Repository)+drsRepository = lens _drsRepository (\ s a -> s{_drsRepository = a});++-- | The response status code.+drsResponseStatus :: Lens' DeleteRepositoryResponse Int+drsResponseStatus = lens _drsResponseStatus (\ s a -> s{_drsResponseStatus = a});
+ gen/Network/AWS/ECR/DeleteRepositoryPolicy.hs view
@@ -0,0 +1,162 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.ECR.DeleteRepositoryPolicy+-- Copyright : (c) 2013-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the repository policy from a specified repository.+module Network.AWS.ECR.DeleteRepositoryPolicy+ (+ -- * Creating a Request+ deleteRepositoryPolicy+ , DeleteRepositoryPolicy+ -- * Request Lenses+ , drpRegistryId+ , drpRepositoryName++ -- * Destructuring the Response+ , deleteRepositoryPolicyResponse+ , DeleteRepositoryPolicyResponse+ -- * Response Lenses+ , drprsRegistryId+ , drprsRepositoryName+ , drprsPolicyText+ , drprsResponseStatus+ ) where++import Network.AWS.ECR.Types+import Network.AWS.ECR.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'deleteRepositoryPolicy' smart constructor.+data DeleteRepositoryPolicy = DeleteRepositoryPolicy'+ { _drpRegistryId :: !(Maybe Text)+ , _drpRepositoryName :: !Text+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteRepositoryPolicy' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drpRegistryId'+--+-- * 'drpRepositoryName'+deleteRepositoryPolicy+ :: Text -- ^ 'drpRepositoryName'+ -> DeleteRepositoryPolicy+deleteRepositoryPolicy pRepositoryName_ =+ DeleteRepositoryPolicy'+ { _drpRegistryId = Nothing+ , _drpRepositoryName = pRepositoryName_+ }++-- | The AWS account ID associated with the registry that contains the+-- repository policy to delete. If you do not specify a registry, the+-- default registry is assumed.+drpRegistryId :: Lens' DeleteRepositoryPolicy (Maybe Text)+drpRegistryId = lens _drpRegistryId (\ s a -> s{_drpRegistryId = a});++-- | The name of the repository that is associated with the repository policy+-- to delete.+drpRepositoryName :: Lens' DeleteRepositoryPolicy Text+drpRepositoryName = lens _drpRepositoryName (\ s a -> s{_drpRepositoryName = a});++instance AWSRequest DeleteRepositoryPolicy where+ type Rs DeleteRepositoryPolicy =+ DeleteRepositoryPolicyResponse+ request = postJSON ecr+ response+ = receiveJSON+ (\ s h x ->+ DeleteRepositoryPolicyResponse' <$>+ (x .?> "registryId") <*> (x .?> "repositoryName") <*>+ (x .?> "policyText")+ <*> (pure (fromEnum s)))++instance Hashable DeleteRepositoryPolicy++instance ToHeaders DeleteRepositoryPolicy where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AmazonEC2ContainerRegistry_V20150921.DeleteRepositoryPolicy"+ :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DeleteRepositoryPolicy where+ toJSON DeleteRepositoryPolicy'{..}+ = object+ (catMaybes+ [("registryId" .=) <$> _drpRegistryId,+ Just ("repositoryName" .= _drpRepositoryName)])++instance ToPath DeleteRepositoryPolicy where+ toPath = const "/"++instance ToQuery DeleteRepositoryPolicy where+ toQuery = const mempty++-- | /See:/ 'deleteRepositoryPolicyResponse' smart constructor.+data DeleteRepositoryPolicyResponse = DeleteRepositoryPolicyResponse'+ { _drprsRegistryId :: !(Maybe Text)+ , _drprsRepositoryName :: !(Maybe Text)+ , _drprsPolicyText :: !(Maybe Text)+ , _drprsResponseStatus :: !Int+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteRepositoryPolicyResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drprsRegistryId'+--+-- * 'drprsRepositoryName'+--+-- * 'drprsPolicyText'+--+-- * 'drprsResponseStatus'+deleteRepositoryPolicyResponse+ :: Int -- ^ 'drprsResponseStatus'+ -> DeleteRepositoryPolicyResponse+deleteRepositoryPolicyResponse pResponseStatus_ =+ DeleteRepositoryPolicyResponse'+ { _drprsRegistryId = Nothing+ , _drprsRepositoryName = Nothing+ , _drprsPolicyText = Nothing+ , _drprsResponseStatus = pResponseStatus_+ }++-- | The registry ID associated with the request.+drprsRegistryId :: Lens' DeleteRepositoryPolicyResponse (Maybe Text)+drprsRegistryId = lens _drprsRegistryId (\ s a -> s{_drprsRegistryId = a});++-- | The repository name associated with the request.+drprsRepositoryName :: Lens' DeleteRepositoryPolicyResponse (Maybe Text)+drprsRepositoryName = lens _drprsRepositoryName (\ s a -> s{_drprsRepositoryName = a});++-- | The JSON repository policy that was deleted from the repository.+drprsPolicyText :: Lens' DeleteRepositoryPolicyResponse (Maybe Text)+drprsPolicyText = lens _drprsPolicyText (\ s a -> s{_drprsPolicyText = a});++-- | The response status code.+drprsResponseStatus :: Lens' DeleteRepositoryPolicyResponse Int+drprsResponseStatus = lens _drprsResponseStatus (\ s a -> s{_drprsResponseStatus = a});
+ gen/Network/AWS/ECR/DescribeRepositories.hs view
@@ -0,0 +1,187 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.ECR.DescribeRepositories+-- Copyright : (c) 2013-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes image repositories in a registry.+module Network.AWS.ECR.DescribeRepositories+ (+ -- * Creating a Request+ describeRepositories+ , DescribeRepositories+ -- * Request Lenses+ , drRegistryId+ , drRepositoryNames+ , drNextToken+ , drMaxResults++ -- * Destructuring the Response+ , describeRepositoriesResponse+ , DescribeRepositoriesResponse+ -- * Response Lenses+ , drrsRepositories+ , drrsNextToken+ , drrsResponseStatus+ ) where++import Network.AWS.ECR.Types+import Network.AWS.ECR.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'describeRepositories' smart constructor.+data DescribeRepositories = DescribeRepositories'+ { _drRegistryId :: !(Maybe Text)+ , _drRepositoryNames :: !(Maybe (List1 Text))+ , _drNextToken :: !(Maybe Text)+ , _drMaxResults :: !(Maybe Nat)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeRepositories' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drRegistryId'+--+-- * 'drRepositoryNames'+--+-- * 'drNextToken'+--+-- * 'drMaxResults'+describeRepositories+ :: DescribeRepositories+describeRepositories =+ DescribeRepositories'+ { _drRegistryId = Nothing+ , _drRepositoryNames = Nothing+ , _drNextToken = Nothing+ , _drMaxResults = Nothing+ }++-- | The AWS account ID associated with the registry that contains the+-- repositories to be described. If you do not specify a registry, the+-- default registry is assumed.+drRegistryId :: Lens' DescribeRepositories (Maybe Text)+drRegistryId = lens _drRegistryId (\ s a -> s{_drRegistryId = a});++-- | A list of repositories to describe. If this parameter is omitted, then+-- all repositories in a registry are described.+drRepositoryNames :: Lens' DescribeRepositories (Maybe (NonEmpty Text))+drRepositoryNames = lens _drRepositoryNames (\ s a -> s{_drRepositoryNames = a}) . mapping _List1;++-- | 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.+drNextToken :: Lens' DescribeRepositories (Maybe Text)+drNextToken = lens _drNextToken (\ s a -> s{_drNextToken = a});++-- | 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 100. If this parameter is not used, then+-- 'DescribeRepositories' returns up to 100 results and a 'nextToken'+-- value, if applicable.+drMaxResults :: Lens' DescribeRepositories (Maybe Natural)+drMaxResults = lens _drMaxResults (\ s a -> s{_drMaxResults = a}) . mapping _Nat;++instance AWSRequest DescribeRepositories where+ type Rs DescribeRepositories =+ DescribeRepositoriesResponse+ request = postJSON ecr+ response+ = receiveJSON+ (\ s h x ->+ DescribeRepositoriesResponse' <$>+ (x .?> "repositories" .!@ mempty) <*>+ (x .?> "nextToken")+ <*> (pure (fromEnum s)))++instance Hashable DescribeRepositories++instance ToHeaders DescribeRepositories where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AmazonEC2ContainerRegistry_V20150921.DescribeRepositories"+ :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DescribeRepositories where+ toJSON DescribeRepositories'{..}+ = object+ (catMaybes+ [("registryId" .=) <$> _drRegistryId,+ ("repositoryNames" .=) <$> _drRepositoryNames,+ ("nextToken" .=) <$> _drNextToken,+ ("maxResults" .=) <$> _drMaxResults])++instance ToPath DescribeRepositories where+ toPath = const "/"++instance ToQuery DescribeRepositories where+ toQuery = const mempty++-- | /See:/ 'describeRepositoriesResponse' smart constructor.+data DescribeRepositoriesResponse = DescribeRepositoriesResponse'+ { _drrsRepositories :: !(Maybe [Repository])+ , _drrsNextToken :: !(Maybe Text)+ , _drrsResponseStatus :: !Int+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeRepositoriesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drrsRepositories'+--+-- * 'drrsNextToken'+--+-- * 'drrsResponseStatus'+describeRepositoriesResponse+ :: Int -- ^ 'drrsResponseStatus'+ -> DescribeRepositoriesResponse+describeRepositoriesResponse pResponseStatus_ =+ DescribeRepositoriesResponse'+ { _drrsRepositories = Nothing+ , _drrsNextToken = Nothing+ , _drrsResponseStatus = pResponseStatus_+ }++-- | A list of repository objects corresponding to valid repositories.+drrsRepositories :: Lens' DescribeRepositoriesResponse [Repository]+drrsRepositories = lens _drrsRepositories (\ s a -> s{_drrsRepositories = a}) . _Default . _Coerce;++-- | 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.+drrsNextToken :: Lens' DescribeRepositoriesResponse (Maybe Text)+drrsNextToken = lens _drrsNextToken (\ s a -> s{_drrsNextToken = a});++-- | The response status code.+drrsResponseStatus :: Lens' DescribeRepositoriesResponse Int+drrsResponseStatus = lens _drrsResponseStatus (\ s a -> s{_drrsResponseStatus = a});
+ gen/Network/AWS/ECR/GetAuthorizationToken.hs view
@@ -0,0 +1,139 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.ECR.GetAuthorizationToken+-- Copyright : (c) 2013-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a token that is valid for a specified registry for 12 hours.+-- This command allows you to use the 'docker' CLI to push and pull images+-- with Amazon ECR. If you do not specify a registry, the default registry+-- is assumed.+--+-- The 'authorizationToken' returned for each registry specified is a+-- base64 encoded string that can be decoded and used in a 'docker login'+-- command to authenticate to a registry. The AWS CLI offers an+-- 'aws ecr get-login' command that simplifies the login process.+module Network.AWS.ECR.GetAuthorizationToken+ (+ -- * Creating a Request+ getAuthorizationToken+ , GetAuthorizationToken+ -- * Request Lenses+ , gatRegistryIds++ -- * Destructuring the Response+ , getAuthorizationTokenResponse+ , GetAuthorizationTokenResponse+ -- * Response Lenses+ , gatrsAuthorizationData+ , gatrsResponseStatus+ ) where++import Network.AWS.ECR.Types+import Network.AWS.ECR.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'getAuthorizationToken' smart constructor.+newtype GetAuthorizationToken = GetAuthorizationToken'+ { _gatRegistryIds :: Maybe (List1 Text)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetAuthorizationToken' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gatRegistryIds'+getAuthorizationToken+ :: GetAuthorizationToken+getAuthorizationToken =+ GetAuthorizationToken'+ { _gatRegistryIds = Nothing+ }++-- | A list of AWS account IDs that are associated with the registries for+-- which to get authorization tokens. If you do not specify a registry, the+-- default registry is assumed.+gatRegistryIds :: Lens' GetAuthorizationToken (Maybe (NonEmpty Text))+gatRegistryIds = lens _gatRegistryIds (\ s a -> s{_gatRegistryIds = a}) . mapping _List1;++instance AWSRequest GetAuthorizationToken where+ type Rs GetAuthorizationToken =+ GetAuthorizationTokenResponse+ request = postJSON ecr+ response+ = receiveJSON+ (\ s h x ->+ GetAuthorizationTokenResponse' <$>+ (x .?> "authorizationData" .!@ mempty) <*>+ (pure (fromEnum s)))++instance Hashable GetAuthorizationToken++instance ToHeaders GetAuthorizationToken where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AmazonEC2ContainerRegistry_V20150921.GetAuthorizationToken"+ :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON GetAuthorizationToken where+ toJSON GetAuthorizationToken'{..}+ = object+ (catMaybes [("registryIds" .=) <$> _gatRegistryIds])++instance ToPath GetAuthorizationToken where+ toPath = const "/"++instance ToQuery GetAuthorizationToken where+ toQuery = const mempty++-- | /See:/ 'getAuthorizationTokenResponse' smart constructor.+data GetAuthorizationTokenResponse = GetAuthorizationTokenResponse'+ { _gatrsAuthorizationData :: !(Maybe [AuthorizationData])+ , _gatrsResponseStatus :: !Int+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetAuthorizationTokenResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gatrsAuthorizationData'+--+-- * 'gatrsResponseStatus'+getAuthorizationTokenResponse+ :: Int -- ^ 'gatrsResponseStatus'+ -> GetAuthorizationTokenResponse+getAuthorizationTokenResponse pResponseStatus_ =+ GetAuthorizationTokenResponse'+ { _gatrsAuthorizationData = Nothing+ , _gatrsResponseStatus = pResponseStatus_+ }++-- | A list of authorization token data objects that correspond to the+-- 'registryIds' values in the request.+gatrsAuthorizationData :: Lens' GetAuthorizationTokenResponse [AuthorizationData]+gatrsAuthorizationData = lens _gatrsAuthorizationData (\ s a -> s{_gatrsAuthorizationData = a}) . _Default . _Coerce;++-- | The response status code.+gatrsResponseStatus :: Lens' GetAuthorizationTokenResponse Int+gatrsResponseStatus = lens _gatrsResponseStatus (\ s a -> s{_gatrsResponseStatus = a});
+ gen/Network/AWS/ECR/GetDownloadURLForLayer.hs view
@@ -0,0 +1,169 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.ECR.GetDownloadURLForLayer+-- Copyright : (c) 2013-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the pre-signed Amazon S3 download URL corresponding to an+-- image layer. You can only get URLs for image layers that are referenced+-- in an image.+--+-- This operation is used by the Amazon ECR proxy, and it is not intended+-- for general use by customers. Use the 'docker' CLI to pull, tag, and+-- push images.+module Network.AWS.ECR.GetDownloadURLForLayer+ (+ -- * Creating a Request+ getDownloadURLForLayer+ , GetDownloadURLForLayer+ -- * Request Lenses+ , gduflRegistryId+ , gduflRepositoryName+ , gduflLayerDigest++ -- * Destructuring the Response+ , getDownloadURLForLayerResponse+ , GetDownloadURLForLayerResponse+ -- * Response Lenses+ , gduflrsLayerDigest+ , gduflrsDownloadURL+ , gduflrsResponseStatus+ ) where++import Network.AWS.ECR.Types+import Network.AWS.ECR.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'getDownloadURLForLayer' smart constructor.+data GetDownloadURLForLayer = GetDownloadURLForLayer'+ { _gduflRegistryId :: !(Maybe Text)+ , _gduflRepositoryName :: !Text+ , _gduflLayerDigest :: !Text+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetDownloadURLForLayer' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gduflRegistryId'+--+-- * 'gduflRepositoryName'+--+-- * 'gduflLayerDigest'+getDownloadURLForLayer+ :: Text -- ^ 'gduflRepositoryName'+ -> Text -- ^ 'gduflLayerDigest'+ -> GetDownloadURLForLayer+getDownloadURLForLayer pRepositoryName_ pLayerDigest_ =+ GetDownloadURLForLayer'+ { _gduflRegistryId = Nothing+ , _gduflRepositoryName = pRepositoryName_+ , _gduflLayerDigest = pLayerDigest_+ }++-- | The AWS account ID associated with the registry that contains the image+-- layer to download. If you do not specify a registry, the default+-- registry is assumed.+gduflRegistryId :: Lens' GetDownloadURLForLayer (Maybe Text)+gduflRegistryId = lens _gduflRegistryId (\ s a -> s{_gduflRegistryId = a});++-- | The name of the repository that is associated with the image layer to+-- download.+gduflRepositoryName :: Lens' GetDownloadURLForLayer Text+gduflRepositoryName = lens _gduflRepositoryName (\ s a -> s{_gduflRepositoryName = a});++-- | The digest of the image layer to download.+gduflLayerDigest :: Lens' GetDownloadURLForLayer Text+gduflLayerDigest = lens _gduflLayerDigest (\ s a -> s{_gduflLayerDigest = a});++instance AWSRequest GetDownloadURLForLayer where+ type Rs GetDownloadURLForLayer =+ GetDownloadURLForLayerResponse+ request = postJSON ecr+ response+ = receiveJSON+ (\ s h x ->+ GetDownloadURLForLayerResponse' <$>+ (x .?> "layerDigest") <*> (x .?> "downloadUrl") <*>+ (pure (fromEnum s)))++instance Hashable GetDownloadURLForLayer++instance ToHeaders GetDownloadURLForLayer where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AmazonEC2ContainerRegistry_V20150921.GetDownloadUrlForLayer"+ :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON GetDownloadURLForLayer where+ toJSON GetDownloadURLForLayer'{..}+ = object+ (catMaybes+ [("registryId" .=) <$> _gduflRegistryId,+ Just ("repositoryName" .= _gduflRepositoryName),+ Just ("layerDigest" .= _gduflLayerDigest)])++instance ToPath GetDownloadURLForLayer where+ toPath = const "/"++instance ToQuery GetDownloadURLForLayer where+ toQuery = const mempty++-- | /See:/ 'getDownloadURLForLayerResponse' smart constructor.+data GetDownloadURLForLayerResponse = GetDownloadURLForLayerResponse'+ { _gduflrsLayerDigest :: !(Maybe Text)+ , _gduflrsDownloadURL :: !(Maybe Text)+ , _gduflrsResponseStatus :: !Int+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetDownloadURLForLayerResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gduflrsLayerDigest'+--+-- * 'gduflrsDownloadURL'+--+-- * 'gduflrsResponseStatus'+getDownloadURLForLayerResponse+ :: Int -- ^ 'gduflrsResponseStatus'+ -> GetDownloadURLForLayerResponse+getDownloadURLForLayerResponse pResponseStatus_ =+ GetDownloadURLForLayerResponse'+ { _gduflrsLayerDigest = Nothing+ , _gduflrsDownloadURL = Nothing+ , _gduflrsResponseStatus = pResponseStatus_+ }++-- | The digest of the image layer to download.+gduflrsLayerDigest :: Lens' GetDownloadURLForLayerResponse (Maybe Text)+gduflrsLayerDigest = lens _gduflrsLayerDigest (\ s a -> s{_gduflrsLayerDigest = a});++-- | The pre-signed Amazon S3 download URL for the requested layer.+gduflrsDownloadURL :: Lens' GetDownloadURLForLayerResponse (Maybe Text)+gduflrsDownloadURL = lens _gduflrsDownloadURL (\ s a -> s{_gduflrsDownloadURL = a});++-- | The response status code.+gduflrsResponseStatus :: Lens' GetDownloadURLForLayerResponse Int+gduflrsResponseStatus = lens _gduflrsResponseStatus (\ s a -> s{_gduflrsResponseStatus = a});
+ gen/Network/AWS/ECR/GetRepositoryPolicy.hs view
@@ -0,0 +1,161 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.ECR.GetRepositoryPolicy+-- Copyright : (c) 2013-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the repository policy for a specified repository.+module Network.AWS.ECR.GetRepositoryPolicy+ (+ -- * Creating a Request+ getRepositoryPolicy+ , GetRepositoryPolicy+ -- * Request Lenses+ , grpRegistryId+ , grpRepositoryName++ -- * Destructuring the Response+ , getRepositoryPolicyResponse+ , GetRepositoryPolicyResponse+ -- * Response Lenses+ , grprsRegistryId+ , grprsRepositoryName+ , grprsPolicyText+ , grprsResponseStatus+ ) where++import Network.AWS.ECR.Types+import Network.AWS.ECR.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'getRepositoryPolicy' smart constructor.+data GetRepositoryPolicy = GetRepositoryPolicy'+ { _grpRegistryId :: !(Maybe Text)+ , _grpRepositoryName :: !Text+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetRepositoryPolicy' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'grpRegistryId'+--+-- * 'grpRepositoryName'+getRepositoryPolicy+ :: Text -- ^ 'grpRepositoryName'+ -> GetRepositoryPolicy+getRepositoryPolicy pRepositoryName_ =+ GetRepositoryPolicy'+ { _grpRegistryId = Nothing+ , _grpRepositoryName = pRepositoryName_+ }++-- | The AWS account ID associated with the registry that contains the+-- repository. If you do not specify a registry, the default registry is+-- assumed.+grpRegistryId :: Lens' GetRepositoryPolicy (Maybe Text)+grpRegistryId = lens _grpRegistryId (\ s a -> s{_grpRegistryId = a});++-- | The name of the repository whose policy you want to retrieve.+grpRepositoryName :: Lens' GetRepositoryPolicy Text+grpRepositoryName = lens _grpRepositoryName (\ s a -> s{_grpRepositoryName = a});++instance AWSRequest GetRepositoryPolicy where+ type Rs GetRepositoryPolicy =+ GetRepositoryPolicyResponse+ request = postJSON ecr+ response+ = receiveJSON+ (\ s h x ->+ GetRepositoryPolicyResponse' <$>+ (x .?> "registryId") <*> (x .?> "repositoryName") <*>+ (x .?> "policyText")+ <*> (pure (fromEnum s)))++instance Hashable GetRepositoryPolicy++instance ToHeaders GetRepositoryPolicy where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AmazonEC2ContainerRegistry_V20150921.GetRepositoryPolicy"+ :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON GetRepositoryPolicy where+ toJSON GetRepositoryPolicy'{..}+ = object+ (catMaybes+ [("registryId" .=) <$> _grpRegistryId,+ Just ("repositoryName" .= _grpRepositoryName)])++instance ToPath GetRepositoryPolicy where+ toPath = const "/"++instance ToQuery GetRepositoryPolicy where+ toQuery = const mempty++-- | /See:/ 'getRepositoryPolicyResponse' smart constructor.+data GetRepositoryPolicyResponse = GetRepositoryPolicyResponse'+ { _grprsRegistryId :: !(Maybe Text)+ , _grprsRepositoryName :: !(Maybe Text)+ , _grprsPolicyText :: !(Maybe Text)+ , _grprsResponseStatus :: !Int+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetRepositoryPolicyResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'grprsRegistryId'+--+-- * 'grprsRepositoryName'+--+-- * 'grprsPolicyText'+--+-- * 'grprsResponseStatus'+getRepositoryPolicyResponse+ :: Int -- ^ 'grprsResponseStatus'+ -> GetRepositoryPolicyResponse+getRepositoryPolicyResponse pResponseStatus_ =+ GetRepositoryPolicyResponse'+ { _grprsRegistryId = Nothing+ , _grprsRepositoryName = Nothing+ , _grprsPolicyText = Nothing+ , _grprsResponseStatus = pResponseStatus_+ }++-- | The registry ID associated with the request.+grprsRegistryId :: Lens' GetRepositoryPolicyResponse (Maybe Text)+grprsRegistryId = lens _grprsRegistryId (\ s a -> s{_grprsRegistryId = a});++-- | The repository name associated with the request.+grprsRepositoryName :: Lens' GetRepositoryPolicyResponse (Maybe Text)+grprsRepositoryName = lens _grprsRepositoryName (\ s a -> s{_grprsRepositoryName = a});++-- | The JSON repository policy text associated with the repository.+grprsPolicyText :: Lens' GetRepositoryPolicyResponse (Maybe Text)+grprsPolicyText = lens _grprsPolicyText (\ s a -> s{_grprsPolicyText = a});++-- | The response status code.+grprsResponseStatus :: Lens' GetRepositoryPolicyResponse Int+grprsResponseStatus = lens _grprsResponseStatus (\ s a -> s{_grprsResponseStatus = a});
+ gen/Network/AWS/ECR/InitiateLayerUpload.hs view
@@ -0,0 +1,157 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.ECR.InitiateLayerUpload+-- Copyright : (c) 2013-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Notify Amazon ECR that you intend to upload an image layer.+--+-- This operation is used by the Amazon ECR proxy, and it is not intended+-- for general use by customers. Use the 'docker' CLI to pull, tag, and+-- push images.+module Network.AWS.ECR.InitiateLayerUpload+ (+ -- * Creating a Request+ initiateLayerUpload+ , InitiateLayerUpload+ -- * Request Lenses+ , iluRegistryId+ , iluRepositoryName++ -- * Destructuring the Response+ , initiateLayerUploadResponse+ , InitiateLayerUploadResponse+ -- * Response Lenses+ , ilursPartSize+ , ilursUploadId+ , ilursResponseStatus+ ) where++import Network.AWS.ECR.Types+import Network.AWS.ECR.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'initiateLayerUpload' smart constructor.+data InitiateLayerUpload = InitiateLayerUpload'+ { _iluRegistryId :: !(Maybe Text)+ , _iluRepositoryName :: !Text+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InitiateLayerUpload' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iluRegistryId'+--+-- * 'iluRepositoryName'+initiateLayerUpload+ :: Text -- ^ 'iluRepositoryName'+ -> InitiateLayerUpload+initiateLayerUpload pRepositoryName_ =+ InitiateLayerUpload'+ { _iluRegistryId = Nothing+ , _iluRepositoryName = pRepositoryName_+ }++-- | The AWS account ID associated with the registry that you intend to+-- upload layers to. If you do not specify a registry, the default registry+-- is assumed.+iluRegistryId :: Lens' InitiateLayerUpload (Maybe Text)+iluRegistryId = lens _iluRegistryId (\ s a -> s{_iluRegistryId = a});++-- | The name of the repository that you intend to upload layers to.+iluRepositoryName :: Lens' InitiateLayerUpload Text+iluRepositoryName = lens _iluRepositoryName (\ s a -> s{_iluRepositoryName = a});++instance AWSRequest InitiateLayerUpload where+ type Rs InitiateLayerUpload =+ InitiateLayerUploadResponse+ request = postJSON ecr+ response+ = receiveJSON+ (\ s h x ->+ InitiateLayerUploadResponse' <$>+ (x .?> "partSize") <*> (x .?> "uploadId") <*>+ (pure (fromEnum s)))++instance Hashable InitiateLayerUpload++instance ToHeaders InitiateLayerUpload where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AmazonEC2ContainerRegistry_V20150921.InitiateLayerUpload"+ :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON InitiateLayerUpload where+ toJSON InitiateLayerUpload'{..}+ = object+ (catMaybes+ [("registryId" .=) <$> _iluRegistryId,+ Just ("repositoryName" .= _iluRepositoryName)])++instance ToPath InitiateLayerUpload where+ toPath = const "/"++instance ToQuery InitiateLayerUpload where+ toQuery = const mempty++-- | /See:/ 'initiateLayerUploadResponse' smart constructor.+data InitiateLayerUploadResponse = InitiateLayerUploadResponse'+ { _ilursPartSize :: !(Maybe Nat)+ , _ilursUploadId :: !(Maybe Text)+ , _ilursResponseStatus :: !Int+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InitiateLayerUploadResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ilursPartSize'+--+-- * 'ilursUploadId'+--+-- * 'ilursResponseStatus'+initiateLayerUploadResponse+ :: Int -- ^ 'ilursResponseStatus'+ -> InitiateLayerUploadResponse+initiateLayerUploadResponse pResponseStatus_ =+ InitiateLayerUploadResponse'+ { _ilursPartSize = Nothing+ , _ilursUploadId = Nothing+ , _ilursResponseStatus = pResponseStatus_+ }++-- | The size, in bytes, that Amazon ECR expects future layer part uploads to+-- be.+ilursPartSize :: Lens' InitiateLayerUploadResponse (Maybe Natural)+ilursPartSize = lens _ilursPartSize (\ s a -> s{_ilursPartSize = a}) . mapping _Nat;++-- | The upload ID for the layer upload. This parameter is passed to further+-- < UploadLayerPart> and < CompleteLayerUpload> operations.+ilursUploadId :: Lens' InitiateLayerUploadResponse (Maybe Text)+ilursUploadId = lens _ilursUploadId (\ s a -> s{_ilursUploadId = a});++-- | The response status code.+ilursResponseStatus :: Lens' InitiateLayerUploadResponse Int+ilursResponseStatus = lens _ilursResponseStatus (\ s a -> s{_ilursResponseStatus = a});
+ gen/Network/AWS/ECR/ListImages.hs view
@@ -0,0 +1,184 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.ECR.ListImages+-- Copyright : (c) 2013-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all the image IDs for a given repository.+module Network.AWS.ECR.ListImages+ (+ -- * Creating a Request+ listImages+ , ListImages+ -- * Request Lenses+ , liRegistryId+ , liNextToken+ , liMaxResults+ , liRepositoryName++ -- * Destructuring the Response+ , listImagesResponse+ , ListImagesResponse+ -- * Response Lenses+ , lirsImageIds+ , lirsNextToken+ , lirsResponseStatus+ ) where++import Network.AWS.ECR.Types+import Network.AWS.ECR.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'listImages' smart constructor.+data ListImages = ListImages'+ { _liRegistryId :: !(Maybe Text)+ , _liNextToken :: !(Maybe Text)+ , _liMaxResults :: !(Maybe Nat)+ , _liRepositoryName :: !Text+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListImages' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'liRegistryId'+--+-- * 'liNextToken'+--+-- * 'liMaxResults'+--+-- * 'liRepositoryName'+listImages+ :: Text -- ^ 'liRepositoryName'+ -> ListImages+listImages pRepositoryName_ =+ ListImages'+ { _liRegistryId = Nothing+ , _liNextToken = Nothing+ , _liMaxResults = Nothing+ , _liRepositoryName = pRepositoryName_+ }++-- | The AWS account ID associated with the registry that contains the+-- repository to list images in. If you do not specify a registry, the+-- default registry is assumed.+liRegistryId :: Lens' ListImages (Maybe Text)+liRegistryId = lens _liRegistryId (\ s a -> s{_liRegistryId = a});++-- | The 'nextToken' value returned from a previous paginated 'ListImages'+-- 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.+liNextToken :: Lens' ListImages (Maybe Text)+liNextToken = lens _liNextToken (\ s a -> s{_liNextToken = a});++-- | The maximum number of image results returned by 'ListImages' in+-- paginated output. When this parameter is used, 'ListImages' 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 'ListImages' request with the returned 'nextToken'+-- value. This value can be between 1 and 100. If this parameter is not+-- used, then 'ListImages' returns up to 100 results and a 'nextToken'+-- value, if applicable.+liMaxResults :: Lens' ListImages (Maybe Natural)+liMaxResults = lens _liMaxResults (\ s a -> s{_liMaxResults = a}) . mapping _Nat;++-- | The repository whose image IDs are to be listed.+liRepositoryName :: Lens' ListImages Text+liRepositoryName = lens _liRepositoryName (\ s a -> s{_liRepositoryName = a});++instance AWSRequest ListImages where+ type Rs ListImages = ListImagesResponse+ request = postJSON ecr+ response+ = receiveJSON+ (\ s h x ->+ ListImagesResponse' <$>+ (x .?> "imageIds") <*> (x .?> "nextToken") <*>+ (pure (fromEnum s)))++instance Hashable ListImages++instance ToHeaders ListImages where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AmazonEC2ContainerRegistry_V20150921.ListImages" ::+ ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON ListImages where+ toJSON ListImages'{..}+ = object+ (catMaybes+ [("registryId" .=) <$> _liRegistryId,+ ("nextToken" .=) <$> _liNextToken,+ ("maxResults" .=) <$> _liMaxResults,+ Just ("repositoryName" .= _liRepositoryName)])++instance ToPath ListImages where+ toPath = const "/"++instance ToQuery ListImages where+ toQuery = const mempty++-- | /See:/ 'listImagesResponse' smart constructor.+data ListImagesResponse = ListImagesResponse'+ { _lirsImageIds :: !(Maybe (List1 ImageIdentifier))+ , _lirsNextToken :: !(Maybe Text)+ , _lirsResponseStatus :: !Int+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListImagesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lirsImageIds'+--+-- * 'lirsNextToken'+--+-- * 'lirsResponseStatus'+listImagesResponse+ :: Int -- ^ 'lirsResponseStatus'+ -> ListImagesResponse+listImagesResponse pResponseStatus_ =+ ListImagesResponse'+ { _lirsImageIds = Nothing+ , _lirsNextToken = Nothing+ , _lirsResponseStatus = pResponseStatus_+ }++-- | The list of image IDs for the requested repository.+lirsImageIds :: Lens' ListImagesResponse (Maybe (NonEmpty ImageIdentifier))+lirsImageIds = lens _lirsImageIds (\ s a -> s{_lirsImageIds = a}) . mapping _List1;++-- | The 'nextToken' value to include in a future 'ListImages' request. When+-- the results of a 'ListImages' 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.+lirsNextToken :: Lens' ListImagesResponse (Maybe Text)+lirsNextToken = lens _lirsNextToken (\ s a -> s{_lirsNextToken = a});++-- | The response status code.+lirsResponseStatus :: Lens' ListImagesResponse Int+lirsResponseStatus = lens _lirsResponseStatus (\ s a -> s{_lirsResponseStatus = a});
+ gen/Network/AWS/ECR/PutImage.hs view
@@ -0,0 +1,155 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.ECR.PutImage+-- Copyright : (c) 2013-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates or updates the image manifest associated with an image.+--+-- This operation is used by the Amazon ECR proxy, and it is not intended+-- for general use by customers. Use the 'docker' CLI to pull, tag, and+-- push images.+module Network.AWS.ECR.PutImage+ (+ -- * Creating a Request+ putImage+ , PutImage+ -- * Request Lenses+ , piRegistryId+ , piRepositoryName+ , piImageManifest++ -- * Destructuring the Response+ , putImageResponse+ , PutImageResponse+ -- * Response Lenses+ , pirsImage+ , pirsResponseStatus+ ) where++import Network.AWS.ECR.Types+import Network.AWS.ECR.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'putImage' smart constructor.+data PutImage = PutImage'+ { _piRegistryId :: !(Maybe Text)+ , _piRepositoryName :: !Text+ , _piImageManifest :: !Text+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'PutImage' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'piRegistryId'+--+-- * 'piRepositoryName'+--+-- * 'piImageManifest'+putImage+ :: Text -- ^ 'piRepositoryName'+ -> Text -- ^ 'piImageManifest'+ -> PutImage+putImage pRepositoryName_ pImageManifest_ =+ PutImage'+ { _piRegistryId = Nothing+ , _piRepositoryName = pRepositoryName_+ , _piImageManifest = pImageManifest_+ }++-- | The AWS account ID associated with the registry that contains the+-- repository in which to put the image. If you do not specify a registry,+-- the default registry is assumed.+piRegistryId :: Lens' PutImage (Maybe Text)+piRegistryId = lens _piRegistryId (\ s a -> s{_piRegistryId = a});++-- | The name of the repository in which to put the image.+piRepositoryName :: Lens' PutImage Text+piRepositoryName = lens _piRepositoryName (\ s a -> s{_piRepositoryName = a});++-- | The image manifest corresponding to the image to be uploaded.+piImageManifest :: Lens' PutImage Text+piImageManifest = lens _piImageManifest (\ s a -> s{_piImageManifest = a});++instance AWSRequest PutImage where+ type Rs PutImage = PutImageResponse+ request = postJSON ecr+ response+ = receiveJSON+ (\ s h x ->+ PutImageResponse' <$>+ (x .?> "image") <*> (pure (fromEnum s)))++instance Hashable PutImage++instance ToHeaders PutImage where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AmazonEC2ContainerRegistry_V20150921.PutImage" ::+ ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON PutImage where+ toJSON PutImage'{..}+ = object+ (catMaybes+ [("registryId" .=) <$> _piRegistryId,+ Just ("repositoryName" .= _piRepositoryName),+ Just ("imageManifest" .= _piImageManifest)])++instance ToPath PutImage where+ toPath = const "/"++instance ToQuery PutImage where+ toQuery = const mempty++-- | /See:/ 'putImageResponse' smart constructor.+data PutImageResponse = PutImageResponse'+ { _pirsImage :: !(Maybe Image)+ , _pirsResponseStatus :: !Int+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'PutImageResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pirsImage'+--+-- * 'pirsResponseStatus'+putImageResponse+ :: Int -- ^ 'pirsResponseStatus'+ -> PutImageResponse+putImageResponse pResponseStatus_ =+ PutImageResponse'+ { _pirsImage = Nothing+ , _pirsResponseStatus = pResponseStatus_+ }++-- | Details of the image uploaded.+pirsImage :: Lens' PutImageResponse (Maybe Image)+pirsImage = lens _pirsImage (\ s a -> s{_pirsImage = a});++-- | The response status code.+pirsResponseStatus :: Lens' PutImageResponse Int+pirsResponseStatus = lens _pirsResponseStatus (\ s a -> s{_pirsResponseStatus = a});
+ gen/Network/AWS/ECR/SetRepositoryPolicy.hs view
@@ -0,0 +1,186 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.ECR.SetRepositoryPolicy+-- Copyright : (c) 2013-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Applies a repository policy on a specified repository to control access+-- permissions.+module Network.AWS.ECR.SetRepositoryPolicy+ (+ -- * Creating a Request+ setRepositoryPolicy+ , SetRepositoryPolicy+ -- * Request Lenses+ , srpForce+ , srpRegistryId+ , srpRepositoryName+ , srpPolicyText++ -- * Destructuring the Response+ , setRepositoryPolicyResponse+ , SetRepositoryPolicyResponse+ -- * Response Lenses+ , srprsRegistryId+ , srprsRepositoryName+ , srprsPolicyText+ , srprsResponseStatus+ ) where++import Network.AWS.ECR.Types+import Network.AWS.ECR.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'setRepositoryPolicy' smart constructor.+data SetRepositoryPolicy = SetRepositoryPolicy'+ { _srpForce :: !(Maybe Bool)+ , _srpRegistryId :: !(Maybe Text)+ , _srpRepositoryName :: !Text+ , _srpPolicyText :: !Text+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'SetRepositoryPolicy' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'srpForce'+--+-- * 'srpRegistryId'+--+-- * 'srpRepositoryName'+--+-- * 'srpPolicyText'+setRepositoryPolicy+ :: Text -- ^ 'srpRepositoryName'+ -> Text -- ^ 'srpPolicyText'+ -> SetRepositoryPolicy+setRepositoryPolicy pRepositoryName_ pPolicyText_ =+ SetRepositoryPolicy'+ { _srpForce = Nothing+ , _srpRegistryId = Nothing+ , _srpRepositoryName = pRepositoryName_+ , _srpPolicyText = 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.+srpForce :: Lens' SetRepositoryPolicy (Maybe Bool)+srpForce = lens _srpForce (\ s a -> s{_srpForce = a});++-- | The AWS account ID associated with the registry that contains the+-- repository. If you do not specify a registry, the default registry is+-- assumed.+srpRegistryId :: Lens' SetRepositoryPolicy (Maybe Text)+srpRegistryId = lens _srpRegistryId (\ s a -> s{_srpRegistryId = a});++-- | The name of the repository to receive the policy.+srpRepositoryName :: Lens' SetRepositoryPolicy Text+srpRepositoryName = lens _srpRepositoryName (\ s a -> s{_srpRepositoryName = a});++-- | The JSON repository policy text to apply to the repository.+srpPolicyText :: Lens' SetRepositoryPolicy Text+srpPolicyText = lens _srpPolicyText (\ s a -> s{_srpPolicyText = a});++instance AWSRequest SetRepositoryPolicy where+ type Rs SetRepositoryPolicy =+ SetRepositoryPolicyResponse+ request = postJSON ecr+ response+ = receiveJSON+ (\ s h x ->+ SetRepositoryPolicyResponse' <$>+ (x .?> "registryId") <*> (x .?> "repositoryName") <*>+ (x .?> "policyText")+ <*> (pure (fromEnum s)))++instance Hashable SetRepositoryPolicy++instance ToHeaders SetRepositoryPolicy where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AmazonEC2ContainerRegistry_V20150921.SetRepositoryPolicy"+ :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON SetRepositoryPolicy where+ toJSON SetRepositoryPolicy'{..}+ = object+ (catMaybes+ [("force" .=) <$> _srpForce,+ ("registryId" .=) <$> _srpRegistryId,+ Just ("repositoryName" .= _srpRepositoryName),+ Just ("policyText" .= _srpPolicyText)])++instance ToPath SetRepositoryPolicy where+ toPath = const "/"++instance ToQuery SetRepositoryPolicy where+ toQuery = const mempty++-- | /See:/ 'setRepositoryPolicyResponse' smart constructor.+data SetRepositoryPolicyResponse = SetRepositoryPolicyResponse'+ { _srprsRegistryId :: !(Maybe Text)+ , _srprsRepositoryName :: !(Maybe Text)+ , _srprsPolicyText :: !(Maybe Text)+ , _srprsResponseStatus :: !Int+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'SetRepositoryPolicyResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'srprsRegistryId'+--+-- * 'srprsRepositoryName'+--+-- * 'srprsPolicyText'+--+-- * 'srprsResponseStatus'+setRepositoryPolicyResponse+ :: Int -- ^ 'srprsResponseStatus'+ -> SetRepositoryPolicyResponse+setRepositoryPolicyResponse pResponseStatus_ =+ SetRepositoryPolicyResponse'+ { _srprsRegistryId = Nothing+ , _srprsRepositoryName = Nothing+ , _srprsPolicyText = Nothing+ , _srprsResponseStatus = pResponseStatus_+ }++-- | The registry ID associated with the request.+srprsRegistryId :: Lens' SetRepositoryPolicyResponse (Maybe Text)+srprsRegistryId = lens _srprsRegistryId (\ s a -> s{_srprsRegistryId = a});++-- | The repository name associated with the request.+srprsRepositoryName :: Lens' SetRepositoryPolicyResponse (Maybe Text)+srprsRepositoryName = lens _srprsRepositoryName (\ s a -> s{_srprsRepositoryName = a});++-- | The JSON repository policy text applied to the repository.+srprsPolicyText :: Lens' SetRepositoryPolicyResponse (Maybe Text)+srprsPolicyText = lens _srprsPolicyText (\ s a -> s{_srprsPolicyText = a});++-- | The response status code.+srprsResponseStatus :: Lens' SetRepositoryPolicyResponse Int+srprsResponseStatus = lens _srprsResponseStatus (\ s a -> s{_srprsResponseStatus = a});
+ gen/Network/AWS/ECR/Types.hs view
@@ -0,0 +1,219 @@+{-# LANGUAGE OverloadedStrings #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.ECR.Types+-- Copyright : (c) 2013-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.ECR.Types+ (+ -- * Service Configuration+ ecr++ -- * Errors+ , _LayersNotFoundException+ , _InvalidParameterException+ , _LayerAlreadyExistsException+ , _ServerException+ , _LayerInaccessibleException+ , _InvalidLayerException+ , _LayerPartTooSmallException+ , _ImageAlreadyExistsException+ , _RepositoryNotFoundException+ , _UploadNotFoundException+ , _InvalidLayerPartException+ , _RepositoryNotEmptyException+ , _RepositoryAlreadyExistsException+ , _RepositoryPolicyNotFoundException+ , _EmptyUploadException+ , _LimitExceededException++ -- * ImageFailureCode+ , ImageFailureCode (..)++ -- * LayerAvailability+ , LayerAvailability (..)++ -- * LayerFailureCode+ , LayerFailureCode (..)++ -- * AuthorizationData+ , AuthorizationData+ , authorizationData+ , adExpiresAt+ , adProxyEndpoint+ , adAuthorizationToken++ -- * Image+ , Image+ , image+ , iRegistryId+ , iImageId+ , iRepositoryName+ , iImageManifest++ -- * ImageFailure+ , ImageFailure+ , imageFailure+ , ifFailureReason+ , ifFailureCode+ , ifImageId++ -- * ImageIdentifier+ , ImageIdentifier+ , imageIdentifier+ , iiImageDigest+ , iiImageTag++ -- * Layer+ , Layer+ , layer+ , lLayerDigest+ , lLayerSize+ , lLayerAvailability++ -- * LayerFailure+ , LayerFailure+ , layerFailure+ , lfFailureReason+ , lfFailureCode+ , lfLayerDigest++ -- * Repository+ , Repository+ , repository+ , rRepositoryARN+ , rRegistryId+ , rRepositoryName+ ) where++import Network.AWS.ECR.Types.Product+import Network.AWS.ECR.Types.Sum+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Sign.V4++-- | API version '2015-09-21' of the Amazon EC2 Container Registry SDK configuration.+ecr :: Service+ecr =+ Service+ { _svcAbbrev = "ECR"+ , _svcSigner = v4+ , _svcPrefix = "ecr"+ , _svcVersion = "2015-09-21"+ , _svcEndpoint = defaultEndpoint ecr+ , _svcTimeout = Just 70+ , _svcCheck = statusSuccess+ , _svcError = parseJSONError+ , _svcRetry = retry+ }+ where+ retry =+ Exponential+ { _retryBase = 5.0e-2+ , _retryGrowth = 2+ , _retryAttempts = 5+ , _retryCheck = check+ }+ check e+ | has (hasStatus 429) e = Just "too_many_requests"+ | has (hasCode "ThrottlingException" . hasStatus 400) e =+ Just "throttling_exception"+ | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"+ | has (hasStatus 503) e = Just "service_unavailable"+ | has (hasStatus 500) e = Just "general_server_error"+ | has (hasStatus 509) e = Just "limit_exceeded"+ | otherwise = Nothing++-- | The specified layers could not be found, or the specified layer is not+-- valid for this repository.+_LayersNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError+_LayersNotFoundException = _ServiceError . hasCode "LayersNotFoundException"++-- | The specified parameter is invalid. Review the available parameters for+-- the API request.+_InvalidParameterException :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidParameterException =+ _ServiceError . hasCode "InvalidParameterException"++-- | The image layer already exists in the associated repository.+_LayerAlreadyExistsException :: AsError a => Getting (First ServiceError) a ServiceError+_LayerAlreadyExistsException =+ _ServiceError . hasCode "LayerAlreadyExistsException"++-- | These errors are usually caused by a server-side issue.+_ServerException :: AsError a => Getting (First ServiceError) a ServiceError+_ServerException = _ServiceError . hasCode "ServerException"++-- | The specified layer is not available because it is not associated with+-- an image. Unassociated image layers may be cleaned up at any time.+_LayerInaccessibleException :: AsError a => Getting (First ServiceError) a ServiceError+_LayerInaccessibleException =+ _ServiceError . hasCode "LayerInaccessibleException"++-- | The layer digest calculation performed by Amazon ECR upon receipt of the+-- image layer does not match the digest specified.+_InvalidLayerException :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidLayerException = _ServiceError . hasCode "InvalidLayerException"++-- | Layer parts must be at least 5 MiB in size.+_LayerPartTooSmallException :: AsError a => Getting (First ServiceError) a ServiceError+_LayerPartTooSmallException =+ _ServiceError . hasCode "LayerPartTooSmallException"++-- | The specified image has already been pushed, and there are no changes to+-- the manifest or image tag since the last push.+_ImageAlreadyExistsException :: AsError a => Getting (First ServiceError) a ServiceError+_ImageAlreadyExistsException =+ _ServiceError . hasCode "ImageAlreadyExistsException"++-- | 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 :: AsError a => Getting (First ServiceError) a ServiceError+_RepositoryNotFoundException =+ _ServiceError . hasCode "RepositoryNotFoundException"++-- | The upload could not be found, or the specified upload id is not valid+-- for this repository.+_UploadNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError+_UploadNotFoundException = _ServiceError . hasCode "UploadNotFoundException"++-- | 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 :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidLayerPartException =+ _ServiceError . hasCode "InvalidLayerPartException"++-- | The specified repository contains images. To delete a repository that+-- contains images, you must force the deletion with the 'force' parameter.+_RepositoryNotEmptyException :: AsError a => Getting (First ServiceError) a ServiceError+_RepositoryNotEmptyException =+ _ServiceError . hasCode "RepositoryNotEmptyException"++-- | The specified repository already exists in the specified registry.+_RepositoryAlreadyExistsException :: AsError a => Getting (First ServiceError) a ServiceError+_RepositoryAlreadyExistsException =+ _ServiceError . hasCode "RepositoryAlreadyExistsException"++-- | The specified repository and registry combination does not have an+-- associated repository policy.+_RepositoryPolicyNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError+_RepositoryPolicyNotFoundException =+ _ServiceError . hasCode "RepositoryPolicyNotFoundException"++-- | The specified layer upload does not contain any layer parts.+_EmptyUploadException :: AsError a => Getting (First ServiceError) a ServiceError+_EmptyUploadException = _ServiceError . hasCode "EmptyUploadException"++-- | The operation did not succeed because it would have exceeded a service+-- limit for your account. For more information, see+-- <http://docs.aws.amazon.com/AmazonECR/latest/userguide/service_limits.html Amazon ECR Default Service Limits>+-- in the Amazon EC2 Container Registry User Guide.+_LimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError+_LimitExceededException = _ServiceError . hasCode "LimitExceededException"
+ gen/Network/AWS/ECR/Types/Product.hs view
@@ -0,0 +1,378 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.ECR.Types.Product+-- Copyright : (c) 2013-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.ECR.Types.Product where++import Network.AWS.ECR.Types.Sum+import Network.AWS.Lens+import Network.AWS.Prelude++-- | An object representing authorization data for an Amazon ECR registry.+--+-- /See:/ 'authorizationData' smart constructor.+data AuthorizationData = AuthorizationData'+ { _adExpiresAt :: !(Maybe POSIX)+ , _adProxyEndpoint :: !(Maybe Text)+ , _adAuthorizationToken :: !(Maybe Text)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'AuthorizationData' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'adExpiresAt'+--+-- * 'adProxyEndpoint'+--+-- * 'adAuthorizationToken'+authorizationData+ :: AuthorizationData+authorizationData =+ AuthorizationData'+ { _adExpiresAt = Nothing+ , _adProxyEndpoint = Nothing+ , _adAuthorizationToken = Nothing+ }++-- | The Unix time in seconds and milliseconds when the authorization token+-- expires. Authorization tokens are valid for 12 hours.+adExpiresAt :: Lens' AuthorizationData (Maybe UTCTime)+adExpiresAt = lens _adExpiresAt (\ s a -> s{_adExpiresAt = a}) . mapping _Time;++-- | The registry URL to use for this authorization token in a 'docker login'+-- command. The Amazon ECR registry URL format is+-- 'https:\/\/aws_account_id.dkr.ecr.region.amazonaws.com'. For example,+-- 'https:\/\/012345678910.dkr.ecr.us-east-1.amazonaws.com'.+adProxyEndpoint :: Lens' AuthorizationData (Maybe Text)+adProxyEndpoint = lens _adProxyEndpoint (\ s a -> s{_adProxyEndpoint = a});++-- | A base64-encoded string that contains authorization data for the+-- specified Amazon ECR registry. When the string is decoded, it is+-- presented in the format 'user:password' for private registry+-- authentication using 'docker login'.+adAuthorizationToken :: Lens' AuthorizationData (Maybe Text)+adAuthorizationToken = lens _adAuthorizationToken (\ s a -> s{_adAuthorizationToken = a});++instance FromJSON AuthorizationData where+ parseJSON+ = withObject "AuthorizationData"+ (\ x ->+ AuthorizationData' <$>+ (x .:? "expiresAt") <*> (x .:? "proxyEndpoint") <*>+ (x .:? "authorizationToken"))++instance Hashable AuthorizationData++-- | Object representing an image.+--+-- /See:/ 'image' smart constructor.+data Image = Image'+ { _iRegistryId :: !(Maybe Text)+ , _iImageId :: !(Maybe ImageIdentifier)+ , _iRepositoryName :: !(Maybe Text)+ , _iImageManifest :: !(Maybe Text)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Image' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iRegistryId'+--+-- * 'iImageId'+--+-- * 'iRepositoryName'+--+-- * 'iImageManifest'+image+ :: Image+image =+ Image'+ { _iRegistryId = Nothing+ , _iImageId = Nothing+ , _iRepositoryName = Nothing+ , _iImageManifest = Nothing+ }++-- | The AWS account ID associated with the registry containing the image.+iRegistryId :: Lens' Image (Maybe Text)+iRegistryId = lens _iRegistryId (\ s a -> s{_iRegistryId = a});++-- | An object containing the image tag and image digest associated with an+-- image.+iImageId :: Lens' Image (Maybe ImageIdentifier)+iImageId = lens _iImageId (\ s a -> s{_iImageId = a});++-- | The name of the repository associated with the image.+iRepositoryName :: Lens' Image (Maybe Text)+iRepositoryName = lens _iRepositoryName (\ s a -> s{_iRepositoryName = a});++-- | The image manifest associated with the image.+iImageManifest :: Lens' Image (Maybe Text)+iImageManifest = lens _iImageManifest (\ s a -> s{_iImageManifest = a});++instance FromJSON Image where+ parseJSON+ = withObject "Image"+ (\ x ->+ Image' <$>+ (x .:? "registryId") <*> (x .:? "imageId") <*>+ (x .:? "repositoryName")+ <*> (x .:? "imageManifest"))++instance Hashable Image++-- | /See:/ 'imageFailure' smart constructor.+data ImageFailure = ImageFailure'+ { _ifFailureReason :: !(Maybe Text)+ , _ifFailureCode :: !(Maybe ImageFailureCode)+ , _ifImageId :: !(Maybe ImageIdentifier)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ImageFailure' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ifFailureReason'+--+-- * 'ifFailureCode'+--+-- * 'ifImageId'+imageFailure+ :: ImageFailure+imageFailure =+ ImageFailure'+ { _ifFailureReason = Nothing+ , _ifFailureCode = Nothing+ , _ifImageId = Nothing+ }++-- | The reason for the failure.+ifFailureReason :: Lens' ImageFailure (Maybe Text)+ifFailureReason = lens _ifFailureReason (\ s a -> s{_ifFailureReason = a});++-- | The code associated with the failure.+ifFailureCode :: Lens' ImageFailure (Maybe ImageFailureCode)+ifFailureCode = lens _ifFailureCode (\ s a -> s{_ifFailureCode = a});++-- | The image ID associated with the failure.+ifImageId :: Lens' ImageFailure (Maybe ImageIdentifier)+ifImageId = lens _ifImageId (\ s a -> s{_ifImageId = a});++instance FromJSON ImageFailure where+ parseJSON+ = withObject "ImageFailure"+ (\ x ->+ ImageFailure' <$>+ (x .:? "failureReason") <*> (x .:? "failureCode") <*>+ (x .:? "imageId"))++instance Hashable ImageFailure++-- | /See:/ 'imageIdentifier' smart constructor.+data ImageIdentifier = ImageIdentifier'+ { _iiImageDigest :: !(Maybe Text)+ , _iiImageTag :: !(Maybe Text)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ImageIdentifier' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iiImageDigest'+--+-- * 'iiImageTag'+imageIdentifier+ :: ImageIdentifier+imageIdentifier =+ ImageIdentifier'+ { _iiImageDigest = Nothing+ , _iiImageTag = Nothing+ }++-- | The 'sha256' digest of the image manifest.+iiImageDigest :: Lens' ImageIdentifier (Maybe Text)+iiImageDigest = lens _iiImageDigest (\ s a -> s{_iiImageDigest = a});++-- | The tag used for the image.+iiImageTag :: Lens' ImageIdentifier (Maybe Text)+iiImageTag = lens _iiImageTag (\ s a -> s{_iiImageTag = a});++instance FromJSON ImageIdentifier where+ parseJSON+ = withObject "ImageIdentifier"+ (\ x ->+ ImageIdentifier' <$>+ (x .:? "imageDigest") <*> (x .:? "imageTag"))++instance Hashable ImageIdentifier++instance ToJSON ImageIdentifier where+ toJSON ImageIdentifier'{..}+ = object+ (catMaybes+ [("imageDigest" .=) <$> _iiImageDigest,+ ("imageTag" .=) <$> _iiImageTag])++-- | /See:/ 'layer' smart constructor.+data Layer = Layer'+ { _lLayerDigest :: !(Maybe Text)+ , _lLayerSize :: !(Maybe Integer)+ , _lLayerAvailability :: !(Maybe LayerAvailability)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Layer' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lLayerDigest'+--+-- * 'lLayerSize'+--+-- * 'lLayerAvailability'+layer+ :: Layer+layer =+ Layer'+ { _lLayerDigest = Nothing+ , _lLayerSize = Nothing+ , _lLayerAvailability = Nothing+ }++-- | The 'sha256' digest of the image layer.+lLayerDigest :: Lens' Layer (Maybe Text)+lLayerDigest = lens _lLayerDigest (\ s a -> s{_lLayerDigest = a});++-- | The size, in bytes, of the image layer.+lLayerSize :: Lens' Layer (Maybe Integer)+lLayerSize = lens _lLayerSize (\ s a -> s{_lLayerSize = a});++-- | The availability status of the image layer. Valid values are 'AVAILABLE'+-- and 'UNAVAILABLE'.+lLayerAvailability :: Lens' Layer (Maybe LayerAvailability)+lLayerAvailability = lens _lLayerAvailability (\ s a -> s{_lLayerAvailability = a});++instance FromJSON Layer where+ parseJSON+ = withObject "Layer"+ (\ x ->+ Layer' <$>+ (x .:? "layerDigest") <*> (x .:? "layerSize") <*>+ (x .:? "layerAvailability"))++instance Hashable Layer++-- | /See:/ 'layerFailure' smart constructor.+data LayerFailure = LayerFailure'+ { _lfFailureReason :: !(Maybe Text)+ , _lfFailureCode :: !(Maybe LayerFailureCode)+ , _lfLayerDigest :: !(Maybe Text)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'LayerFailure' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lfFailureReason'+--+-- * 'lfFailureCode'+--+-- * 'lfLayerDigest'+layerFailure+ :: LayerFailure+layerFailure =+ LayerFailure'+ { _lfFailureReason = Nothing+ , _lfFailureCode = Nothing+ , _lfLayerDigest = Nothing+ }++-- | The reason for the failure.+lfFailureReason :: Lens' LayerFailure (Maybe Text)+lfFailureReason = lens _lfFailureReason (\ s a -> s{_lfFailureReason = a});++-- | The failure code associated with the failure.+lfFailureCode :: Lens' LayerFailure (Maybe LayerFailureCode)+lfFailureCode = lens _lfFailureCode (\ s a -> s{_lfFailureCode = a});++-- | The layer digest associated with the failure.+lfLayerDigest :: Lens' LayerFailure (Maybe Text)+lfLayerDigest = lens _lfLayerDigest (\ s a -> s{_lfLayerDigest = a});++instance FromJSON LayerFailure where+ parseJSON+ = withObject "LayerFailure"+ (\ x ->+ LayerFailure' <$>+ (x .:? "failureReason") <*> (x .:? "failureCode") <*>+ (x .:? "layerDigest"))++instance Hashable LayerFailure++-- | Object representing a repository.+--+-- /See:/ 'repository' smart constructor.+data Repository = Repository'+ { _rRepositoryARN :: !(Maybe Text)+ , _rRegistryId :: !(Maybe Text)+ , _rRepositoryName :: !(Maybe Text)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Repository' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rRepositoryARN'+--+-- * 'rRegistryId'+--+-- * 'rRepositoryName'+repository+ :: Repository+repository =+ Repository'+ { _rRepositoryARN = Nothing+ , _rRegistryId = Nothing+ , _rRepositoryName = Nothing+ }++-- | The Amazon Resource Name (ARN) that identifies the repository. The ARN+-- contains the 'arn:aws:ecr' namespace, followed by the region of the+-- repository, the AWS account ID of the repository owner, the repository+-- namespace, and then the repository name. For example,+-- 'arn:aws:ecr:region:012345678910:repository\/test'.+rRepositoryARN :: Lens' Repository (Maybe Text)+rRepositoryARN = lens _rRepositoryARN (\ s a -> s{_rRepositoryARN = a});++-- | The AWS account ID associated with the registry that contains the+-- repository.+rRegistryId :: Lens' Repository (Maybe Text)+rRegistryId = lens _rRegistryId (\ s a -> s{_rRegistryId = a});++-- | The name of the repository.+rRepositoryName :: Lens' Repository (Maybe Text)+rRepositoryName = lens _rRepositoryName (\ s a -> s{_rRepositoryName = a});++instance FromJSON Repository where+ parseJSON+ = withObject "Repository"+ (\ x ->+ Repository' <$>+ (x .:? "repositoryArn") <*> (x .:? "registryId") <*>+ (x .:? "repositoryName"))++instance Hashable Repository
+ gen/Network/AWS/ECR/Types/Sum.hs view
@@ -0,0 +1,104 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.ECR.Types.Sum+-- Copyright : (c) 2013-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.ECR.Types.Sum where++import Network.AWS.Prelude++data ImageFailureCode+ = ImageNotFound+ | ImageTagDoesNotMatchDigest+ | InvalidImageDigest+ | InvalidImageTag+ | MissingDigestAndTag+ deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)++instance FromText ImageFailureCode where+ parser = takeLowerText >>= \case+ "imagenotfound" -> pure ImageNotFound+ "imagetagdoesnotmatchdigest" -> pure ImageTagDoesNotMatchDigest+ "invalidimagedigest" -> pure InvalidImageDigest+ "invalidimagetag" -> pure InvalidImageTag+ "missingdigestandtag" -> pure MissingDigestAndTag+ e -> fromTextError $ "Failure parsing ImageFailureCode from value: '" <> e+ <> "'. Accepted values: ImageNotFound, ImageTagDoesNotMatchDigest, InvalidImageDigest, InvalidImageTag, MissingDigestAndTag"++instance ToText ImageFailureCode where+ toText = \case+ ImageNotFound -> "ImageNotFound"+ ImageTagDoesNotMatchDigest -> "ImageTagDoesNotMatchDigest"+ InvalidImageDigest -> "InvalidImageDigest"+ InvalidImageTag -> "InvalidImageTag"+ MissingDigestAndTag -> "MissingDigestAndTag"++instance Hashable ImageFailureCode+instance ToByteString ImageFailureCode+instance ToQuery ImageFailureCode+instance ToHeader ImageFailureCode++instance FromJSON ImageFailureCode where+ parseJSON = parseJSONText "ImageFailureCode"++data LayerAvailability+ = Available+ | Unavailable+ deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)++instance FromText LayerAvailability where+ parser = takeLowerText >>= \case+ "available" -> pure Available+ "unavailable" -> pure Unavailable+ e -> fromTextError $ "Failure parsing LayerAvailability from value: '" <> e+ <> "'. Accepted values: AVAILABLE, UNAVAILABLE"++instance ToText LayerAvailability where+ toText = \case+ Available -> "AVAILABLE"+ Unavailable -> "UNAVAILABLE"++instance Hashable LayerAvailability+instance ToByteString LayerAvailability+instance ToQuery LayerAvailability+instance ToHeader LayerAvailability++instance FromJSON LayerAvailability where+ parseJSON = parseJSONText "LayerAvailability"++data LayerFailureCode+ = InvalidLayerDigest+ | MissingLayerDigest+ deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)++instance FromText LayerFailureCode where+ parser = takeLowerText >>= \case+ "invalidlayerdigest" -> pure InvalidLayerDigest+ "missinglayerdigest" -> pure MissingLayerDigest+ e -> fromTextError $ "Failure parsing LayerFailureCode from value: '" <> e+ <> "'. Accepted values: InvalidLayerDigest, MissingLayerDigest"++instance ToText LayerFailureCode where+ toText = \case+ InvalidLayerDigest -> "InvalidLayerDigest"+ MissingLayerDigest -> "MissingLayerDigest"++instance Hashable LayerFailureCode+instance ToByteString LayerFailureCode+instance ToQuery LayerFailureCode+instance ToHeader LayerFailureCode++instance FromJSON LayerFailureCode where+ parseJSON = parseJSONText "LayerFailureCode"
+ gen/Network/AWS/ECR/UploadLayerPart.hs view
@@ -0,0 +1,225 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.ECR.UploadLayerPart+-- Copyright : (c) 2013-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Uploads an image layer part to Amazon ECR.+--+-- This operation is used by the Amazon ECR proxy, and it is not intended+-- for general use by customers. Use the 'docker' CLI to pull, tag, and+-- push images.+module Network.AWS.ECR.UploadLayerPart+ (+ -- * Creating a Request+ uploadLayerPart+ , UploadLayerPart+ -- * Request Lenses+ , ulpRegistryId+ , ulpRepositoryName+ , ulpUploadId+ , ulpPartFirstByte+ , ulpPartLastByte+ , ulpLayerPartBlob++ -- * Destructuring the Response+ , uploadLayerPartResponse+ , UploadLayerPartResponse+ -- * Response Lenses+ , ulprsRegistryId+ , ulprsLastByteReceived+ , ulprsRepositoryName+ , ulprsUploadId+ , ulprsResponseStatus+ ) where++import Network.AWS.ECR.Types+import Network.AWS.ECR.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'uploadLayerPart' smart constructor.+data UploadLayerPart = UploadLayerPart'+ { _ulpRegistryId :: !(Maybe Text)+ , _ulpRepositoryName :: !Text+ , _ulpUploadId :: !Text+ , _ulpPartFirstByte :: !Nat+ , _ulpPartLastByte :: !Nat+ , _ulpLayerPartBlob :: !Base64+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'UploadLayerPart' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ulpRegistryId'+--+-- * 'ulpRepositoryName'+--+-- * 'ulpUploadId'+--+-- * 'ulpPartFirstByte'+--+-- * 'ulpPartLastByte'+--+-- * 'ulpLayerPartBlob'+uploadLayerPart+ :: Text -- ^ 'ulpRepositoryName'+ -> Text -- ^ 'ulpUploadId'+ -> Natural -- ^ 'ulpPartFirstByte'+ -> Natural -- ^ 'ulpPartLastByte'+ -> ByteString -- ^ 'ulpLayerPartBlob'+ -> UploadLayerPart+uploadLayerPart pRepositoryName_ pUploadId_ pPartFirstByte_ pPartLastByte_ pLayerPartBlob_ =+ UploadLayerPart'+ { _ulpRegistryId = Nothing+ , _ulpRepositoryName = pRepositoryName_+ , _ulpUploadId = pUploadId_+ , _ulpPartFirstByte = _Nat # pPartFirstByte_+ , _ulpPartLastByte = _Nat # pPartLastByte_+ , _ulpLayerPartBlob = _Base64 # pLayerPartBlob_+ }++-- | The AWS account ID associated with the registry that you are uploading+-- layer parts to. If you do not specify a registry, the default registry+-- is assumed.+ulpRegistryId :: Lens' UploadLayerPart (Maybe Text)+ulpRegistryId = lens _ulpRegistryId (\ s a -> s{_ulpRegistryId = a});++-- | The name of the repository that you are uploading layer parts to.+ulpRepositoryName :: Lens' UploadLayerPart Text+ulpRepositoryName = lens _ulpRepositoryName (\ s a -> s{_ulpRepositoryName = a});++-- | The upload ID from a previous < InitiateLayerUpload> operation to+-- associate with the layer part upload.+ulpUploadId :: Lens' UploadLayerPart Text+ulpUploadId = lens _ulpUploadId (\ s a -> s{_ulpUploadId = a});++-- | The integer value of the first byte of the layer part.+ulpPartFirstByte :: Lens' UploadLayerPart Natural+ulpPartFirstByte = lens _ulpPartFirstByte (\ s a -> s{_ulpPartFirstByte = a}) . _Nat;++-- | The integer value of the last byte of the layer part.+ulpPartLastByte :: Lens' UploadLayerPart Natural+ulpPartLastByte = lens _ulpPartLastByte (\ s a -> s{_ulpPartLastByte = a}) . _Nat;++-- | The base64-encoded layer part payload.+--+-- /Note:/ This 'Lens' automatically encodes and decodes Base64 data,+-- despite what the AWS documentation might say.+-- 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.+ulpLayerPartBlob :: Lens' UploadLayerPart ByteString+ulpLayerPartBlob = lens _ulpLayerPartBlob (\ s a -> s{_ulpLayerPartBlob = a}) . _Base64;++instance AWSRequest UploadLayerPart where+ type Rs UploadLayerPart = UploadLayerPartResponse+ request = postJSON ecr+ response+ = receiveJSON+ (\ s h x ->+ UploadLayerPartResponse' <$>+ (x .?> "registryId") <*> (x .?> "lastByteReceived")+ <*> (x .?> "repositoryName")+ <*> (x .?> "uploadId")+ <*> (pure (fromEnum s)))++instance Hashable UploadLayerPart++instance ToHeaders UploadLayerPart where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AmazonEC2ContainerRegistry_V20150921.UploadLayerPart"+ :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON UploadLayerPart where+ toJSON UploadLayerPart'{..}+ = object+ (catMaybes+ [("registryId" .=) <$> _ulpRegistryId,+ Just ("repositoryName" .= _ulpRepositoryName),+ Just ("uploadId" .= _ulpUploadId),+ Just ("partFirstByte" .= _ulpPartFirstByte),+ Just ("partLastByte" .= _ulpPartLastByte),+ Just ("layerPartBlob" .= _ulpLayerPartBlob)])++instance ToPath UploadLayerPart where+ toPath = const "/"++instance ToQuery UploadLayerPart where+ toQuery = const mempty++-- | /See:/ 'uploadLayerPartResponse' smart constructor.+data UploadLayerPartResponse = UploadLayerPartResponse'+ { _ulprsRegistryId :: !(Maybe Text)+ , _ulprsLastByteReceived :: !(Maybe Nat)+ , _ulprsRepositoryName :: !(Maybe Text)+ , _ulprsUploadId :: !(Maybe Text)+ , _ulprsResponseStatus :: !Int+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'UploadLayerPartResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ulprsRegistryId'+--+-- * 'ulprsLastByteReceived'+--+-- * 'ulprsRepositoryName'+--+-- * 'ulprsUploadId'+--+-- * 'ulprsResponseStatus'+uploadLayerPartResponse+ :: Int -- ^ 'ulprsResponseStatus'+ -> UploadLayerPartResponse+uploadLayerPartResponse pResponseStatus_ =+ UploadLayerPartResponse'+ { _ulprsRegistryId = Nothing+ , _ulprsLastByteReceived = Nothing+ , _ulprsRepositoryName = Nothing+ , _ulprsUploadId = Nothing+ , _ulprsResponseStatus = pResponseStatus_+ }++-- | The registry ID associated with the request.+ulprsRegistryId :: Lens' UploadLayerPartResponse (Maybe Text)+ulprsRegistryId = lens _ulprsRegistryId (\ s a -> s{_ulprsRegistryId = a});++-- | The integer value of the last byte received in the request.+ulprsLastByteReceived :: Lens' UploadLayerPartResponse (Maybe Natural)+ulprsLastByteReceived = lens _ulprsLastByteReceived (\ s a -> s{_ulprsLastByteReceived = a}) . mapping _Nat;++-- | The repository name associated with the request.+ulprsRepositoryName :: Lens' UploadLayerPartResponse (Maybe Text)+ulprsRepositoryName = lens _ulprsRepositoryName (\ s a -> s{_ulprsRepositoryName = a});++-- | The upload ID associated with the request.+ulprsUploadId :: Lens' UploadLayerPartResponse (Maybe Text)+ulprsUploadId = lens _ulprsUploadId (\ s a -> s{_ulprsUploadId = a});++-- | The response status code.+ulprsResponseStatus :: Lens' UploadLayerPartResponse Int+ulprsResponseStatus = lens _ulprsResponseStatus (\ s a -> s{_ulprsResponseStatus = a});
+ gen/Network/AWS/ECR/Waiters.hs view
@@ -0,0 +1,21 @@+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.ECR.Waiters+-- Copyright : (c) 2013-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.ECR.Waiters where++import Network.AWS.ECR.Types+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Waiter
+ test/Main.hs view
@@ -0,0 +1,21 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Main+-- Copyright : (c) 2013-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Main (main) where++import Test.Tasty+import Test.AWS.ECR+import Test.AWS.ECR.Internal++main :: IO ()+main = defaultMain $ testGroup "ECR"+ [ testGroup "tests" tests+ , testGroup "fixtures" fixtures+ ]
+ test/Test/AWS/ECR.hs view
@@ -0,0 +1,23 @@+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TemplateHaskell #-}++-- |+-- Module : Test.AWS.ECR+-- Copyright : (c) 2013-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)+--+module Test.AWS.ECR+ ( tests+ , fixtures+ ) where++import Test.AWS.Prelude++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/AWS/ECR/Internal.hs view
@@ -0,0 +1,15 @@+{-# LANGUAGE OverloadedStrings #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Test.AWS.ECR.Internal+-- Copyright : (c) 2013-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)+--++module Test.AWS.ECR.Internal where++import Test.AWS.Prelude
+ test/Test/AWS/Gen/ECR.hs view
@@ -0,0 +1,327 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-orphans #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Test.AWS.Gen.ECR+-- Copyright : (c) 2013-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Test.AWS.Gen.ECR where++import Data.Proxy+import Test.AWS.Fixture+import Test.AWS.Prelude+import Test.Tasty+import Network.AWS.ECR+import Test.AWS.ECR.Internal++-- 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"+-- [ testGetRepositoryPolicy $+-- getRepositoryPolicy+--+-- , testBatchDeleteImage $+-- batchDeleteImage+--+-- , testBatchCheckLayerAvailability $+-- batchCheckLayerAvailability+--+-- , testDeleteRepositoryPolicy $+-- deleteRepositoryPolicy+--+-- , testCreateRepository $+-- createRepository+--+-- , testCompleteLayerUpload $+-- completeLayerUpload+--+-- , testDescribeRepositories $+-- describeRepositories+--+-- , testUploadLayerPart $+-- uploadLayerPart+--+-- , testBatchGetImage $+-- batchGetImage+--+-- , testSetRepositoryPolicy $+-- setRepositoryPolicy+--+-- , testInitiateLayerUpload $+-- initiateLayerUpload+--+-- , testDeleteRepository $+-- deleteRepository+--+-- , testPutImage $+-- putImage+--+-- , testListImages $+-- listImages+--+-- , testGetAuthorizationToken $+-- getAuthorizationToken+--+-- , testGetDownloadURLForLayer $+-- getDownloadURLForLayer+--+-- ]++-- , testGroup "response"+-- [ testGetRepositoryPolicyResponse $+-- getRepositoryPolicyResponse+--+-- , testBatchDeleteImageResponse $+-- batchDeleteImageResponse+--+-- , testBatchCheckLayerAvailabilityResponse $+-- batchCheckLayerAvailabilityResponse+--+-- , testDeleteRepositoryPolicyResponse $+-- deleteRepositoryPolicyResponse+--+-- , testCreateRepositoryResponse $+-- createRepositoryResponse+--+-- , testCompleteLayerUploadResponse $+-- completeLayerUploadResponse+--+-- , testDescribeRepositoriesResponse $+-- describeRepositoriesResponse+--+-- , testUploadLayerPartResponse $+-- uploadLayerPartResponse+--+-- , testBatchGetImageResponse $+-- batchGetImageResponse+--+-- , testSetRepositoryPolicyResponse $+-- setRepositoryPolicyResponse+--+-- , testInitiateLayerUploadResponse $+-- initiateLayerUploadResponse+--+-- , testDeleteRepositoryResponse $+-- deleteRepositoryResponse+--+-- , testPutImageResponse $+-- putImageResponse+--+-- , testListImagesResponse $+-- listImagesResponse+--+-- , testGetAuthorizationTokenResponse $+-- getAuthorizationTokenResponse+--+-- , testGetDownloadURLForLayerResponse $+-- getDownloadURLForLayerResponse+--+-- ]+-- ]++-- Requests++testGetRepositoryPolicy :: GetRepositoryPolicy -> TestTree+testGetRepositoryPolicy = req+ "GetRepositoryPolicy"+ "fixture/GetRepositoryPolicy.yaml"++testBatchDeleteImage :: BatchDeleteImage -> TestTree+testBatchDeleteImage = req+ "BatchDeleteImage"+ "fixture/BatchDeleteImage.yaml"++testBatchCheckLayerAvailability :: BatchCheckLayerAvailability -> TestTree+testBatchCheckLayerAvailability = req+ "BatchCheckLayerAvailability"+ "fixture/BatchCheckLayerAvailability.yaml"++testDeleteRepositoryPolicy :: DeleteRepositoryPolicy -> TestTree+testDeleteRepositoryPolicy = req+ "DeleteRepositoryPolicy"+ "fixture/DeleteRepositoryPolicy.yaml"++testCreateRepository :: CreateRepository -> TestTree+testCreateRepository = req+ "CreateRepository"+ "fixture/CreateRepository.yaml"++testCompleteLayerUpload :: CompleteLayerUpload -> TestTree+testCompleteLayerUpload = req+ "CompleteLayerUpload"+ "fixture/CompleteLayerUpload.yaml"++testDescribeRepositories :: DescribeRepositories -> TestTree+testDescribeRepositories = req+ "DescribeRepositories"+ "fixture/DescribeRepositories.yaml"++testUploadLayerPart :: UploadLayerPart -> TestTree+testUploadLayerPart = req+ "UploadLayerPart"+ "fixture/UploadLayerPart.yaml"++testBatchGetImage :: BatchGetImage -> TestTree+testBatchGetImage = req+ "BatchGetImage"+ "fixture/BatchGetImage.yaml"++testSetRepositoryPolicy :: SetRepositoryPolicy -> TestTree+testSetRepositoryPolicy = req+ "SetRepositoryPolicy"+ "fixture/SetRepositoryPolicy.yaml"++testInitiateLayerUpload :: InitiateLayerUpload -> TestTree+testInitiateLayerUpload = req+ "InitiateLayerUpload"+ "fixture/InitiateLayerUpload.yaml"++testDeleteRepository :: DeleteRepository -> TestTree+testDeleteRepository = req+ "DeleteRepository"+ "fixture/DeleteRepository.yaml"++testPutImage :: PutImage -> TestTree+testPutImage = req+ "PutImage"+ "fixture/PutImage.yaml"++testListImages :: ListImages -> TestTree+testListImages = req+ "ListImages"+ "fixture/ListImages.yaml"++testGetAuthorizationToken :: GetAuthorizationToken -> TestTree+testGetAuthorizationToken = req+ "GetAuthorizationToken"+ "fixture/GetAuthorizationToken.yaml"++testGetDownloadURLForLayer :: GetDownloadURLForLayer -> TestTree+testGetDownloadURLForLayer = req+ "GetDownloadURLForLayer"+ "fixture/GetDownloadURLForLayer.yaml"++-- Responses++testGetRepositoryPolicyResponse :: GetRepositoryPolicyResponse -> TestTree+testGetRepositoryPolicyResponse = res+ "GetRepositoryPolicyResponse"+ "fixture/GetRepositoryPolicyResponse.proto"+ ecr+ (Proxy :: Proxy GetRepositoryPolicy)++testBatchDeleteImageResponse :: BatchDeleteImageResponse -> TestTree+testBatchDeleteImageResponse = res+ "BatchDeleteImageResponse"+ "fixture/BatchDeleteImageResponse.proto"+ ecr+ (Proxy :: Proxy BatchDeleteImage)++testBatchCheckLayerAvailabilityResponse :: BatchCheckLayerAvailabilityResponse -> TestTree+testBatchCheckLayerAvailabilityResponse = res+ "BatchCheckLayerAvailabilityResponse"+ "fixture/BatchCheckLayerAvailabilityResponse.proto"+ ecr+ (Proxy :: Proxy BatchCheckLayerAvailability)++testDeleteRepositoryPolicyResponse :: DeleteRepositoryPolicyResponse -> TestTree+testDeleteRepositoryPolicyResponse = res+ "DeleteRepositoryPolicyResponse"+ "fixture/DeleteRepositoryPolicyResponse.proto"+ ecr+ (Proxy :: Proxy DeleteRepositoryPolicy)++testCreateRepositoryResponse :: CreateRepositoryResponse -> TestTree+testCreateRepositoryResponse = res+ "CreateRepositoryResponse"+ "fixture/CreateRepositoryResponse.proto"+ ecr+ (Proxy :: Proxy CreateRepository)++testCompleteLayerUploadResponse :: CompleteLayerUploadResponse -> TestTree+testCompleteLayerUploadResponse = res+ "CompleteLayerUploadResponse"+ "fixture/CompleteLayerUploadResponse.proto"+ ecr+ (Proxy :: Proxy CompleteLayerUpload)++testDescribeRepositoriesResponse :: DescribeRepositoriesResponse -> TestTree+testDescribeRepositoriesResponse = res+ "DescribeRepositoriesResponse"+ "fixture/DescribeRepositoriesResponse.proto"+ ecr+ (Proxy :: Proxy DescribeRepositories)++testUploadLayerPartResponse :: UploadLayerPartResponse -> TestTree+testUploadLayerPartResponse = res+ "UploadLayerPartResponse"+ "fixture/UploadLayerPartResponse.proto"+ ecr+ (Proxy :: Proxy UploadLayerPart)++testBatchGetImageResponse :: BatchGetImageResponse -> TestTree+testBatchGetImageResponse = res+ "BatchGetImageResponse"+ "fixture/BatchGetImageResponse.proto"+ ecr+ (Proxy :: Proxy BatchGetImage)++testSetRepositoryPolicyResponse :: SetRepositoryPolicyResponse -> TestTree+testSetRepositoryPolicyResponse = res+ "SetRepositoryPolicyResponse"+ "fixture/SetRepositoryPolicyResponse.proto"+ ecr+ (Proxy :: Proxy SetRepositoryPolicy)++testInitiateLayerUploadResponse :: InitiateLayerUploadResponse -> TestTree+testInitiateLayerUploadResponse = res+ "InitiateLayerUploadResponse"+ "fixture/InitiateLayerUploadResponse.proto"+ ecr+ (Proxy :: Proxy InitiateLayerUpload)++testDeleteRepositoryResponse :: DeleteRepositoryResponse -> TestTree+testDeleteRepositoryResponse = res+ "DeleteRepositoryResponse"+ "fixture/DeleteRepositoryResponse.proto"+ ecr+ (Proxy :: Proxy DeleteRepository)++testPutImageResponse :: PutImageResponse -> TestTree+testPutImageResponse = res+ "PutImageResponse"+ "fixture/PutImageResponse.proto"+ ecr+ (Proxy :: Proxy PutImage)++testListImagesResponse :: ListImagesResponse -> TestTree+testListImagesResponse = res+ "ListImagesResponse"+ "fixture/ListImagesResponse.proto"+ ecr+ (Proxy :: Proxy ListImages)++testGetAuthorizationTokenResponse :: GetAuthorizationTokenResponse -> TestTree+testGetAuthorizationTokenResponse = res+ "GetAuthorizationTokenResponse"+ "fixture/GetAuthorizationTokenResponse.proto"+ ecr+ (Proxy :: Proxy GetAuthorizationToken)++testGetDownloadURLForLayerResponse :: GetDownloadURLForLayerResponse -> TestTree+testGetDownloadURLForLayerResponse = res+ "GetDownloadURLForLayerResponse"+ "fixture/GetDownloadURLForLayerResponse.proto"+ ecr+ (Proxy :: Proxy GetDownloadURLForLayer)