aws-sdk-ecr 1.21.0 → 1.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c3581778c9338105a07323ab10bcf661561d4dfe
4
- data.tar.gz: dc63c12efb943b78d2ecd1e822fb414879acfbdb
3
+ metadata.gz: 3c18bffad069aff09045c8769558305309fea1d1
4
+ data.tar.gz: 93a4ea1b0a9d28d13d160af2f5d335d86b26a739
5
5
  SHA512:
6
- metadata.gz: a82d7167f67a24effde8847223b64b61ac2a8b63d10efb786448cf6c435c7915700b52e833955fbba5f4a3f638a042e67114e6d989c9059f8e5992c3b4a7583e
7
- data.tar.gz: 48f508e895809fd81dd82eabd98587d7ef6bb1ac9aacf79dad6a5a1e03d90eea76f72394c9c2aa4484b87128d3fbae6c0ad0d415da6b59d833caddc10e6beec5
6
+ metadata.gz: 72ff38325d14e000925d8776f7801c9e71cd073dc663a1d67ab1e656683e6ca9f200a00c8154a8ddc8d3ff365d80694bfd79f2535990dd25fed5c6cc652ff2e6
7
+ data.tar.gz: fa40575c998c9a0b01a5efc7303cdf9344e36f0853f2d779f8d13cd4a112d644c8dfa2793c3293b8ec44b12b940975644a57d8eefffbd643c8e3ef342b0f6a25
@@ -42,6 +42,6 @@ require_relative 'aws-sdk-ecr/customizations'
42
42
  # @service
43
43
  module Aws::ECR
44
44
 
45
- GEM_VERSION = '1.21.0'
45
+ GEM_VERSION = '1.22.0'
46
46
 
47
47
  end
@@ -563,7 +563,14 @@ module Aws::ECR
563
563
  req.send_request(options)
564
564
  end
565
565
 
566
- # Creates an image repository.
566
+ # Creates an Amazon Elastic Container Registry (Amazon ECR) repository,
567
+ # where users can push and pull Docker images. For more information, see
568
+ # [Amazon ECR Repositories][1] in the *Amazon Elastic Container Registry
569
+ # User Guide*.
570
+ #
571
+ #
572
+ #
573
+ # [1]: https://docs.aws.amazon.com/AmazonECR/latest/userguide/Repositories.html
567
574
  #
568
575
  # @option params [required, String] :repository_name
569
576
  # The name to use for the repository. The repository name may be
@@ -585,6 +592,11 @@ module Aws::ECR
585
592
  # image tags within the repository will be immutable which will prevent
586
593
  # them from being overwritten.
587
594
  #
595
+ # @option params [Types::ImageScanningConfiguration] :image_scanning_configuration
596
+ # The image scanning configuration for the repository. This setting
597
+ # determines whether images are scanned for known vulnerabilities after
598
+ # being pushed to the repository.
599
+ #
588
600
  # @return [Types::CreateRepositoryResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
589
601
  #
590
602
  # * {Types::CreateRepositoryResponse#repository #repository} => Types::Repository
@@ -619,6 +631,9 @@ module Aws::ECR
619
631
  # },
620
632
  # ],
621
633
  # image_tag_mutability: "MUTABLE", # accepts MUTABLE, IMMUTABLE
634
+ # image_scanning_configuration: {
635
+ # scan_on_push: false,
636
+ # },
622
637
  # })
623
638
  #
624
639
  # @example Response structure
@@ -629,6 +644,7 @@ module Aws::ECR
629
644
  # resp.repository.repository_uri #=> String
630
645
  # resp.repository.created_at #=> Time
631
646
  # resp.repository.image_tag_mutability #=> String, one of "MUTABLE", "IMMUTABLE"
647
+ # resp.repository.image_scanning_configuration.scan_on_push #=> Boolean
632
648
  #
633
649
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/CreateRepository AWS API Documentation
634
650
  #
@@ -733,6 +749,7 @@ module Aws::ECR
733
749
  # resp.repository.repository_uri #=> String
734
750
  # resp.repository.created_at #=> Time
735
751
  # resp.repository.image_tag_mutability #=> String, one of "MUTABLE", "IMMUTABLE"
752
+ # resp.repository.image_scanning_configuration.scan_on_push #=> Boolean
736
753
  #
737
754
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DeleteRepository AWS API Documentation
738
755
  #
@@ -798,6 +815,90 @@ module Aws::ECR
798
815
  req.send_request(options)
799
816
  end
800
817
 
818
+ # Describes the image scan findings for the specified image.
819
+ #
820
+ # @option params [String] :registry_id
821
+ # The AWS account ID associated with the registry that contains the
822
+ # repository in which to describe the image scan findings for. If you do
823
+ # not specify a registry, the default registry is assumed.
824
+ #
825
+ # @option params [required, String] :repository_name
826
+ # The repository for the image for which to describe the scan findings.
827
+ #
828
+ # @option params [required, Types::ImageIdentifier] :image_id
829
+ # An object with identifying information for an Amazon ECR image.
830
+ #
831
+ # @option params [String] :next_token
832
+ # The `nextToken` value returned from a previous paginated
833
+ # `DescribeImageScanFindings` request where `maxResults` was used and
834
+ # the results exceeded the value of that parameter. Pagination continues
835
+ # from the end of the previous results that returned the `nextToken`
836
+ # value. This value is null when there are no more results to return.
837
+ #
838
+ # @option params [Integer] :max_results
839
+ # The maximum number of image scan results returned by
840
+ # `DescribeImageScanFindings` in paginated output. When this parameter
841
+ # is used, `DescribeImageScanFindings` only returns `maxResults` results
842
+ # in a single page along with a `nextToken` response element. The
843
+ # remaining results of the initial request can be seen by sending
844
+ # another `DescribeImageScanFindings` request with the returned
845
+ # `nextToken` value. This value can be between 1 and 1000. If this
846
+ # parameter is not used, then `DescribeImageScanFindings` returns up to
847
+ # 100 results and a `nextToken` value, if applicable.
848
+ #
849
+ # @return [Types::DescribeImageScanFindingsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
850
+ #
851
+ # * {Types::DescribeImageScanFindingsResponse#registry_id #registry_id} => String
852
+ # * {Types::DescribeImageScanFindingsResponse#repository_name #repository_name} => String
853
+ # * {Types::DescribeImageScanFindingsResponse#image_id #image_id} => Types::ImageIdentifier
854
+ # * {Types::DescribeImageScanFindingsResponse#image_scan_status #image_scan_status} => Types::ImageScanStatus
855
+ # * {Types::DescribeImageScanFindingsResponse#image_scan_findings #image_scan_findings} => Types::ImageScanFindings
856
+ # * {Types::DescribeImageScanFindingsResponse#next_token #next_token} => String
857
+ #
858
+ # @example Request syntax with placeholder values
859
+ #
860
+ # resp = client.describe_image_scan_findings({
861
+ # registry_id: "RegistryId",
862
+ # repository_name: "RepositoryName", # required
863
+ # image_id: { # required
864
+ # image_digest: "ImageDigest",
865
+ # image_tag: "ImageTag",
866
+ # },
867
+ # next_token: "NextToken",
868
+ # max_results: 1,
869
+ # })
870
+ #
871
+ # @example Response structure
872
+ #
873
+ # resp.registry_id #=> String
874
+ # resp.repository_name #=> String
875
+ # resp.image_id.image_digest #=> String
876
+ # resp.image_id.image_tag #=> String
877
+ # resp.image_scan_status.status #=> String, one of "IN_PROGRESS", "COMPLETE", "FAILED"
878
+ # resp.image_scan_status.description #=> String
879
+ # resp.image_scan_findings.image_scan_completed_at #=> Time
880
+ # resp.image_scan_findings.vulnerability_source_updated_at #=> Time
881
+ # resp.image_scan_findings.findings #=> Array
882
+ # resp.image_scan_findings.findings[0].name #=> String
883
+ # resp.image_scan_findings.findings[0].description #=> String
884
+ # resp.image_scan_findings.findings[0].uri #=> String
885
+ # resp.image_scan_findings.findings[0].severity #=> String, one of "INFORMATIONAL", "LOW", "MEDIUM", "HIGH", "CRITICAL", "UNDEFINED"
886
+ # resp.image_scan_findings.findings[0].attributes #=> Array
887
+ # resp.image_scan_findings.findings[0].attributes[0].key #=> String
888
+ # resp.image_scan_findings.findings[0].attributes[0].value #=> <Hash,Array,String,Numeric,Boolean,IO,Set,nil>
889
+ # resp.image_scan_findings.finding_severity_counts #=> Hash
890
+ # resp.image_scan_findings.finding_severity_counts["FindingSeverity"] #=> Integer
891
+ # resp.next_token #=> String
892
+ #
893
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DescribeImageScanFindings AWS API Documentation
894
+ #
895
+ # @overload describe_image_scan_findings(params = {})
896
+ # @param [Hash] params ({})
897
+ def describe_image_scan_findings(params = {}, options = {})
898
+ req = build_request(:describe_image_scan_findings, params)
899
+ req.send_request(options)
900
+ end
901
+
801
902
  # Returns metadata about the images in a repository, including image
