Repository: osbuild/osbuild-composer
Pull request #3034 (2022-09-30 04:22:38)

build(deps): bump github.com/aws/aws-sdk-go from 1.44.104 to 1.44.108
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.104 to 1.44.108.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.108 (2022-09-29)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/acm</code>: Updates service API and documentation
<ul>
<li>This update returns additional certificate details such as certificate SANs and allows sorting in the ListCertificates API.</li>
</ul>
</li>
<li><code>service/ec2</code>: Updates service API
<ul>
<li>u-3tb1 instances are powered by Intel Xeon Platinum 8176M (Skylake) processors and are purpose-built to run large in-memory databases.</li>
</ul>
</li>
<li><code>service/emr-serverless</code>: Updates service API and documentation</li>
<li><code>service/fsx</code>: Updates service API, documentation, and paginators</li>
<li><code>service/migrationhuborchestrator</code>: Adds new service</li>
<li><code>service/polly</code>: Updates service API
<ul>
<li>Added support for the new Cantonese voice - Hiujin. Hiujin is available as a Neural voice only.</li>
</ul>
</li>
<li><code>service/proton</code>: Updates service API and documentation</li>
<li><code>service/sagemaker</code>: Updates service API and documentation
<ul>
<li>SageMaker Training Managed Warm Pools let you retain provisioned infrastructure to reduce latency for repetitive training workloads.</li>
</ul>
</li>
<li><code>service/secretsmanager</code>: Updates service documentation
<ul>
<li>Documentation updates for Secrets Manager</li>
</ul>
</li>
<li><code>service/translate</code>: Updates service API and documentation</li>
<li><code>service/workspaces</code>: Updates service API and documentation
<ul>
<li>This release includes diagnostic log uploading feature. If it is enabled, the log files of WorkSpaces Windows client will be sent to Amazon WorkSpaces automatically for troubleshooting. You can use modifyClientProperty api to enable/disable this feature.</li>
</ul>
</li>
</ul>
<h1>Release v1.44.107 (2022-09-27)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/ce</code>: Updates service API and documentation</li>
<li><code>service/kendra</code>: Updates service documentation
<ul>
<li>My AWS Service (placeholder) - Amazon Kendra now provides a data source connector for DropBox. For more information, see <a href="https://docs.aws.amazon.com/kendra/latest/dg/data-source-dropbox.html">https://docs.aws.amazon.com/kendra/latest/dg/data-source-dropbox.html</a></li>
</ul>
</li>
<li><code>service/location</code>: Updates service API and documentation</li>
</ul>
<h1>Release v1.44.106 (2022-09-26)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/cur</code>: Updates service API
<ul>
<li>This release adds two new support regions(me-central-1/eu-south-2) for OSG.</li>
</ul>
</li>
<li><code>service/iotfleetwise</code>: Adds new service</li>
<li><code>service/ssm</code>: Updates service API and documentation
<ul>
<li>This release includes support for applying a CloudWatch alarm to Systems Manager capabilities like Automation, Run Command, State Manager, and Maintenance Windows.</li>
</ul>
</li>
</ul>
<h1>Release v1.44.105 (2022-09-23)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/apprunner</code>: Updates service API</li>
<li><code>service/ec2</code>: Updates service API and documentation
<ul>
<li>Letting external AWS customers provide ImageId as a Launch Template override in FleetLaunchTemplateOverridesRequest</li>
</ul>
</li>
<li><code>service/lightsail</code>: Updates service API and documentation
<ul>
<li>This release adds Instance Metadata Service (IMDS) support for Lightsail instances.</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/aws/aws-sdk-go/commit/05ed0fb059a261c43ff20d6b513f0813db86f7e4"><code>05ed0fb</code></a> Release v1.44.108 (2022-09-29) (<a href="https://github-redirect.dependabot.com/aws/aws-sdk-go/issues/4573">#4573</a>)</li>
<li><a href="https://github.com/aws/aws-sdk-go/commit/427f0372a6a485ae717e9b2a0b8f94766966901a"><code>427f037</code></a> Release v1.44.107 (2022-09-27) (<a href="https://github-redirect.dependabot.com/aws/aws-sdk-go/issues/4571">#4571</a>)</li>
<li><a href="https://github.com/aws/aws-sdk-go/commit/9f1279c1fa696efeb5b33cefe40fe8f08a23660b"><code>9f1279c</code></a> Release v1.44.106 (2022-09-26) (<a href="https://github-redirect.dependabot.com/aws/aws-sdk-go/issues/4568">#4568</a>)</li>
<li><a href="https://github.com/aws/aws-sdk-go/commit/5a9633d0f53573ccdf43270c0ce198fb369193b0"><code>5a9633d</code></a> Release v1.44.105 (2022-09-23) (<a href="https://github-redirect.dependabot.com/aws/aws-sdk-go/issues/4567">#4567</a>)</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.104...v1.44.108">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.104&new-version=1.44.108)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

You can trigger a rebase of this PR by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>


Patch:
diff --git a/go.mod b/go.mod
index 57d2a2d10..b06ef2622 100644
--- a/go.mod
+++ b/go.mod
@@ -14,7 +14,7 @@ require (
 	github.com/Azure/go-autorest/autorest v0.11.28
 	github.com/Azure/go-autorest/autorest/azure/auth v0.5.11
 	github.com/BurntSushi/toml v1.2.0
-	github.com/aws/aws-sdk-go v1.44.104
+	github.com/aws/aws-sdk-go v1.44.108
 	github.com/containers/common v0.49.1
 	github.com/containers/image/v5 v5.22.0
 	github.com/coreos/go-semver v0.3.0
diff --git a/go.sum b/go.sum
index 25b8444ab..10e699477 100644
--- a/go.sum
+++ b/go.sum
@@ -266,8 +266,8 @@ github.com/aws/aws-sdk-go v1.23.20/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpi
 github.com/aws/aws-sdk-go v1.25.37/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
 github.com/aws/aws-sdk-go v1.36.30/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
 github.com/aws/aws-sdk-go v1.44.44/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo=
-github.com/aws/aws-sdk-go v1.44.104 h1:NiPYL60aOSH0TsAzQngx/aBdxC12TXhgw07DQFh76GU=
-github.com/aws/aws-sdk-go v1.44.104/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo=
+github.com/aws/aws-sdk-go v1.44.108 h1:L8N9GmP9UYDNqBtJO6OC4zSuEkQxAR770VkbRXAUmRk=
+github.com/aws/aws-sdk-go v1.44.108/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo=
 github.com/aws/aws-sdk-go-v2 v1.16.5/go.mod h1:Wh7MEsmEApyL5hrWzpDkba4gwAPc5/piwLVLFnCxp48=
 github.com/aws/aws-sdk-go-v2/config v1.15.11/go.mod h1:mD5tNFciV7YHNjPpFYqJ6KGpoSfY107oZULvTHIxtbI=
 github.com/aws/aws-sdk-go-v2/credentials v1.12.6/go.mod h1:mQgnRmBPF2S/M01W4T4Obp3ZaZB6o1s/R8cOUda9vtI=
diff --git a/internal/store/store.go b/internal/store/store.go
index 5634ab5f5..400ddfd25 100644
--- a/internal/store/store.go
+++ b/internal/store/store.go
@@ -31,6 +31,14 @@ const StoreDBName = "state"
 
 // A Store contains all the persistent state of osbuild-composer, and is serialized
 // on every change, and deserialized on start.
+//
+// blueprints contain the most recent blueprint, using the name as the key
+//
+// blueprintsCommits contains the order of the commits to a blueprint name as a string of hashes
+// with the most recent one last.
+//
+// blueprintsChanges contains the blueprint change, using the blueprint name string and
+// the hash string from blueprintsCommits
 type Store struct {
 	blueprints        map[string]blueprint.Blueprint
 	workspace         map[string]blueprint.Blueprint
@@ -294,30 +302,37 @@ func (s *Store) TagBlueprint(name string) error {
 			return errors.New("Unknown blueprint")
 		}
 
-		if len(s.blueprintsCommits[name]) == 0 {
+		_, ok = s.blueprintsCommits[name]
+		if !ok || len(s.blueprintsCommits[name]) == 0 {
 			return errors.New("No commits for blueprint")
 		}
 
+		_, ok = s.blueprintsChanges[name]
+		if !ok {
+			return errors.New("No changes for blueprint")
+		}
+
 		latest := s.blueprintsCommits[name][len(s.blueprintsCommits[name])-1]
 		// If the most recent commit already has a revision, don't bump it
 		if s.blueprintsChanges[name][latest].Revision != nil {
 			return nil
 		}
 
-		// Get the latest revision for this blueprint
+		// Get the latest revision for this blueprint (or 0 if there is none)
+		// blueprintsCommits has the most recent commit at the end, so start there
 		var revision int
-		var change blueprint.Change
 		for i := len(s.blueprintsCommits[name]) - 1; i >= 0; i-- {
 			commit := s.blueprintsCommits[name][i]
-			change = s.blueprintsChanges[name][commit]
+			change := s.blueprintsChanges[name][commit]
 			if change.Revision != nil && *change.Revision > revision {
 				revision = *change.Revision
 				break
 			}
 		}
 
-		// Bump the revision (if there was none it will start at 1)
+		// Bump the revision (if there was none it will start at 1) of the latest commit
 		revision++
+		change := s.blueprintsChanges[name][latest]
 		change.Revision = &revision
 		s.blueprintsChanges[name][latest] = change
 		return nil
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go
index f420acd07..cddbe1bb0 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go
@@ -2551,6 +2551,27 @@ var awsPartition = partition{
 				}: endpoint{
 					Hostname: "appmesh.ca-central-1.api.aws",
 				},
+				endpointKey{
+					Region:  "ca-central-1",
+					Variant: fipsVariant,
+				}: endpoint{
+					Hostname: "appmesh-fips.ca-central-1.amazonaws.com",
+				},
+				endpointKey{
+					Region:  "ca-central-1",
+					Variant: fipsVariant | dualStackVariant,
+				}: endpoint{
+					Hostname: "appmesh-fips.ca-central-1.api.aws",
+				},
+				endpointKey{
+					Region: "ca-central-1-fips",
+				}: endpoint{
+					Hostname: "appmesh-fips.ca-central-1.amazonaws.com",
+					CredentialScope: credentialScope{
+						Region: "ca-central-1",
+					},
+					Deprecated: boxedTrue,
+				},
 				endpointKey{
 					Region: "eu-central-1",
 				}: endpoint{},
@@ -2632,6 +2653,27 @@ var awsPartition = partition{
 				}: endpoint{
 					Hostname: "appmesh.us-east-1.api.aws",
 				},
+				endpointKey{
+					Region:  "us-east-1",
+					Variant: fipsVariant,
+				}: endpoint{
+					Hostname: "appmesh-fips.us-east-1.amazonaws.com",
+				},
+				endpointKey{
+					Region:  "us-east-1",
+					Variant: fipsVariant | dualStackVariant,
+				}: endpoint{
+					Hostname: "appmesh-fips.us-east-1.api.aws",
+				},
+				endpointKey{
+					Region: "us-east-1-fips",
+				}: endpoint{
+					Hostname: "appmesh-fips.us-east-1.amazonaws.com",
+					CredentialScope: credentialScope{
+						Region: "us-east-1",
+					},
+					Deprecated: boxedTrue,
+				},
 				endpointKey{
 					Region: "us-east-2",
 				}: endpoint{},
@@ -2641,6 +2683,27 @@ var awsPartition = partition{
 				}: endpoint{
 					Hostname: "appmesh.us-east-2.api.aws",
 				},
+				endpointKey{
+					Region:  "us-east-2",
+					Variant: fipsVariant,
+				}: endpoint{
+					Hostname: "appmesh-fips.us-east-2.amazonaws.com",
+				},
+				endpointKey{
+					Region:  "us-east-2",
+					Variant: fipsVariant | dualStackVariant,
+				}: endpoint{
+					Hostname: "appmesh-fips.us-east-2.api.aws",
+				},
+				endpointKey{
+					Region: "us-east-2-fips",
+				}: endpoint{
+					Hostname: "appmesh-fips.us-east-2.amazonaws.com",
+					CredentialScope: credentialScope{
+						Region: "us-east-2",
+					},
+					Deprecated: boxedTrue,
+				},
 				endpointKey{
 					Region: "us-west-1",
 				}: endpoint{},
@@ -2650,6 +2713,27 @@ var awsPartition = partition{
 				}: endpoint{
 					Hostname: "appmesh.us-west-1.api.aws",
 				},
+				endpointKey{
+					Region:  "us-west-1",
+					Variant: fipsVariant,
+				}: endpoint{
+					Hostname: "appmesh-fips.us-west-1.amazonaws.com",
+				},
+				endpointKey{
+					Region:  "us-west-1",
+					Variant: fipsVariant | dualStackVariant,
+				}: endpoint{
+					Hostname: "appmesh-fips.us-west-1.api.aws",
+				},
+				endpointKey{
+					Region: "us-west-1-fips",
+				}: endpoint{
+					Hostname: "appmesh-fips.us-west-1.amazonaws.com",
+					CredentialScope: credentialScope{
+						Region: "us-west-1",
+					},
+					Deprecated: boxedTrue,
+				},
 				endpointKey{
 					Region: "us-west-2",
 				}: endpoint{},
@@ -2659,6 +2743,27 @@ var awsPartition = partition{
 				}: endpoint{
 					Hostname: "appmesh.us-west-2.api.aws",
 				},
+				endpointKey{
+					Region:  "us-west-2",
+					Variant: fipsVariant,
+				}: endpoint{
+					Hostname: "appmesh-fips.us-west-2.amazonaws.com",
+				},
+				endpointKey{
+					Region:  "us-west-2",
+					Variant: fipsVariant | dualStackVariant,
+				}: endpoint{
+					Hostname: "appmesh-fips.us-west-2.api.aws",
+				},
+				endpointKey{
+					Region: "us-west-2-fips",
+				}: endpoint{
+					Hostname: "appmesh-fips.us-west-2.amazonaws.com",
+					CredentialScope: credentialScope{
+						Region: "us-west-2",
+					},
+					Deprecated: boxedTrue,
+				},
 			},
 		},
 		"apprunner": service{
@@ -9517,15 +9622,51 @@ var awsPartition = partition{
 				endpointKey{
 					Region: "ap-northeast-1",
 				}: endpoint{},
+				endpointKey{
+					Region: "ap-northeast-2",
+				}: endpoint{},
+				endpointKey{
+					Region: "ap-south-1",
+				}: endpoint{},
 				endpointKey{
 					Region: "ap-southeast-1",
 				}: endpoint{},
+				endpointKey{
+					Region: "ap-southeast-2",
+				}: endpoint{},
+				endpointKey{
+					Region: "ca-central-1",
+				}: endpoint{},
+				endpointKey{
+					Region:  "ca-central-1",
+					Variant: fipsVariant,
+				}: endpoint{
+					Hostname: "emr-serverless-fips.ca-central-1.amazonaws.com",
+				},
 				endpointKey{
 					Region: "eu-central-1",
 				}: endpoint{},
+				endpointKey{
+					Region: "eu-north-1",
+				}: endpoint{},
 				endpointKey{
 					Region: "eu-west-1",
 				}: endpoint{},
+				endpointKey{
+					Region: "eu-west-2",
+				}: endpoint{},
+				endpointKey{
+					Region: "eu-west-3",
+				}: endpoint{},
+				endpointKey{
+					Region: "fips-ca-central-1",
+				}: endpoint{
+					Hostname: "emr-serverless-fips.ca-central-1.amazonaws.com",
+					CredentialScope: credentialScope{
+						Region: "ca-central-1",
+					},
+					Deprecated: boxedTrue,
+				},
 				endpointKey{
 					Region: "fips-us-east-1",
 				}: endpoint{
@@ -9544,6 +9685,15 @@ var awsPartition = partition{
 					},
 					Deprecated: boxedTrue,
 				},
+				endpointKey{
+					Region: "fips-us-west-1",
+				}: endpoint{
+					Hostname: "emr-serverless-fips.us-west-1.amazonaws.com",
+					CredentialScope: credentialScope{
+						Region: "us-west-1",
+					},
+					Deprecated: boxedTrue,
+				},
 				endpointKey{
 					Region: "fips-us-west-2",
 				}: endpoint{
@@ -9553,6 +9703,9 @@ var awsPartition = partition{
 					},
 					Deprecated: boxedTrue,
 				},
+				endpointKey{
+					Region: "sa-east-1",
+				}: endpoint{},
 				endpointKey{
 					Region: "us-east-1",
 				}: endpoint{},
@@ -9571,6 +9724,15 @@ var awsPartition = partition{
 				}: endpoint{
 					Hostname: "emr-serverless-fips.us-east-2.amazonaws.com",
 				},
+				endpointKey{
+					Region: "us-west-1",
+				}: endpoint{},
+				endpointKey{
+					Region:  "us-west-1",
+					Variant: fipsVariant,
+				}: endpoint{
+					Hostname: "emr-serverless-fips.us-west-1.amazonaws.com",
+				},
 				endpointKey{
 					Region: "us-west-2",
 				}: endpoint{},
@@ -12379,6 +12541,16 @@ var awsPartition = partition{
 				},
 			},
 		},
+		"iotfleetwise": service{
+			Endpoints: serviceEndpoints{
+				endpointKey{
+					Region: "eu-central-1",
+				}: endpoint{},
+				endpointKey{
+					Region: "us-east-1",
+				}: endpoint{},
+			},
+		},
 		"iotsecuredtunneling": service{
 			Defaults: endpointDefaults{
 				defaultKey{}: endpoint{},
@@ -12739,6 +12911,18 @@ var awsPartition = partition{
 		},
 		"ivschat": service{
 			Endpoints: serviceEndpoints{
+				endpointKey{
+					Region: "ap-northeast-1",
+				}: endpoint{},
+				endpointKey{
+					Region: "ap-northeast-2",
+				}: endpoint{},
+				endpointKey{
+					Region: "ap-south-1",
+				}: endpoint{},
+				endpointKey{
+					Region: "eu-central-1",
+				}: endpoint{},
 				endpointKey{
 					Region: "eu-west-1",
 				}: endpoint{},
@@ -15491,6 +15675,31 @@ var awsPartition = partition{
 				}: endpoint{},
 			},
 		},
+		"migrationhub-orchestrator": service{
+			Endpoints: serviceEndpoints{
+				endpointKey{
+					Region: "ap-northeast-1",
+				}: endpoint{},
+				endpointKey{
+					Region: "ap-southeast-2",
+				}: endpoint{},
+				endpointKey{
+					Region: "eu-central-1",
+				}: endpoint{},
+				endpointKey{
+					Region: "eu-west-1",
+				}: endpoint{},
+				endpointKey{
+					Region: "eu-west-2",
+				}: endpoint{},
+				endpointKey{
+					Region: "us-east-1",
+				}: endpoint{},
+				endpointKey{
+					Region: "us-west-2",
+				}: endpoint{},
+			},
+		},
 		"migrationhub-strategy": service{
 			Endpoints: serviceEndpoints{
 				endpointKey{
@@ -33643,6 +33852,13 @@ var awsisobPartition = partition{
 				}: endpoint{},
 			},
 		},
+		"resource-groups": service{
+			Endpoints: serviceEndpoints{
+				endpointKey{
+					Region: "us-isob-east-1",
+				}: endpoint{},
+			},
+		},
 		"route53": service{
 			PartitionEndpoint: "aws-iso-b-global",
 			IsRegionalized:    boxedFalse,
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/version.go b/vendor/github.com/aws/aws-sdk-go/aws/version.go
index aba2334c8..5b66e4f42 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/version.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/version.go
@@ -5,4 +5,4 @@ package aws
 const SDKName = "aws-sdk-go"
 
 // SDKVersion is the version of this SDK
-const SDKVersion = "1.44.104"
+const SDKVersion = "1.44.108"
diff --git a/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go b/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go
index d26bcc020..0cd8a5948 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go
@@ -107861,6 +107861,10 @@ type FleetLaunchTemplateOverrides struct {
 	// The Availability Zone in which to launch the instances.
 	AvailabilityZone *string `locationName:"availabilityZone" type:"string"`
 
+	// The ID of the AMI. An AMI is required to launch an instance. The AMI ID must
+	// be specified here or in the launch template.
+	ImageId *string `locationName:"imageId" type:"string"`
+
 	// The attributes for the instance types. When you specify instance attributes,
 	// Amazon EC2 will identify instance types with those attributes.
 	//
@@ -107932,6 +107936,12 @@ func (s *FleetLaunchTemplateOverrides) SetAvailabilityZone(v string) *FleetLaunc
 	return s
 }
 
+// SetImageId sets the ImageId field's value.
+func (s *FleetLaunchTemplateOverrides) SetImageId(v string) *FleetLaunchTemplateOverrides {
+	s.ImageId = &v
+	return s
+}
+
 // SetInstanceRequirements sets the InstanceRequirements field's value.
 func (s *FleetLaunchTemplateOverrides) SetInstanceRequirements(v *InstanceRequirements) *FleetLaunchTemplateOverrides {
 	s.InstanceRequirements = v
@@ -107981,6 +107991,10 @@ type FleetLaunchTemplateOverridesRequest struct {
 	// The Availability Zone in which to launch the instances.
 	AvailabilityZone *string `type:"string"`
 
+	// The ID of the AMI. An AMI is required to launch an instance. The AMI ID must
+	// be specified here or in the launch template.
+	ImageId *string `type:"string"`
+
 	// The attributes for the instance types. When you specify instance attributes,
 	// Amazon EC2 will identify instance types with those attributes.
 	//
@@ -108069,6 +108083,12 @@ func (s *FleetLaunchTemplateOverridesRequest) SetAvailabilityZone(v string) *Fle
 	return s
 }
 
+// SetImageId sets the ImageId field's value.
+func (s *FleetLaunchTemplateOverridesRequest) SetImageId(v string) *FleetLaunchTemplateOverridesRequest {
+	s.ImageId = &v
+	return s
+}
+
 // SetInstanceRequirements sets the InstanceRequirements field's value.
 func (s *FleetLaunchTemplateOverridesRequest) SetInstanceRequirements(v *InstanceRequirementsRequest) *FleetLaunchTemplateOverridesRequest {
 	s.InstanceRequirements = v
@@ -170022,6 +170042,9 @@ const (
 
 	// InstanceTypeP4de24xlarge is a InstanceType enum value
 	InstanceTypeP4de24xlarge = "p4de.24xlarge"
+
+	// InstanceTypeU3tb156xlarge is a InstanceType enum value
+	InstanceTypeU3tb156xlarge = "u-3tb1.56xlarge"
 )
 
 // InstanceType_Values returns all elements of the InstanceType enum
@@ -170595,6 +170618,7 @@ func InstanceType_Values() []string {
 		InstanceTypeR6a48xlarge,
 		InstanceTypeR6aMetal,
 		InstanceTypeP4de24xlarge,
+		InstanceTypeU3tb156xlarge,
 	}
 }
 
diff --git a/vendor/modules.txt b/vendor/modules.txt
index 263c3b4a8..a70aea139 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -73,7 +73,7 @@ github.com/Microsoft/go-winio/pkg/guid
 github.com/VividCortex/ewma
 # github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d
 github.com/acarl005/stripansi
-# github.com/aws/aws-sdk-go v1.44.104
+# github.com/aws/aws-sdk-go v1.44.108
 ## explicit
 github.com/aws/aws-sdk-go/aws
 github.com/aws/aws-sdk-go/aws/arn


Test patch:
diff --git a/internal/store/store_test.go b/internal/store/store_test.go
index 8736551ce..96cd2fceb 100644
--- a/internal/store/store_test.go
+++ b/internal/store/store_test.go
@@ -23,8 +23,9 @@ type storeTest struct {
 	myStore          *Store
 	myCustomizations blueprint.Customizations
 	myBP             blueprint.Blueprint
-	CommitHash       string
-	myChange         blueprint.Change
+	myBPv3           blueprint.Blueprint
+	CommitHash       []string
+	myChange         []blueprint.Change
 	myTarget         *target.Target
 	mySources        map[string]osbuild.Source
 	myCompose        Compose
@@ -90,13 +91,34 @@ func (suite *storeTest) SetupSuite() {
 			{Name: "test3"}},
 		Customizations: &suite.myCustomizations,
 	}
-	suite.CommitHash = "firstCommit"
-	suite.myChange = blueprint.Change{
-		Commit:    "firstCommit",
-		Message:   "firstCommitMessage",
-		Revision:  nil,
-		Timestamp: "now",
-		Blueprint: suite.myBP,
+	suite.myBPv3 = blueprint.Blueprint{
+		Name:        "testBP",
+		Description: "Testing tagging testBP blueprint",
+		Version:     "3.0.0",
+		Packages: []blueprint.Package{
+			{Name: "test4", Version: "*"}},
+		Modules: []blueprint.Package{
+			{Name: "test5", Version: "*"}},
+		Groups: []blueprint.Group{
+			{Name: "test6"}},
+		Customizations: &suite.myCustomizations,
+	}
+	suite.CommitHash = []string{"firstCommit", "secondCommit"}
+	suite.myChange = []blueprint.Change{
+		blueprint.Change{
+			Commit:    "firstCommit",
+			Message:   "firstCommitMessage",
+			Revision:  nil,
+			Timestamp: "now",
+			Blueprint: suite.myBP,
+		},
+		blueprint.Change{
+			Commit:    "secondCommit",
+			Message:   "secondCommitMessage",
+			Revision:  nil,
+			Timestamp: "now",
+			Blueprint: suite.myBPv3,
+		},
 	}
 	suite.myTarget = &target.Target{
 		Uuid:      uuid.New(),
@@ -190,17 +212,18 @@ func (suite *storeTest) TestGetBlueprintChanges() {
 
 func (suite *storeTest) TestGetBlueprintChange() {
 	Commit := make(map[string]blueprint.Change)
-	Commit[suite.CommitHash] = suite.myChange
-	suite.myStore.blueprintsCommits["testBP"] = []string{suite.CommitHash}
+	Commit[suite.CommitHash[0]] = suite.myChange[0]
+	Commit[suite.CommitHash[1]] = suite.myChange[1]
+	suite.myStore.blueprintsCommits["testBP"] = suite.CommitHash
 	suite.myStore.blueprintsChanges["testBP"] = Commit
 
-	actualChange, err := suite.myStore.GetBlueprintChange("testBP", suite.CommitHash)
+	actualChange, err := suite.myStore.GetBlueprintChange("testBP", suite.CommitHash[0])
 	suite.NoError(err)
-	expectedChange := suite.myChange
+	expectedChange := suite.myChange[0]
 	suite.Equal(&expectedChange, actualChange)
 
 	//Try to get non existing BP
-	actualChange, err = suite.myStore.GetBlueprintChange("Non_existing_BP", suite.CommitHash)
+	actualChange, err = suite.myStore.GetBlueprintChange("Non_existing_BP", suite.CommitHash[0])
 	suite.Nil(actualChange)
 	suite.EqualError(err, "Unknown blueprint")
 
@@ -212,20 +235,44 @@ func (suite *storeTest) TestGetBlueprintChange() {
 
 func (suite *storeTest) TestTagBlueprint() {
 	Commit := make(map[string]blueprint.Change)
-	Commit[suite.CommitHash] = suite.myChange
-	suite.myStore.blueprints["testBP"] = suite.myBP
-	suite.myStore.blueprintsCommits["testBP"] = []string{suite.CommitHash}
+	Commit[suite.CommitHash[0]] = suite.myChange[0]
+	Commit[suite.CommitHash[1]] = suite.myChange[1]
+	suite.myStore.blueprintsCommits["testBP"] = suite.CommitHash
 	suite.myStore.blueprintsChanges["testBP"] = Commit
+	suite.myStore.blueprints["testBP"] = suite.myBPv3
+
+	//Check that the blueprint changes have no revisions
+	suite.Nil(suite.myStore.blueprintsChanges["testBP"][suite.CommitHash[0]].Revision)
+	suite.Nil(suite.myStore.blueprintsChanges["testBP"][suite.CommitHash[1]].Revision)
 
-	//Check that the blueprints change has no revision
-	suite.Nil(suite.myStore.blueprintsChanges["testBP"][suite.CommitHash].Revision)
+	// This should tag the most recent commit
 	suite.NoError(suite.myStore.TagBlueprint("testBP"))
-	//The blueprints change should have a revision now
-	actualRevision := suite.myStore.blueprintsChanges["testBP"][suite.CommitHash].Revision
+
+	actualRevision := suite.myStore.blueprintsChanges["testBP"][suite.CommitHash[0]].Revision
+	suite.Nil(actualRevision)
+
+	actualRevision = suite.myStore.blueprintsChanges["testBP"][suite.CommitHash[1]].Revision
+	suite.Require().NotNil(actualRevision)
 	suite.Equal(1, *actualRevision)
+
+	// Check the blueprints to make sure they have not been changed
+	actualBP := suite.myStore.blueprintsChanges["testBP"][suite.CommitHash[0]].Blueprint
+	suite.Equal(suite.myBP, actualBP)
+
+	actualBP = suite.myStore.blueprintsChanges["testBP"][suite.CommitHash[1]].Blueprint
+	suite.Equal(suite.myBPv3, actualBP)
+	suite.Equal(suite.myBPv3, suite.myStore.blueprints["testBP"])
+
 	//Try to tag it again (should not change)
 	suite.NoError(suite.myStore.TagBlueprint("testBP"))
+
+	actualRevision = suite.myStore.blueprintsChanges["testBP"][suite.CommitHash[0]].Revision
+	suite.Nil(actualRevision)
+
+	actualRevision = suite.myStore.blueprintsChanges["testBP"][suite.CommitHash[1]].Revision
+	suite.Require().NotNil(actualRevision)
 	suite.Equal(1, *actualRevision)
+
 	//Try to tag a non existing BNP
 	suite.EqualError(suite.myStore.TagBlueprint("Non_existing_BP"), "Unknown blueprint")
 	//Remove commits from a blueprint and try to tag it