802
903
  # size, image tags, and creation date.
803
904
  #
@@ -876,6 +977,12 @@ module Aws::ECR
876
977
  # resp.image_details[0].image_tags[0] #=> String
877
978
  # resp.image_details[0].image_size_in_bytes #=> Integer
878
979
  # resp.image_details[0].image_pushed_at #=> Time
980
+ # resp.image_details[0].image_scan_status.status #=> String, one of "IN_PROGRESS", "COMPLETE", "FAILED"
981
+ # resp.image_details[0].image_scan_status.description #=> String
982
+ # resp.image_details[0].image_scan_findings_summary.image_scan_completed_at #=> Time
983
+ # resp.image_details[0].image_scan_findings_summary.vulnerability_source_updated_at #=> Time
984
+ # resp.image_details[0].image_scan_findings_summary.finding_severity_counts #=> Hash
985
+ # resp.image_details[0].image_scan_findings_summary.finding_severity_counts["FindingSeverity"] #=> Integer
879
986
  # resp.next_token #=> String
880
987
  #
881
988
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DescribeImages AWS API Documentation
@@ -973,6 +1080,7 @@ module Aws::ECR
973
1080
  # resp.repositories[0].repository_uri #=> String
974
1081
  # resp.repositories[0].created_at #=> Time
975
1082
  # resp.repositories[0].image_tag_mutability #=> String, one of "MUTABLE", "IMMUTABLE"
1083
+ # resp.repositories[0].image_scanning_configuration.scan_on_push #=> Boolean
976
1084
  # resp.next_token #=> String
977
1085
  #
978
1086
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DescribeRepositories AWS API Documentation
@@ -1504,6 +1612,54 @@ module Aws::ECR
1504
1612
  req.send_request(options)
1505
1613
  end
1506
1614
 
1615
+ # Updates the image scanning configuration for a repository.
1616
+ #
1617
+ # @option params [String] :registry_id
1618
+ # The AWS account ID associated with the registry that contains the
1619
+ # repository in which to update the image scanning configuration
1620
+ # setting. If you do not specify a registry, the default registry is
1621
+ # assumed.
1622
+ #
1623
+ # @option params [required, String] :repository_name
1624
+ # The name of the repository in which to update the image scanning
1625
+ # configuration setting.
1626
+ #
1627
+ # @option params [required, Types::ImageScanningConfiguration] :image_scanning_configuration
1628
+ # The image scanning configuration for the repository. This setting
1629
+ # determines whether images are scanned for known vulnerabilities after
1630
+ # being pushed to the repository.
1631
+ #
1632
+ # @return [Types::PutImageScanningConfigurationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1633
+ #
1634
+ # * {Types::PutImageScanningConfigurationResponse#registry_id #registry_id} => String
1635
+ # * {Types::PutImageScanningConfigurationResponse#repository_name #repository_name} => String
1636
+ # * {Types::PutImageScanningConfigurationResponse#image_scanning_configuration #image_scanning_configuration} => Types::ImageScanningConfiguration
1637
+ #
1638
+ # @example Request syntax with placeholder values
1639
+ #
1640
+ # resp = client.put_image_scanning_configuration({
1641
+ # registry_id: "RegistryId",
1642
+ # repository_name: "RepositoryName", # required
1643
+ # image_scanning_configuration: { # required
1644
+ # scan_on_push: false,
1645
+ # },
1646
+ # })
1647
+ #
1648
+ # @example Response structure
1649
+ #
1650
+ # resp.registry_id #=> String
1651
+ # resp.repository_name #=> String
1652
+ # resp.image_scanning_configuration.scan_on_push #=> Boolean
1653
+ #
1654
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/PutImageScanningConfiguration AWS API Documentation
1655
+ #
1656
+ # @overload put_image_scanning_configuration(params = {})
1657
+ # @param [Hash] params ({})
1658
+ def put_image_scanning_configuration(params = {}, options = {})
1659
+ req = build_request(:put_image_scanning_configuration, params)
1660
+ req.send_request(options)
1661
+ end
1662
+
1507
1663
  # Updates the image tag mutability settings for a repository.
1508
1664
  #
1509
1665
  # @option params [String] :registry_id
@@ -1658,6 +1814,55 @@ module Aws::ECR
1658
1814
  req.send_request(options)
1659
1815
  end
1660
1816
 
1817
+ # Starts an image vulnerability scan.
1818
+ #
1819
+ # @option params [String] :registry_id
1820
+ # The AWS account ID associated with the registry that contains the
1821
+ # repository in which to start an image scan request. If you do not
1822
+ # specify a registry, the default registry is assumed.
1823
+ #
1824
+ # @option params [required, String] :repository_name
1825
+ # The name of the repository that contains the images to scan.
1826
+ #
1827
+ # @option params [required, Types::ImageIdentifier] :image_id
1828
+ # An object with identifying information for an Amazon ECR image.
1829
+ #
1830
+ # @return [Types::StartImageScanResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1831
+ #
1832
+ # * {Types::StartImageScanResponse#registry_id #registry_id} => String
1833
+ # * {Types::StartImageScanResponse#repository_name #repository_name} => String
1834
+ # * {Types::StartImageScanResponse#image_id #image_id} => Types::ImageIdentifier
1835
+ # * {Types::StartImageScanResponse#image_scan_status #image_scan_status} => Types::ImageScanStatus
1836
+ #
1837
+ # @example Request syntax with placeholder values
1838
+ #
1839
+ # resp = client.start_image_scan({
1840
+ # registry_id: "RegistryId",
1841
+ # repository_name: "RepositoryName", # required
1842
+ # image_id: { # required
1843
+ # image_digest: "ImageDigest",
1844
+ # image_tag: "ImageTag",
1845
+ # },
1846
+ # })
1847
+ #
1848
+ # @example Response structure
1849
+ #
1850
+ # resp.registry_id #=> String
1851
+ # resp.repository_name #=> String
1852
+ # resp.image_id.image_digest #=> String
1853
+ # resp.image_id.image_tag #=> String
1854
+ # resp.image_scan_status.status #=> String, one of "IN_PROGRESS", "COMPLETE", "FAILED"
1855
+ # resp.image_scan_status.description #=> String
1856
+ #
1857
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/StartImageScan AWS API Documentation
1858
+ #
1859
+ # @overload start_image_scan(params = {})
1860
+ # @param [Hash] params ({})
1861
+ def start_image_scan(params = {}, options = {})
1862
+ req = build_request(:start_image_scan, params)
1863
+ req.send_request(options)
1864
+ end
1865
+
1661
1866
  # Starts a preview of the specified lifecycle policy. This allows you to
1662
1867
  # see the results before creating the lifecycle policy.
1663
1868
  #
@@ -1845,7 +2050,7 @@ module Aws::ECR
1845
2050
  params: params,
1846
2051
  config: config)
1847
2052
  context[:gem_name] = 'aws-sdk-ecr'
1848
- context[:gem_version] = '1.21.0'
2053
+ context[:gem_version] = '1.22.0'
1849
2054
  Seahorse::Client::Request.new(handlers, context)
1850
2055
  end
1851
2056
 
@@ -12,6 +12,10 @@ module Aws::ECR
12
12
  include Seahorse::Model
13
13
 
14
14
  Arn = Shapes::StringShape.new(name: 'Arn')
15
+ Attribute = Shapes::StructureShape.new(name: 'Attribute')
16
+ AttributeKey = Shapes::StringShape.new(name: 'AttributeKey')
17
+ AttributeList = Shapes::ListShape.new(name: 'AttributeList')
18
+ AttributeValue = Shapes::StringShape.new(name: 'AttributeValue')
15
19
  AuthorizationData = Shapes::StructureShape.new(name: 'AuthorizationData')
16
20
  AuthorizationDataList = Shapes::ListShape.new(name: 'AuthorizationDataList')
17
21
  Base64 = Shapes::StringShape.new(name: 'Base64')
@@ -34,6 +38,8 @@ module Aws::ECR
34
38
  DeleteRepositoryPolicyResponse = Shapes::StructureShape.new(name: 'DeleteRepositoryPolicyResponse')
35
39
  DeleteRepositoryRequest = Shapes::StructureShape.new(name: 'DeleteRepositoryRequest')
36
40
  DeleteRepositoryResponse = Shapes::StructureShape.new(name: 'DeleteRepositoryResponse')
41
+ DescribeImageScanFindingsRequest = Shapes::StructureShape.new(name: 'DescribeImageScanFindingsRequest')
42
+ DescribeImageScanFindingsResponse = Shapes::StructureShape.new(name: 'DescribeImageScanFindingsResponse')
37
43
  DescribeImagesFilter = Shapes::StructureShape.new(name: 'DescribeImagesFilter')
38
44
  DescribeImagesRequest = Shapes::StructureShape.new(name: 'DescribeImagesRequest')
39
45
  DescribeImagesResponse = Shapes::StructureShape.new(name: 'DescribeImagesResponse')
@@ -43,6 +49,10 @@ module Aws::ECR
43
49
  EvaluationTimestamp = Shapes::TimestampShape.new(name: 'EvaluationTimestamp')
44
50
  ExceptionMessage = Shapes::StringShape.new(name: 'ExceptionMessage')
45
51
  ExpirationTimestamp = Shapes::TimestampShape.new(name: 'ExpirationTimestamp')
52
+ FindingDescription = Shapes::StringShape.new(name: 'FindingDescription')
53
+ FindingName = Shapes::StringShape.new(name: 'FindingName')
54
+ FindingSeverity = Shapes::StringShape.new(name: 'FindingSeverity')
55
+ FindingSeverityCounts = Shapes::MapShape.new(name: 'FindingSeverityCounts')
46
56
  ForceFlag = Shapes::BooleanShape.new(name: 'ForceFlag')
47
57
  GetAuthorizationTokenRegistryIdList = Shapes::ListShape.new(name: 'GetAuthorizationTokenRegistryIdList')
48
58
  GetAuthorizationTokenRequest = Shapes::StructureShape.new(name: 'GetAuthorizationTokenRequest')
@@ -71,6 +81,12 @@ module Aws::ECR
71
81
  ImageList = Shapes::ListShape.new(name: 'ImageList')
72
82
  ImageManifest = Shapes::StringShape.new(name: 'ImageManifest')
73
83
  ImageNotFoundException = Shapes::StructureShape.new(name: 'ImageNotFoundException')
84
+ ImageScanFinding = Shapes::StructureShape.new(name: 'ImageScanFinding')
85
+ ImageScanFindingList = Shapes::ListShape.new(name: 'ImageScanFindingList')
86
+ ImageScanFindings = Shapes::StructureShape.new(name: 'ImageScanFindings')
87
+ ImageScanFindingsSummary = Shapes::StructureShape.new(name: 'ImageScanFindingsSummary')
88
+ ImageScanStatus = Shapes::StructureShape.new(name: 'ImageScanStatus')
89
+ ImageScanningConfiguration = Shapes::StructureShape.new(name: 'ImageScanningConfiguration')
74
90
  ImageSizeInBytes = Shapes::IntegerShape.new(name: 'ImageSizeInBytes')
75
91
  ImageTag = Shapes::StringShape.new(name: 'ImageTag')
76
92
  ImageTagAlreadyExistsException = Shapes::StructureShape.new(name: 'ImageTagAlreadyExistsException')
@@ -124,6 +140,8 @@ module Aws::ECR
124
140
  PushTimestamp = Shapes::TimestampShape.new(name: 'PushTimestamp')
125
141
  PutImageRequest = Shapes::StructureShape.new(name: 'PutImageRequest')
126
142
  PutImageResponse = Shapes::StructureShape.new(name: 'PutImageResponse')
143
+ PutImageScanningConfigurationRequest = Shapes::StructureShape.new(name: 'PutImageScanningConfigurationRequest')
144
+ PutImageScanningConfigurationResponse = Shapes::StructureShape.new(name: 'PutImageScanningConfigurationResponse')
127
145
  PutImageTagMutabilityRequest = Shapes::StructureShape.new(name: 'PutImageTagMutabilityRequest')
128
146
  PutImageTagMutabilityResponse = Shapes::StructureShape.new(name: 'PutImageTagMutabilityResponse')
129
147
  PutLifecyclePolicyRequest = Shapes::StructureShape.new(name: 'PutLifecyclePolicyRequest')
@@ -138,9 +156,17 @@ module Aws::ECR
138
156
  RepositoryNotFoundException = Shapes::StructureShape.new(name: 'RepositoryNotFoundException')
139
157
  RepositoryPolicyNotFoundException = Shapes::StructureShape.new(name: 'RepositoryPolicyNotFoundException')
140
158
  RepositoryPolicyText = Shapes::StringShape.new(name: 'RepositoryPolicyText')
159
+ ScanNotFoundException = Shapes::StructureShape.new(name: 'ScanNotFoundException')
160
+ ScanOnPushFlag = Shapes::BooleanShape.new(name: 'ScanOnPushFlag')
161
+ ScanStatus = Shapes::StringShape.new(name: 'ScanStatus')
162
+ ScanStatusDescription = Shapes::StringShape.new(name: 'ScanStatusDescription')
163
+ ScanTimestamp = Shapes::TimestampShape.new(name: 'ScanTimestamp')
141
164
  ServerException = Shapes::StructureShape.new(name: 'ServerException')
142
165
  SetRepositoryPolicyRequest = Shapes::StructureShape.new(name: 'SetRepositoryPolicyRequest')
143
166
  SetRepositoryPolicyResponse = Shapes::StructureShape.new(name: 'SetRepositoryPolicyResponse')
167
+ SeverityCount = Shapes::IntegerShape.new(name: 'SeverityCount')
168
+ StartImageScanRequest = Shapes::StructureShape.new(name: 'StartImageScanRequest')
169
+ StartImageScanResponse = Shapes::StructureShape.new(name: 'StartImageScanResponse')
144
170
  StartLifecyclePolicyPreviewRequest = Shapes::StructureShape.new(name: 'StartLifecyclePolicyPreviewRequest')
145
171
  StartLifecyclePolicyPreviewResponse = Shapes::StructureShape.new(name: 'StartLifecyclePolicyPreviewResponse')
146
172
  Tag = Shapes::StructureShape.new(name: 'Tag')
@@ -159,6 +185,13 @@ module Aws::ECR
159
185
  UploadLayerPartResponse = Shapes::StructureShape.new(name: 'UploadLayerPartResponse')
160
186
  UploadNotFoundException = Shapes::StructureShape.new(name: 'UploadNotFoundException')
161
187
  Url = Shapes::StringShape.new(name: 'Url')
188
+ VulnerabilitySourceUpdateTimestamp = Shapes::TimestampShape.new(name: 'VulnerabilitySourceUpdateTimestamp')
189
+
190
+ Attribute.add_member(:key, Shapes::ShapeRef.new(shape: AttributeKey, required: true, location_name: "key"))
191
+ Attribute.add_member(:value, Shapes::ShapeRef.new(shape: AttributeValue, location_name: "value"))
192
+ Attribute.struct_class = Types::Attribute
193
+
194
+ AttributeList.member = Shapes::ShapeRef.new(shape: Attribute)
162
195
 
163
196
  AuthorizationData.add_member(:authorization_token, Shapes::ShapeRef.new(shape: Base64, location_name: "authorizationToken"))
164
197
  AuthorizationData.add_member(:expires_at, Shapes::ShapeRef.new(shape: ExpirationTimestamp, location_name: "expiresAt"))
@@ -212,6 +245,7 @@ module Aws::ECR
212
245
  CreateRepositoryRequest.add_member(:repository_name, Shapes::ShapeRef.new(shape: RepositoryName, required: true, location_name: "repositoryName"))
213
246
  CreateRepositoryRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tags"))
214
247
  CreateRepositoryRequest.add_member(:image_tag_mutability, Shapes::ShapeRef.new(shape: ImageTagMutability, location_name: "imageTagMutability"))
248
+ CreateRepositoryRequest.add_member(:image_scanning_configuration, Shapes::ShapeRef.new(shape: ImageScanningConfiguration, location_name: "imageScanningConfiguration"))
215
249
  CreateRepositoryRequest.struct_class = Types::CreateRepositoryRequest
216
250
 
217
251
  CreateRepositoryResponse.add_member(:repository, Shapes::ShapeRef.new(shape: Repository, location_name: "repository"))
@@ -244,6 +278,21 @@ module Aws::ECR
244
278
  DeleteRepositoryResponse.add_member(:repository, Shapes::ShapeRef.new(shape: Repository, location_name: "repository"))
245
279
  DeleteRepositoryResponse.struct_class = Types::DeleteRepositoryResponse
246
280
 
281
+ DescribeImageScanFindingsRequest.add_member(:registry_id, Shapes::ShapeRef.new(shape: RegistryId, location_name: "registryId"))
282
+ DescribeImageScanFindingsRequest.add_member(:repository_name, Shapes::ShapeRef.new(shape: RepositoryName, required: true, location_name: "repositoryName"))
283
+ DescribeImageScanFindingsRequest.add_member(:image_id, Shapes::ShapeRef.new(shape: ImageIdentifier, required: true, location_name: "imageId"))
284
+ DescribeImageScanFindingsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
285
+ DescribeImageScanFindingsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "maxResults"))
286
+ DescribeImageScanFindingsRequest.struct_class = Types::DescribeImageScanFindingsRequest
287
+
288
+ DescribeImageScanFindingsResponse.add_member(:registry_id, Shapes::ShapeRef.new(shape: RegistryId, location_name: "registryId"))
289
+ DescribeImageScanFindingsResponse.add_member(:repository_name, Shapes::ShapeRef.new(shape: RepositoryName, location_name: "repositoryName"))
290
+ DescribeImageScanFindingsResponse.add_member(:image_id, Shapes::ShapeRef.new(shape: ImageIdentifier, location_name: "imageId"))
291
+ DescribeImageScanFindingsResponse.add_member(:image_scan_status, Shapes::ShapeRef.new(shape: ImageScanStatus, location_name: "imageScanStatus"))
292
+ DescribeImageScanFindingsResponse.add_member(:image_scan_findings, Shapes::ShapeRef.new(shape: ImageScanFindings, location_name: "imageScanFindings"))
293
+ DescribeImageScanFindingsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
294
+ DescribeImageScanFindingsResponse.struct_class = Types::DescribeImageScanFindingsResponse
295
+
247
296
  DescribeImagesFilter.add_member(:tag_status, Shapes::ShapeRef.new(shape: TagStatus, location_name: "tagStatus"))
248
297
  DescribeImagesFilter.struct_class = Types::DescribeImagesFilter
249
298
 
@@ -272,6 +321,9 @@ module Aws::ECR
272
321
  EmptyUploadException.add_member(:message, Shapes::ShapeRef.new(shape: ExceptionMessage, location_name: "message"))
273
322
  EmptyUploadException.struct_class = Types::EmptyUploadException
274
323
 
324
+ FindingSeverityCounts.key = Shapes::ShapeRef.new(shape: FindingSeverity)
325
+ FindingSeverityCounts.value = Shapes::ShapeRef.new(shape: SeverityCount)
326
+
275
327
  GetAuthorizationTokenRegistryIdList.member = Shapes::ShapeRef.new(shape: RegistryId)
276
328
 
277
329
  GetAuthorizationTokenRequest.add_member(:registry_ids, Shapes::ShapeRef.new(shape: GetAuthorizationTokenRegistryIdList, location_name: "registryIds"))
@@ -340,6 +392,8 @@ module Aws::ECR
340
392
  ImageDetail.add_member(:image_tags, Shapes::ShapeRef.new(shape: ImageTagList, location_name: "imageTags"))
341
393
  ImageDetail.add_member(:image_size_in_bytes, Shapes::ShapeRef.new(shape: ImageSizeInBytes, location_name: "imageSizeInBytes"))
342
394
  ImageDetail.add_member(:image_pushed_at, Shapes::ShapeRef.new(shape: PushTimestamp, location_name: "imagePushedAt"))
395
+ ImageDetail.add_member(:image_scan_status, Shapes::ShapeRef.new(shape: ImageScanStatus, location_name: "imageScanStatus"))
396
+ ImageDetail.add_member(:image_scan_findings_summary, Shapes::ShapeRef.new(shape: ImageScanFindingsSummary, location_name: "imageScanFindingsSummary"))
343
397
  ImageDetail.struct_class = Types::ImageDetail
344
398
 
345
399
  ImageDetailList.member = Shapes::ShapeRef.new(shape: ImageDetail)
@@ -362,6 +416,33 @@ module Aws::ECR
362
416
  ImageNotFoundException.add_member(:message, Shapes::ShapeRef.new(shape: ExceptionMessage, location_name: "message"))
363
417
  ImageNotFoundException.struct_class = Types::ImageNotFoundException
364
418
 
419
+ ImageScanFinding.add_member(:name, Shapes::ShapeRef.new(shape: FindingName, location_name: "name"))
420
+ ImageScanFinding.add_member(:description, Shapes::ShapeRef.new(shape: FindingDescription, location_name: "description"))
421
+ ImageScanFinding.add_member(:uri, Shapes::ShapeRef.new(shape: Url, location_name: "uri"))
422
+ ImageScanFinding.add_member(:severity, Shapes::ShapeRef.new(shape: FindingSeverity, location_name: "severity"))
423
+ ImageScanFinding.add_member(:attributes, Shapes::ShapeRef.new(shape: AttributeList, location_name: "attributes"))
424
+ ImageScanFinding.struct_class = Types::ImageScanFinding
425
+
426
+ ImageScanFindingList.member = Shapes::ShapeRef.new(shape: ImageScanFinding)
427
+
428
+ ImageScanFindings.add_member(:image_scan_completed_at, Shapes::ShapeRef.new(shape: ScanTimestamp, location_name: "imageScanCompletedAt"))
429
+ ImageScanFindings.add_member(:vulnerability_source_updated_at, Shapes::ShapeRef.new(shape: VulnerabilitySourceUpdateTimestamp, location_name: "vulnerabilitySourceUpdatedAt"))
430
+ ImageScanFindings.add_member(:findings, Shapes::ShapeRef.new(shape: ImageScanFindingList, location_name: "findings"))
431
+ ImageScanFindings.add_member(:finding_severity_counts, Shapes::ShapeRef.new(shape: FindingSeverityCounts, location_name: "findingSeverityCounts"))
432
+ ImageScanFindings.struct_class = Types::ImageScanFindings
433
+
434
+ ImageScanFindingsSummary.add_member(:image_scan_completed_at, Shapes::ShapeRef.new(shape: ScanTimestamp, location_name: "imageScanCompletedAt"))
435
+ ImageScanFindingsSummary.add_member(:vulnerability_source_updated_at, Shapes::ShapeRef.new(shape: VulnerabilitySourceUpdateTimestamp, location_name: "vulnerabilitySourceUpdatedAt"))
436
+ ImageScanFindingsSummary.add_member(:finding_severity_counts, Shapes::ShapeRef.new(shape: FindingSeverityCounts, location_name: "findingSeverityCounts"))
437
+ ImageScanFindingsSummary.struct_class = Types::ImageScanFindingsSummary
438
+
439
+ ImageScanStatus.add_member(:status, Shapes::ShapeRef.new(shape: ScanStatus, location_name: "status"))
440
+ ImageScanStatus.add_member(:description, Shapes::ShapeRef.new(shape: ScanStatusDescription, location_name: "description"))
441
+ ImageScanStatus.struct_class = Types::ImageScanStatus
442
+
443
+ ImageScanningConfiguration.add_member(:scan_on_push, Shapes::ShapeRef.new(shape: ScanOnPushFlag, location_name: "scanOnPush"))
444
+ ImageScanningConfiguration.struct_class = Types::ImageScanningConfiguration
445
+
365
446
  ImageTagAlreadyExistsException.add_member(:message, Shapes::ShapeRef.new(shape: ExceptionMessage, location_name: "message"))
366
447
  ImageTagAlreadyExistsException.struct_class = Types::ImageTagAlreadyExistsException
367
448
 
@@ -481,6 +562,16 @@ module Aws::ECR
481
562
  PutImageResponse.add_member(:image, Shapes::ShapeRef.new(shape: Image, location_name: "image"))
482
563
  PutImageResponse.struct_class = Types::PutImageResponse
483
564
 
565
+ PutImageScanningConfigurationRequest.add_member(:registry_id, Shapes::ShapeRef.new(shape: RegistryId, location_name: "registryId"))
566
+ PutImageScanningConfigurationRequest.add_member(:repository_name, Shapes::ShapeRef.new(shape: RepositoryName, required: true, location_name: "repositoryName"))
567
+ PutImageScanningConfigurationRequest.add_member(:image_scanning_configuration, Shapes::ShapeRef.new(shape: ImageScanningConfiguration, required: true, location_name: "imageScanningConfiguration"))
568
+ PutImageScanningConfigurationRequest.struct_class = Types::PutImageScanningConfigurationRequest
569
+
570
+ PutImageScanningConfigurationResponse.add_member(:registry_id, Shapes::ShapeRef.new(shape: RegistryId, location_name: "registryId"))
571
+ PutImageScanningConfigurationResponse.add_member(:repository_name, Shapes::ShapeRef.new(shape: RepositoryName, location_name: "repositoryName"))
572
+ PutImageScanningConfigurationResponse.add_member(:image_scanning_configuration, Shapes::ShapeRef.new(shape: ImageScanningConfiguration, location_name: "imageScanningConfiguration"))
573
+ PutImageScanningConfigurationResponse.struct_class = Types::PutImageScanningConfigurationResponse
574
+
484
575
  PutImageTagMutabilityRequest.add_member(:registry_id, Shapes::ShapeRef.new(shape: RegistryId, location_name: "registryId"))
485
576
  PutImageTagMutabilityRequest.add_member(:repository_name, Shapes::ShapeRef.new(shape: RepositoryName, required: true, location_name: "repositoryName"))
486
577
  PutImageTagMutabilityRequest.add_member(:image_tag_mutability, Shapes::ShapeRef.new(shape: ImageTagMutability, required: true, location_name: "imageTagMutability"))
@@ -507,6 +598,7 @@ module Aws::ECR
507
598
  Repository.add_member(:repository_uri, Shapes::ShapeRef.new(shape: Url, location_name: "repositoryUri"))
508
599
  Repository.add_member(:created_at, Shapes::ShapeRef.new(shape: CreationTimestamp, location_name: "createdAt"))
509
600
  Repository.add_member(:image_tag_mutability, Shapes::ShapeRef.new(shape: ImageTagMutability, location_name: "imageTagMutability"))
601
+ Repository.add_member(:image_scanning_configuration, Shapes::ShapeRef.new(shape: ImageScanningConfiguration, location_name: "imageScanningConfiguration"))
510
602
  Repository.struct_class = Types::Repository
511
603
 
512
604
  RepositoryAlreadyExistsException.add_member(:message, Shapes::ShapeRef.new(shape: ExceptionMessage, location_name: "message"))
@@ -525,6 +617,9 @@ module Aws::ECR
525
617
  RepositoryPolicyNotFoundException.add_member(:message, Shapes::ShapeRef.new(shape: ExceptionMessage, location_name: "message"))
526
618
  RepositoryPolicyNotFoundException.struct_class = Types::RepositoryPolicyNotFoundException
527
619
 
620
+ ScanNotFoundException.add_member(:message, Shapes::ShapeRef.new(shape: ExceptionMessage, location_name: "message"))
621
+ ScanNotFoundException.struct_class = Types::ScanNotFoundException
622
+
528
623
  ServerException.add_member(:message, Shapes::ShapeRef.new(shape: ExceptionMessage, location_name: "message"))
529
624
  ServerException.struct_class = Types::ServerException
530
625
 
@@ -539,6 +634,17 @@ module Aws::ECR
539
634
  SetRepositoryPolicyResponse.add_member(:policy_text, Shapes::ShapeRef.new(shape: RepositoryPolicyText, location_name: "policyText"))
540
635
  SetRepositoryPolicyResponse.struct_class = Types::SetRepositoryPolicyResponse
541
636
 
637
+ StartImageScanRequest.add_member(:registry_id, Shapes::ShapeRef.new(shape: RegistryId, location_name: "registryId"))
638
+ StartImageScanRequest.add_member(:repository_name, Shapes::ShapeRef.new(shape: RepositoryName, required: true, location_name: "repositoryName"))
639
+ StartImageScanRequest.add_member(:image_id, Shapes::ShapeRef.new(shape: ImageIdentifier, required: true, location_name: "imageId"))
640
+ StartImageScanRequest.struct_class = Types::StartImageScanRequest
641
+
642
+ StartImageScanResponse.add_member(:registry_id, Shapes::ShapeRef.new(shape: RegistryId, location_name: "registryId"))
643
+ StartImageScanResponse.add_member(:repository_name, Shapes::ShapeRef.new(shape: RepositoryName, location_name: "repositoryName"))
644
+ StartImageScanResponse.add_member(:image_id, Shapes::ShapeRef.new(shape: ImageIdentifier, location_name: "imageId"))
645
+ StartImageScanResponse.add_member(:image_scan_status, Shapes::ShapeRef.new(shape: ImageScanStatus, location_name: "imageScanStatus"))
646
+ StartImageScanResponse.struct_class = Types::StartImageScanResponse
647
+
542
648
  StartLifecyclePolicyPreviewRequest.add_member(:registry_id, Shapes::ShapeRef.new(shape: RegistryId, location_name: "registryId"))
543
649
  StartLifecyclePolicyPreviewRequest.add_member(:repository_name, Shapes::ShapeRef.new(shape: RepositoryName, required: true, location_name: "repositoryName"))
544
650
  StartLifecyclePolicyPreviewRequest.add_member(:lifecycle_policy_text, Shapes::ShapeRef.new(shape: LifecyclePolicyText, location_name: "lifecyclePolicyText"))
@@ -709,6 +815,25 @@ module Aws::ECR
709
815
  o.errors << Shapes::ShapeRef.new(shape: RepositoryPolicyNotFoundException)
710
816
  end)
711
817
 
818
+ api.add_operation(:describe_image_scan_findings, Seahorse::Model::Operation.new.tap do |o|
819
+ o.name = "DescribeImageScanFindings"
820
+ o.http_method = "POST"
821
+ o.http_request_uri = "/"
822
+ o.input = Shapes::ShapeRef.new(shape: DescribeImageScanFindingsRequest)
823
+ o.output = Shapes::ShapeRef.new(shape: DescribeImageScanFindingsResponse)
824
+ o.errors << Shapes::ShapeRef.new(shape: ServerException)
825
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
826
+ o.errors << Shapes::ShapeRef.new(shape: RepositoryNotFoundException)
827
+ o.errors << Shapes::ShapeRef.new(shape: ImageNotFoundException)
828
+ o.errors << Shapes::ShapeRef.new(shape: ScanNotFoundException)
829
+ o[:pager] = Aws::Pager.new(
830
+ limit_key: "max_results",
831
+ tokens: {
832
+ "next_token" => "next_token"
833
+ }
834
+ )
835
+ end)
836
+
712
837
  api.add_operation(:describe_images, Seahorse::Model::Operation.new.tap do |o|
713
838
  o.name = "DescribeImages"
714
839
  o.http_method = "POST"
@@ -789,6 +914,12 @@ module Aws::ECR
789
914
  o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
790
915
  o.errors << Shapes::ShapeRef.new(shape: RepositoryNotFoundException)
791
916
  o.errors << Shapes::ShapeRef.new(shape: LifecyclePolicyPreviewNotFoundException)
917
+ o[:pager] = Aws::Pager.new(
918
+ limit_key: "max_results",
919
+ tokens: {
920
+ "next_token" => "next_token"
921
+ }
922
+ )
792
923
  end)
793
924
 
794
925
  api.add_operation(:get_repository_policy, Seahorse::Model::Operation.new.tap do |o|
@@ -857,6 +988,17 @@ module Aws::ECR
857
988
  o.errors << Shapes::ShapeRef.new(shape: ImageTagAlreadyExistsException)
858
989
  end)
859
990
 
991
+ api.add_operation(:put_image_scanning_configuration, Seahorse::Model::Operation.new.tap do |o|
992
+ o.name = "PutImageScanningConfiguration"
993
+ o.http_method = "POST"
994
+ o.http_request_uri = "/"
995
+ o.input = Shapes::ShapeRef.new(shape: PutImageScanningConfigurationRequest)
996
+ o.output = Shapes::ShapeRef.new(shape: PutImageScanningConfigurationResponse)
997
+ o.errors << Shapes::ShapeRef.new(shape: ServerException)
998
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
999
+ o.errors << Shapes::ShapeRef.new(shape: RepositoryNotFoundException)
1000
+ end)
1001
+
860
1002
  api.add_operation(:put_image_tag_mutability, Seahorse::Model::Operation.new.tap do |o|
861
1003
  o.name = "PutImageTagMutability"
862
1004
  o.http_method = "POST"
@@ -890,6 +1032,18 @@ module Aws::ECR
890
1032
  o.errors << Shapes::ShapeRef.new(shape: RepositoryNotFoundException)
891
1033
  end)
892
1034
 
1035
+ api.add_operation(:start_image_scan, Seahorse::Model::Operation.new.tap do |o|
1036
+ o.name = "StartImageScan"
1037
+ o.http_method = "POST"
1038
+ o.http_request_uri = "/"
1039
+ o.input = Shapes::ShapeRef.new(shape: StartImageScanRequest)
1040
+ o.output = Shapes::ShapeRef.new(shape: StartImageScanResponse)
1041
+ o.errors << Shapes::ShapeRef.new(shape: ServerException)
1042
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
1043
+ o.errors << Shapes::ShapeRef.new(shape: RepositoryNotFoundException)
1044
+ o.errors << Shapes::ShapeRef.new(shape: ImageNotFoundException)
1045
+ end)
1046
+
893
1047
  api.add_operation(:start_lifecycle_policy_preview, Seahorse::Model::Operation.new.tap do |o|
894
1048
  o.name = "StartLifecyclePolicyPreview"
895
1049
  o.http_method = "POST"
@@ -350,6 +350,22 @@ module Aws::ECR
350
350
 
351
351
  end
352
352
 
353
+ class ScanNotFoundException < ServiceError
354
+
355
+ # @param [Seahorse::Client::RequestContext] context
356
+ # @param [String] message
357
+ # @param [Aws::ECR::Types::ScanNotFoundException] data
358
+ def initialize(context, message, data = Aws::EmptyStructure.new)
359
+ super(context, message, data)
360
+ end
361
+
362
+ # @return [String]
363
+ def message
364
+ @message || @data[:message]
365
+ end
366
+
367
+ end
368
+
353
369
  class ServerException < ServiceError
354
370
 
355
371
  # @param [Seahorse::Client::RequestContext] context
@@ -8,6 +8,24 @@
8
8
  module Aws::ECR
9
9
  module Types
10
10
 
11
+ # This data type is used in the ImageScanFinding data type.
12
+ #
13
+ # @!attribute [rw] key
14
+ # The attribute key.
15
+ # @return [String]
16
+ #
17
+ # @!attribute [rw] value
18
+ # The value assigned to the attribute key.
19
+ # @return [String]
20
+ #
21
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/Attribute AWS API Documentation
22
+ #
23
+ class Attribute < Struct.new(
24
+ :key,
25
+ :value)
26
+ include Aws::Structure
27
+ end
28
+
11
29
  # An object representing authorization data for an Amazon ECR registry.
12
30
  #
13
31
  # @!attribute [rw] authorization_token
@@ -289,6 +307,9 @@ module Aws::ECR
289
307
  # },
290
308
  # ],
291
309
  # image_tag_mutability: "MUTABLE", # accepts MUTABLE, IMMUTABLE
310
+ # image_scanning_configuration: {
311
+ # scan_on_push: false,
312
+ # },
292
313
  # }
293
314
  #
294
315
  # @!attribute [rw] repository_name
@@ -314,12 +335,19 @@ module Aws::ECR
314
335
  # prevent them from being overwritten.
315
336
  # @return [String]
316
337
  #
338
+ # @!attribute [rw] image_scanning_configuration
339
+ # The image scanning configuration for the repository. This setting
340
+ # determines whether images are scanned for known vulnerabilities
341
+ # after being pushed to the repository.
342
+ # @return [Types::ImageScanningConfiguration]
343
+ #
317
344
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/CreateRepositoryRequest AWS API Documentation
318
345
  #
319
346
  class CreateRepositoryRequest < Struct.new(
320
347
  :repository_name,
321
348
  :tags,
322
- :image_tag_mutability)
349
+ :image_tag_mutability,
350
+ :image_scanning_configuration)
323
351
  include Aws::Structure
324
352
  end
325
353
 
@@ -477,6 +505,107 @@ module Aws::ECR
477
505
  include Aws::Structure
478
506
  end
479
507
 
508
+ # @note When making an API call, you may pass DescribeImageScanFindingsRequest
509
+ # data as a hash:
510
+ #
511
+ # {
512
+ # registry_id: "RegistryId",
513
+ # repository_name: "RepositoryName", # required
514
+ # image_id: { # required
515
+ # image_digest: "ImageDigest",
516
+ # image_tag: "ImageTag",
517
+ # },
518
+ # next_token: "NextToken",
519
+ # max_results: 1,
520
+ # }
521
+ #
522
+ # @!attribute [rw] registry_id
523
+ # The AWS account ID associated with the registry that contains the
524
+ # repository in which to describe the image scan findings for. If you
525
+ # do not specify a registry, the default registry is assumed.
526
+ # @return [String]
527
+ #
528
+ # @!attribute [rw] repository_name
529
+ # The repository for the image for which to describe the scan
530
+ # findings.
531
+ # @return [String]
532
+ #
533
+ # @!attribute [rw] image_id
534
+ # An object with identifying information for an Amazon ECR image.
535
+ # @return [Types::ImageIdentifier]
536
+ #
537
+ # @!attribute [rw] next_token
538
+ # The `nextToken` value returned from a previous paginated
539
+ # `DescribeImageScanFindings` request where `maxResults` was used and
540
+ # the results exceeded the value of that parameter. Pagination
541
+ # continues from the end of the previous results that returned the
542
+ # `nextToken` value. This value is null when there are no more results
543
+ # to return.
544
+ # @return [String]
545
+ #
546
+ # @!attribute [rw] max_results
547
+ # The maximum number of image scan results returned by
548
+ # `DescribeImageScanFindings` in paginated output. When this parameter
549
+ # is used, `DescribeImageScanFindings` only returns `maxResults`
550
+ # results in a single page along with a `nextToken` response element.
551
+ # The remaining results of the initial request can be seen by sending
552
+ # another `DescribeImageScanFindings` request with the returned
553
+ # `nextToken` value. This value can be between 1 and 1000. If this
554
+ # parameter is not used, then `DescribeImageScanFindings` returns up
555
+ # to 100 results and a `nextToken` value, if applicable.
556
+ # @return [Integer]
557
+ #
558
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DescribeImageScanFindingsRequest AWS API Documentation
559
+ #
560
+ class DescribeImageScanFindingsRequest < Struct.new(
561
+ :registry_id,
562
+ :repository_name,
563
+ :image_id,
564
+ :next_token,
565
+ :max_results)
566
+ include Aws::Structure
567
+ end
568
+
569
+ # @!attribute [rw] registry_id
570
+ # The registry ID associated with the request.
571
+ # @return [String]
572
+ #
573
+ # @!attribute [rw] repository_name
574
+ # The repository name associated with the request.
575
+ # @return [String]
576
+ #
577
+ # @!attribute [rw] image_id
578
+ # An object with identifying information for an Amazon ECR image.
579
+ # @return [Types::ImageIdentifier]
580
+ #
581
+ # @!attribute [rw] image_scan_status
582
+ # The current state of the scan.
583
+ # @return [Types::ImageScanStatus]
584
+ #
585
+ # @!attribute [rw] image_scan_findings
586
+ # The information contained in the image scan findings.
587
+ # @return [Types::ImageScanFindings]
588
+ #
589
+ # @!attribute [rw] next_token
590
+ # The `nextToken` value to include in a future
591
+ # `DescribeImageScanFindings` request. When the results of a
592
+ # `DescribeImageScanFindings` request exceed `maxResults`, this value
593
+ # can be used to retrieve the next page of results. This value is null
594
+ # when there are no more results to return.
595
+ # @return [String]
596
+ #
597
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DescribeImageScanFindingsResponse AWS API Documentation
598
+ #
599
+ class DescribeImageScanFindingsResponse < Struct.new(
600
+ :registry_id,
601
+ :repository_name,
602
+ :image_id,
603
+ :image_scan_status,
604
+ :image_scan_findings,
605
+ :next_token)
606
+ include Aws::Structure
607
+ end
608
+
480
609
  # An object representing a filter on a DescribeImages operation.
481
610
  #
482
611
  # @note When making an API call, you may pass DescribeImagesFilter
@@ -1063,6 +1192,14 @@ module Aws::ECR
1063
1192
  # which the current image was pushed to the repository.
1064
1193
  # @return [Time]
1065
1194
  #
1195
+ # @!attribute [rw] image_scan_status
1196
+ # The current state of the scan.
1197
+ # @return [Types::ImageScanStatus]
1198
+ #
1199
+ # @!attribute [rw] image_scan_findings_summary
1200
+ # A summary of the last completed image scan.
1201
+ # @return [Types::ImageScanFindingsSummary]
1202
+ #
1066
1203
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/ImageDetail AWS API Documentation
1067
1204
  #
1068
1205
  class ImageDetail < Struct.new(
@@ -1071,7 +1208,9 @@ module Aws::ECR
1071
1208
  :image_digest,
1072
1209
  :image_tags,
1073
1210
  :image_size_in_bytes,
1074
- :image_pushed_at)
1211
+ :image_pushed_at,
1212
+ :image_scan_status,
1213
+ :image_scan_findings_summary)
1075
1214
  include Aws::Structure
1076
1215
  end
1077
1216
 
@@ -1136,6 +1275,134 @@ module Aws::ECR
1136
1275
  include Aws::Structure
1137
1276
  end
1138
1277
 
1278
+ # Contains information about an image scan finding.
1279
+ #
1280
+ # @!attribute [rw] name
1281
+ # The name associated with the finding, usually a CVE number.
1282
+ # @return [String]
1283
+ #
1284
+ # @!attribute [rw] description
1285
+ # The description of the finding.
1286
+ # @return [String]
1287
+ #
1288
+ # @!attribute [rw] uri
1289
+ # A link containing additional details about the security
1290
+ # vulnerability.
1291
+ # @return [String]
1292
+ #
1293
+ # @!attribute [rw] severity
1294
+ # The finding severity.
1295
+ # @return [String]
1296
+ #
1297
+ # @!attribute [rw] attributes
1298
+ # A collection of attributes of the host from which the finding is
1299
+ # generated.
1300
+ # @return [Array<Types::Attribute>]
1301
+ #
1302
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/ImageScanFinding AWS API Documentation
1303
+ #
1304
+ class ImageScanFinding < Struct.new(
1305
+ :name,
1306
+ :description,
1307
+ :uri,
1308
+ :severity,
1309
+ :attributes)
1310
+ include Aws::Structure
1311
+ end
1312
+
1313
+ # The details of an image scan.
1314
+ #
1315
+ # @!attribute [rw] image_scan_completed_at
1316
+ # The time of the last completed image scan.
1317
+ # @return [Time]
1318
+ #
1319
+ # @!attribute [rw] vulnerability_source_updated_at
1320
+ # The time when the vulnerability data was last scanned.
1321
+ # @return [Time]
1322
+ #
1323
+ # @!attribute [rw] findings
1324
+ # The findings from the image scan.
1325
+ # @return [Array<Types::ImageScanFinding>]
1326
+ #
1327
+ # @!attribute [rw] finding_severity_counts
1328
+ # The image vulnerability counts, sorted by severity.
1329
+ # @return [Hash<String,Integer>]
1330
+ #
1331
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/ImageScanFindings AWS API Documentation
1332
+ #
1333
+ class ImageScanFindings < Struct.new(
1334
+ :image_scan_completed_at,
1335
+ :vulnerability_source_updated_at,
1336
+ :findings,
1337
+ :finding_severity_counts)
1338
+ include Aws::Structure
1339
+ end
1340
+
1341
+ # A summary of the last completed image scan.
1342
+ #
1343
+ # @!attribute [rw] image_scan_completed_at
1344
+ # The time of the last completed image scan.
1345
+ # @return [Time]
1346
+ #
1347
+ # @!attribute [rw] vulnerability_source_updated_at
1348
+ # The time when the vulnerability data was last scanned.
1349
+ # @return [Time]
1350
+ #
1351
+ # @!attribute [rw] finding_severity_counts
1352
+ # The image vulnerability counts, sorted by severity.
1353
+ # @return [Hash<String,Integer>]
1354
+ #
1355
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/ImageScanFindingsSummary AWS API Documentation
1356
+ #
1357
+ class ImageScanFindingsSummary < Struct.new(
1358
+ :image_scan_completed_at,
1359
+ :vulnerability_source_updated_at,
1360
+ :finding_severity_counts)
1361
+ include Aws::Structure
1362
+ end
1363
+
1364
+ # The current status of an image scan.
1365
+ #
1366
+ # @!attribute [rw] status
1367
+ # The current state of an image scan.
1368
+ # @return [String]
1369
+ #
1370
+ # @!attribute [rw] description
1371
+ # The description of the image scan status.
1372
+ # @return [String]
1373
+ #
1374
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/ImageScanStatus AWS API Documentation
1375
+ #
1376
+ class ImageScanStatus < Struct.new(
1377
+ :status,
1378
+ :description)
1379
+ include Aws::Structure
1380
+ end
1381
+
1382
+ # The image scanning configuration for a repository.
1383
+ #
1384
+ # @note When making an API call, you may pass ImageScanningConfiguration
1385
+ # data as a hash:
1386
+ #
1387
+ # {
1388
+ # scan_on_push: false,
1389
+ # }
1390
+ #
1391
+ # @!attribute [rw] scan_on_push
1392
+ # The setting that determines whether images are scanned after being
1393
+ # pushed to a repository. If set to `true`, images will be scanned
1394
+ # after being pushed. If this parameter is not specified, it will
1395
+ # default to `false` and images will not be scanned unless a scan is
1396
+ # manually started with the StartImageScan API.
1397
+ # @return [Boolean]
1398
+ #
1399
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/ImageScanningConfiguration AWS API Documentation
1400
+ #
1401
+ class ImageScanningConfiguration < Struct.new(
1402
+ :scan_on_push)
1403
+ include Aws::Structure
1404
+ end
1405
+
1139
1406
  # The specified image is tagged with a tag that already exists. The
1140
1407
  # repository is configured for tag immutability.
1141
1408
  #
@@ -1701,6 +1968,65 @@ module Aws::ECR
1701
1968
  include Aws::Structure
1702
1969
  end
1703
1970
 
1971
+ # @note When making an API call, you may pass PutImageScanningConfigurationRequest
1972
+ # data as a hash:
1973
+ #
1974
+ # {
1975
+ # registry_id: "RegistryId",
1976
+ # repository_name: "RepositoryName", # required
1977
+ # image_scanning_configuration: { # required
1978
+ # scan_on_push: false,
1979
+ # },
1980
+ # }
1981
+ #
1982
+ # @!attribute [rw] registry_id
1983
+ # The AWS account ID associated with the registry that contains the
1984
+ # repository in which to update the image scanning configuration
1985
+ # setting. If you do not specify a registry, the default registry is
1986
+ # assumed.
1987
+ # @return [String]
1988
+ #
1989
+ # @!attribute [rw] repository_name
1990
+ # The name of the repository in which to update the image scanning
1991
+ # configuration setting.
1992
+ # @return [String]
1993
+ #
1994
+ # @!attribute [rw] image_scanning_configuration
1995
+ # The image scanning configuration for the repository. This setting
1996
+ # determines whether images are scanned for known vulnerabilities
1997
+ # after being pushed to the repository.
1998
+ # @return [Types::ImageScanningConfiguration]
1999
+ #
2000
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/PutImageScanningConfigurationRequest AWS API Documentation
2001
+ #
2002
+ class PutImageScanningConfigurationRequest < Struct.new(
2003
+ :registry_id,
2004
+ :repository_name,
2005
+ :image_scanning_configuration)
2006
+ include Aws::Structure
2007
+ end
2008
+
2009
+ # @!attribute [rw] registry_id
2010
+ # The registry ID associated with the request.
2011
+ # @return [String]
2012
+ #
2013
+ # @!attribute [rw] repository_name
2014
+ # The repository name associated with the request.
2015
+ # @return [String]
2016
+ #
2017
+ # @!attribute [rw] image_scanning_configuration
2018
+ # The image scanning configuration setting for the repository.
2019
+ # @return [Types::ImageScanningConfiguration]
2020
+ #
2021
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/PutImageScanningConfigurationResponse AWS API Documentation
2022
+ #
2023
+ class PutImageScanningConfigurationResponse < Struct.new(
2024
+ :registry_id,
2025
+ :repository_name,
2026
+ :image_scanning_configuration)
2027
+ include Aws::Structure
2028
+ end
2029
+
1704
2030
  # @note When making an API call, you may pass PutImageTagMutabilityRequest
1705
2031
  # data as a hash:
1706
2032
  #
@@ -1844,6 +2170,10 @@ module Aws::ECR
1844
2170
  # The tag mutability setting for the repository.
1845
2171
  # @return [String]
1846
2172
  #
2173
+ # @!attribute [rw] image_scanning_configuration
2174
+ # The image scanning configuration for a repository.
2175
+ # @return [Types::ImageScanningConfiguration]
2176
+ #
1847
2177
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/Repository AWS API Documentation
1848
2178
  #
1849
2179
  class Repository < Struct.new(
@@ -1852,7 +2182,8 @@ module Aws::ECR
1852
2182
  :repository_name,
1853
2183
  :repository_uri,
1854
2184
  :created_at,
1855
- :image_tag_mutability)
2185
+ :image_tag_mutability,
2186
+ :image_scanning_configuration)
1856
2187
  include Aws::Structure
1857
2188
  end
1858
2189
 
@@ -1913,6 +2244,19 @@ module Aws::ECR
1913
2244
  include Aws::Structure
1914
2245
  end
1915
2246
 
2247
+ # The specified image scan could not be found. Ensure that image
2248
+ # scanning is enabled on the repository and try again.
2249
+ #
2250
+ # @!attribute [rw] message
2251
+ # @return [String]
2252
+ #
2253
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/ScanNotFoundException AWS API Documentation
2254
+ #
2255
+ class ScanNotFoundException < Struct.new(
2256
+ :message)
2257
+ include Aws::Structure
2258
+ end
2259
+
1916
2260
  # These errors are usually caused by a server-side issue.
1917
2261
  #
1918
2262
  # @!attribute [rw] message
@@ -1994,6 +2338,67 @@ module Aws::ECR
1994
2338
  include Aws::Structure
1995
2339
  end
1996
2340
 
2341
+ # @note When making an API call, you may pass StartImageScanRequest
2342
+ # data as a hash:
2343
+ #
2344
+ # {
2345
+ # registry_id: "RegistryId",
2346
+ # repository_name: "RepositoryName", # required
2347
+ # image_id: { # required
2348
+ # image_digest: "ImageDigest",
2349
+ # image_tag: "ImageTag",
2350
+ # },
2351
+ # }
2352
+ #
2353
+ # @!attribute [rw] registry_id
2354
+ # The AWS account ID associated with the registry that contains the
2355
+ # repository in which to start an image scan request. If you do not
2356
+ # specify a registry, the default registry is assumed.
2357
+ # @return [String]
2358
+ #
2359
+ # @!attribute [rw] repository_name
2360
+ # The name of the repository that contains the images to scan.
2361
+ # @return [String]
2362
+ #
2363
+ # @!attribute [rw] image_id
2364
+ # An object with identifying information for an Amazon ECR image.
2365
+ # @return [Types::ImageIdentifier]
2366
+ #
2367
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/StartImageScanRequest AWS API Documentation
2368
+ #
2369
+ class StartImageScanRequest < Struct.new(
2370
+ :registry_id,
2371
+ :repository_name,
2372
+ :image_id)
2373
+ include Aws::Structure
2374
+ end
2375
+
2376
+ # @!attribute [rw] registry_id
2377
+ # The registry ID associated with the request.
2378
+ # @return [String]
2379
+ #
2380
+ # @!attribute [rw] repository_name
2381
+ # The repository name associated with the request.
2382
+ # @return [String]
2383
+ #
2384
+ # @!attribute [rw] image_id
2385
+ # An object with identifying information for an Amazon ECR image.
2386
+ # @return [Types::ImageIdentifier]
2387
+ #
2388
+ # @!attribute [rw] image_scan_status
2389
+ # The current state of the scan.
2390
+ # @return [Types::ImageScanStatus]
2391
+ #
2392
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/StartImageScanResponse AWS API Documentation
2393
+ #
2394
+ class StartImageScanResponse < Struct.new(
2395
+ :registry_id,
2396
+ :repository_name,
2397
+ :image_id,
2398
+ :image_scan_status)
2399
+ include Aws::Structure
2400
+ end
2401
+
1997
2402
  # @note When making an API call, you may pass StartLifecyclePolicyPreviewRequest
1998
2403
  # data as a hash:
1999
2404
  #
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-ecr
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.21.0
4
+ version: 1.22.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-23 00:00:00.000000000 Z
11
+ date: 2019-10-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core