diff --git a/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AmazonInstanceTypeCachingAgent.groovy b/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AmazonInstanceTypeCachingAgent.groovy deleted file mode 100644 index cac174a8360..00000000000 --- a/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AmazonInstanceTypeCachingAgent.groovy +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Copyright 2015 Netflix, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.netflix.spinnaker.clouddriver.aws.provider.agent - -import com.amazonaws.services.ec2.model.DescribeReservedInstancesOfferingsRequest -import com.amazonaws.services.ec2.model.ReservedInstancesOffering -import com.netflix.spinnaker.cats.agent.AccountAware -import com.netflix.spinnaker.cats.agent.AgentDataType -import com.netflix.spinnaker.cats.agent.CacheResult -import com.netflix.spinnaker.cats.agent.CachingAgent -import com.netflix.spinnaker.cats.agent.DefaultCacheResult -import com.netflix.spinnaker.cats.cache.CacheData -import com.netflix.spinnaker.cats.cache.DefaultCacheData -import com.netflix.spinnaker.cats.provider.ProviderCache -import com.netflix.spinnaker.clouddriver.aws.security.AmazonClientProvider -import com.netflix.spinnaker.clouddriver.aws.security.EddaTimeoutConfig -import com.netflix.spinnaker.clouddriver.aws.security.NetflixAmazonCredentials -import com.netflix.spinnaker.clouddriver.cache.CustomScheduledAgent -import com.netflix.spinnaker.clouddriver.aws.cache.Keys -import com.netflix.spinnaker.clouddriver.aws.provider.AwsInfrastructureProvider - -import java.util.concurrent.TimeUnit - -import static com.netflix.spinnaker.cats.agent.AgentDataType.Authority.AUTHORITATIVE -import static com.netflix.spinnaker.clouddriver.aws.cache.Keys.Namespace.INSTANCE_TYPES - -import groovy.util.logging.Slf4j - -@Slf4j -class AmazonInstanceTypeCachingAgent implements CachingAgent, CustomScheduledAgent, AccountAware { - - public static final long DEFAULT_POLL_INTERVAL_MILLIS = TimeUnit.HOURS.toMillis(2) - public static final long DEFAULT_TIMEOUT_MILLIS = TimeUnit.MINUTES.toMillis(15) - - final AmazonClientProvider amazonClientProvider - final NetflixAmazonCredentials account - final String region - final EddaTimeoutConfig eddaTimeoutConfig - - final long pollIntervalMillis - final long timeoutMillis - - static final Set types = Collections.unmodifiableSet([ - AUTHORITATIVE.forType(INSTANCE_TYPES.ns) - ] as Set) - - private static long getDefaultIfNonEdda(EddaTimeoutConfig eddaTimeoutConfig, String region, NetflixAmazonCredentials account, long defaultIfNonEdda) { - if (account.eddaEnabled && !eddaTimeoutConfig.disabledRegions.contains(region)) { - return -1 - } - return defaultIfNonEdda - } - - AmazonInstanceTypeCachingAgent(AmazonClientProvider amazonClientProvider, - NetflixAmazonCredentials account, - String region, - EddaTimeoutConfig eddaTimeoutConfig) { - this(amazonClientProvider, account, region, getDefaultIfNonEdda(eddaTimeoutConfig, region, account, DEFAULT_POLL_INTERVAL_MILLIS), getDefaultIfNonEdda(eddaTimeoutConfig, region, account, DEFAULT_TIMEOUT_MILLIS)) - } - - AmazonInstanceTypeCachingAgent(AmazonClientProvider amazonClientProvider, - NetflixAmazonCredentials account, - String region, - long pollIntervalMillis, - long timeoutMillis) { - this.amazonClientProvider = amazonClientProvider - this.account = account - this.region = region - this.pollIntervalMillis = pollIntervalMillis - this.timeoutMillis = timeoutMillis - } - - @Override - String getProviderName() { - AwsInfrastructureProvider.PROVIDER_NAME - } - - @Override - String getAgentType() { - "${account.name}/${region}/${AmazonInstanceTypeCachingAgent.simpleName}" - } - - @Override - String getAccountName() { - account.name - } - - @Override - Collection getProvidedDataTypes() { - return types - } - - @Override - CacheResult loadData(ProviderCache providerCache) { - log.info("Describing items in ${agentType}") - def ec2 = amazonClientProvider.getAmazonEC2(account, region) - List data = [] - def request = new DescribeReservedInstancesOfferingsRequest() - while (true) { - def offerings = ec2.describeReservedInstancesOfferings(request) - Set allIdentifiers = [] - data.addAll(offerings.reservedInstancesOfferings.findResults { ReservedInstancesOffering offering -> - String key = Keys.getInstanceTypeKey(offering.instanceType, region, account.name) - if (allIdentifiers.add(key)) { - new DefaultCacheData(Keys.getInstanceTypeKey(offering.instanceType, region, account.name), [ - account : account.name, - region : region, - name : offering.instanceType, - availabilityZone : null, - productDescription: null, - durationSeconds : null - ], - [:]) - } else { - null - } - }) - - if (offerings.nextToken) { - request.setNextToken(offerings.nextToken) - } else { - break - } - } - log.info("Caching ${data.size()} items in ${agentType}") - new DefaultCacheResult([(INSTANCE_TYPES.ns): data]) - } -} diff --git a/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AmazonInstanceTypeCachingAgent.java b/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AmazonInstanceTypeCachingAgent.java new file mode 100644 index 00000000000..fec70634bd8 --- /dev/null +++ b/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AmazonInstanceTypeCachingAgent.java @@ -0,0 +1,223 @@ +package com.netflix.spinnaker.clouddriver.aws.provider.agent; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.netflix.spinnaker.cats.agent.AgentDataType; +import com.netflix.spinnaker.cats.agent.CacheResult; +import com.netflix.spinnaker.cats.agent.CachingAgent; +import com.netflix.spinnaker.cats.agent.DefaultCacheResult; +import com.netflix.spinnaker.cats.cache.CacheData; +import com.netflix.spinnaker.cats.cache.DefaultCacheData; +import com.netflix.spinnaker.cats.cache.RelationshipCacheFilter; +import com.netflix.spinnaker.cats.provider.ProviderCache; +import com.netflix.spinnaker.clouddriver.aws.cache.Keys; +import com.netflix.spinnaker.clouddriver.aws.provider.AwsInfrastructureProvider; +import com.netflix.spinnaker.clouddriver.aws.security.AmazonCredentials; +import com.netflix.spinnaker.clouddriver.security.AccountCredentials; +import com.netflix.spinnaker.clouddriver.security.AccountCredentialsRepository; +import org.apache.http.*; +import org.apache.http.client.HttpClient; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpHead; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.util.EntityUtils; + +import java.io.IOException; +import java.io.InputStream; +import java.net.URI; +import java.util.*; +import java.util.stream.Collectors; + +public class AmazonInstanceTypeCachingAgent implements CachingAgent { + + private static final TypeReference> ATTRIBUTES + = new TypeReference>() {}; + + // https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonEC2/current/us-west-2/index.json + private final String region; + private final AccountCredentialsRepository accountCredentialsRepository; + private final URI pricingUri; + private final HttpHost pricingHost; + private final HttpClient httpClient; + private final ObjectMapper objectMapper = + new ObjectMapper().disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); + + + public AmazonInstanceTypeCachingAgent(String region, + AccountCredentialsRepository accountCredentialsRepository) { + this(region, accountCredentialsRepository, HttpClients.createDefault()); + } + + //VisibleForTesting + AmazonInstanceTypeCachingAgent(String region, + AccountCredentialsRepository accountCredentialsRepository, + HttpClient httpClient) { + this.region = region; + this.accountCredentialsRepository = accountCredentialsRepository; + pricingHost = HttpHost.create("https://pricing.us-east-1.amazonaws.com"); + pricingUri = URI.create("/offers/v1.0/aws/AmazonEC2/current/" + region + "/index.json"); + this.httpClient = httpClient; + } + + @Override + public Collection getProvidedDataTypes() { + return Collections.unmodifiableList( + Arrays.asList( + new AgentDataType( + Keys.Namespace.INSTANCE_TYPES.getNs(), AgentDataType.Authority.AUTHORITATIVE), + new AgentDataType( + getAgentType(), AgentDataType.Authority.AUTHORITATIVE))); + } + + @Override + public CacheResult loadData(ProviderCache providerCache) { + try { + Set matchingAccounts = accountCredentialsRepository.getAll() + .stream() + .filter(AmazonCredentials.class::isInstance) + .map(AmazonCredentials.class::cast) + .filter(ac -> ac.getRegions().stream().anyMatch(r -> region.equals(r.getName()))) + .map(AccountCredentials::getName) + .collect(Collectors.toSet()); + + if (matchingAccounts.isEmpty()) { + return new DefaultCacheResult(Collections.emptyMap()); + } + + CacheData metadata = providerCache.get( + getAgentType(), + "metadata", + RelationshipCacheFilter.none()); + MetadataAttributes metadataAttributes = null; + if (metadata != null) { + metadataAttributes = objectMapper.convertValue(metadata.getAttributes(), MetadataAttributes.class); + } + + Set instanceTypes = null; + if (metadataAttributes != null + && metadataAttributes.etag != null + && metadataAttributes.cachedInstanceTypes != null) { + + //we have enough from a previous request to not re-request if the etag is unchanged.. + HttpResponse headResponse = httpClient.execute(pricingHost, new HttpHead(pricingUri)); + EntityUtils.consumeQuietly(headResponse.getEntity()); + if (headResponse.getStatusLine().getStatusCode() != 200) { + throw new Exception("failed to read instance type metadata for " + region + ": " + + headResponse.getStatusLine().toString()); + } + + Optional etag = getEtagHeader(headResponse); + + if (etag.filter(metadataAttributes.etag::equals).isPresent()) { + instanceTypes = metadataAttributes.cachedInstanceTypes; + } + } + if (instanceTypes == null) { + HttpResponse getResponse = httpClient.execute(pricingHost, new HttpGet(pricingUri)); + if (getResponse.getStatusLine().getStatusCode() != 200) { + EntityUtils.consumeQuietly(getResponse.getEntity()); + throw new Exception("failed to read instance type data for " + region + ": " + + getResponse.getStatusLine().toString()); + } + Optional etag = getEtagHeader(getResponse); + HttpEntity entity = getResponse.getEntity(); + instanceTypes = fromStream(entity.getContent()); + EntityUtils.consumeQuietly(entity); + if (etag.isPresent()) { + metadataAttributes = new MetadataAttributes(); + metadataAttributes.etag = etag.get(); + metadataAttributes.cachedInstanceTypes = new HashSet<>(instanceTypes); + metadata = new DefaultCacheData( + "metadata", + objectMapper.convertValue(metadataAttributes, ATTRIBUTES), + Collections.emptyMap()); + } else { + metadata = null; + } + } + Map> evictions = new HashMap<>(); + Map> cacheResults = new HashMap<>(); + List instanceTypeData = new ArrayList<>(); + cacheResults.put(Keys.Namespace.INSTANCE_TYPES.getNs(), instanceTypeData); + if (metadata != null) { + cacheResults.put(getAgentType(), Collections.singleton(metadata)); + } else { + evictions.put(getAgentType(), Collections.singleton("metadata")); + } + + for (String instanceType : instanceTypes) { + for (String account : matchingAccounts) { + Map instanceTypeAttributes = new HashMap<>(); + instanceTypeAttributes.put("account", account); + instanceTypeAttributes.put("region", region); + instanceTypeAttributes.put("name", instanceType); + instanceTypeData.add( + new DefaultCacheData( + Keys.getInstanceTypeKey(instanceType, region, account), + instanceTypeAttributes, + Collections.emptyMap())); + } + } + + return new DefaultCacheResult(cacheResults, evictions); + } catch (Exception ex) { + throw new RuntimeException(ex); + } + } + + Optional getEtagHeader(HttpResponse response) { + return Optional.ofNullable(response) + .map(r -> r.getFirstHeader("ETag")) + .map(Header::getElements) + .filter(e -> e.length > 0) + .map(e -> e[0].getName()); + } + + @Override + public String getAgentType() { + return getClass().getSimpleName() + "/" + region; + } + + @Override + public String getProviderName() { + return AwsInfrastructureProvider.PROVIDER_NAME; + } + + static class Offering { + public String productFamily; + public ComputeInstanceAttributes attributes; + } + + static class ComputeInstanceAttributes { + public String instanceType; + + @Override + public String toString() { + return instanceType; + } + } + + static class Offerings { + public Map products; + } + + static class MetadataAttributes { + public String etag; + public Set cachedInstanceTypes; + } + + + //visible for testing + Set fromStream(InputStream is) throws IOException { + Offerings offerings = objectMapper.readValue(is, Offerings.class); + Set instanceTypes = offerings.products.values() + .stream() + .filter(o -> o.productFamily != null && o.productFamily.startsWith("Compute Instance")) + .map(o -> o.attributes.instanceType) + .filter(it -> it != null && !it.isEmpty()) + .collect(Collectors.toSet()); + + return instanceTypes; + } +} diff --git a/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/config/AwsInfrastructureProviderConfig.groovy b/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/config/AwsInfrastructureProviderConfig.groovy index a2a312bba3d..fc3fdf2f552 100644 --- a/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/config/AwsInfrastructureProviderConfig.groovy +++ b/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/config/AwsInfrastructureProviderConfig.groovy @@ -88,13 +88,17 @@ class AwsInfrastructureProviderConfig { def scheduledAccounts = ProviderUtils.getScheduledAccounts(awsInfrastructureProvider) def allAccounts = ProviderUtils.buildThreadSafeSetOfAccounts(accountCredentialsRepository, NetflixAmazonCredentials) + Set regions = new HashSet<>(); allAccounts.each { NetflixAmazonCredentials credentials -> for (AmazonCredentials.AWSRegion region : credentials.regions) { if (!scheduledAccounts.contains(credentials.name)) { def newlyAddedAgents = [] + if (regions.add(region.name)) { + newlyAddedAgents << new AmazonInstanceTypeCachingAgent(region.name, accountCredentialsRepository) + } + newlyAddedAgents << new AmazonElasticIpCachingAgent(amazonClientProvider, credentials, region.name) - newlyAddedAgents << new AmazonInstanceTypeCachingAgent(amazonClientProvider, credentials, region.name, eddaTimeoutConfig) newlyAddedAgents << new AmazonKeyPairCachingAgent(amazonClientProvider, credentials, region.name) newlyAddedAgents << new AmazonSecurityGroupCachingAgent(amazonClientProvider, credentials, region.name, amazonObjectMapper, registry, eddaTimeoutConfig) newlyAddedAgents << new AmazonSubnetCachingAgent(amazonClientProvider, credentials, region.name, amazonObjectMapper) diff --git a/clouddriver-aws/src/test/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AmazonInstanceTypeCachingAgentSpec.groovy b/clouddriver-aws/src/test/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AmazonInstanceTypeCachingAgentSpec.groovy index 6ac4cd29bb0..35cb2e90202 100644 --- a/clouddriver-aws/src/test/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AmazonInstanceTypeCachingAgentSpec.groovy +++ b/clouddriver-aws/src/test/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AmazonInstanceTypeCachingAgentSpec.groovy @@ -1,117 +1,183 @@ -/* - * Copyright 2015 Netflix, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - package com.netflix.spinnaker.clouddriver.aws.provider.agent -import com.amazonaws.services.ec2.AmazonEC2 -import com.amazonaws.services.ec2.model.DescribeReservedInstancesOfferingsRequest -import com.amazonaws.services.ec2.model.DescribeReservedInstancesOfferingsResult -import com.amazonaws.services.ec2.model.ReservedInstancesOffering +import com.netflix.spinnaker.cats.agent.CacheResult import com.netflix.spinnaker.cats.cache.CacheData +import com.netflix.spinnaker.cats.cache.DefaultCacheData +import com.netflix.spinnaker.cats.cache.RelationshipCacheFilter import com.netflix.spinnaker.cats.provider.ProviderCache -import com.netflix.spinnaker.clouddriver.aws.security.AmazonClientProvider -import com.netflix.spinnaker.clouddriver.aws.security.EddaTimeoutConfig -import com.netflix.spinnaker.clouddriver.aws.security.NetflixAmazonCredentials -import com.netflix.spinnaker.clouddriver.aws.cache.Keys +import com.netflix.spinnaker.clouddriver.aws.TestCredential +import com.netflix.spinnaker.clouddriver.security.AccountCredentialsRepository +import org.apache.http.HttpHost +import org.apache.http.ProtocolVersion +import org.apache.http.client.HttpClient +import org.apache.http.client.methods.HttpGet +import org.apache.http.client.methods.HttpHead +import org.apache.http.entity.BasicHttpEntity +import org.apache.http.message.BasicHttpResponse import spock.lang.Specification -import spock.lang.Subject class AmazonInstanceTypeCachingAgentSpec extends Specification { - static final String account = 'test' - static final String region = 'us-east-1' + static final Set TEST_DATA_SET_INSTANCE_TYPES = + ['d2.8xlarge', 'c5.xlarge', 'h1.2xlarge', 'c4.8xlarge', 'c3.large', 'i3.metal'] + + static final US_WEST_2_ACCT = TestCredential.named("test", + [regions: [ + [name: 'us-west-2', + availabilityZones: ['us-west-2a', 'us-west-2b', 'us-west-2c'] + ] + ]]) - AmazonEC2 ec2 = Mock(AmazonEC2) - AmazonClientProvider provider = Stub(AmazonClientProvider) { - getAmazonEC2(_, _) >> ec2 + AccountCredentialsRepository repo = Stub(AccountCredentialsRepository) { + getAll() >> [US_WEST_2_ACCT] } - NetflixAmazonCredentials creds = Stub(NetflixAmazonCredentials) { - getName() >> account + def httpClient = Mock(HttpClient) + def providerCache = Mock(ProviderCache) + + def "can deserialize response payload"() { + when: + def instanceTypes = getTestSubject().fromStream(cannedDataSet()) + + then: + instanceTypes == TEST_DATA_SET_INSTANCE_TYPES } - EddaTimeoutConfig eddaTimeoutConfig = new EddaTimeoutConfig.Builder().build() + def "noop if no matching accounts"() { + given: + def agent = getTestSubject('us-east-1') + + when: + def instanceTypes = agent.loadData(providerCache) - ProviderCache providerCache = Mock(ProviderCache) + then: + instanceTypes.cacheResults.isEmpty() + instanceTypes.evictions.isEmpty() + 0 * _ + } - @Subject - AmazonInstanceTypeCachingAgent agent = new AmazonInstanceTypeCachingAgent(provider, creds, region, eddaTimeoutConfig) + def "skip data load if etags match"() { + given: + def agent = getTestSubject() - void "should add to cache"() { when: - def result = agent.loadData(providerCache) - def expected = Keys.getInstanceTypeKey('m1', region, account) + def instanceTypes = agent.loadData(providerCache) then: - 1 * ec2.describeReservedInstancesOfferings(new DescribeReservedInstancesOfferingsRequest()) >> new DescribeReservedInstancesOfferingsResult( - reservedInstancesOfferings: [ - new ReservedInstancesOffering(reservedInstancesOfferingId: '1', instanceType: 'm1') - ] - ) - with (result.cacheResults.get(Keys.Namespace.INSTANCE_TYPES.ns)) { List cd -> - cd.size() == 1 - cd.find { it.id == expected } - } + 1 * providerCache.get(agent.getAgentType(), 'metadata', _ as RelationshipCacheFilter) >> + metadata('bacon', expectedTypes) + 1 * httpClient.execute(_ as HttpHost, _ as HttpHead) >> basicResponse('bacon') + instanceTypes.evictions.isEmpty() + metadataMatches(agent.agentType, instanceTypes, 'bacon', expectedTypes) + instanceTypesMatch(instanceTypes, expectedTypes) 0 * _ + + where: + expectedTypes = ['m1.megabig', 't2.arnold'] } - void "should dedupe instance types"() { + def "load data if no metadata"() { + given: + def agent = getTestSubject() + when: - def result = agent.loadData(providerCache) - def expected = Keys.getInstanceTypeKey('m1', region, account) + def instanceTypes = agent.loadData(providerCache) then: - 1 * ec2.describeReservedInstancesOfferings(new DescribeReservedInstancesOfferingsRequest()) >> new DescribeReservedInstancesOfferingsResult( - reservedInstancesOfferings: [ - new ReservedInstancesOffering(reservedInstancesOfferingId: '1', instanceType: 'm1'), - new ReservedInstancesOffering(reservedInstancesOfferingId: '2', instanceType: 'm1'), - ] - ) - with (result.cacheResults.get(Keys.Namespace.INSTANCE_TYPES.ns)) { List cd -> - cd.size() == 1 - cd.find { it.id == expected } - } + 1 * providerCache.get(agent.getAgentType(), 'metadata', _ as RelationshipCacheFilter) >> null + 1 * httpClient.execute(_ as HttpHost, _ as HttpGet) >> getResponse('baloney') + + instanceTypes.evictions.isEmpty() + metadataMatches(agent.agentType, instanceTypes, 'baloney', TEST_DATA_SET_INSTANCE_TYPES) + instanceTypesMatch(instanceTypes, TEST_DATA_SET_INSTANCE_TYPES) 0 * _ } - void "should add all from paged results"() { + def "load data if metadata mismatch"() { + given: + def agent = getTestSubject() + when: - def result = agent.loadData(providerCache) + def instanceTypes = agent.loadData(providerCache) then: - 1 * ec2.describeReservedInstancesOfferings(new DescribeReservedInstancesOfferingsRequest()) >> new DescribeReservedInstancesOfferingsResult( - reservedInstancesOfferings: [ - new ReservedInstancesOffering(reservedInstancesOfferingId: '1', instanceType: 'm1'), - new ReservedInstancesOffering(reservedInstancesOfferingId: '2', instanceType: 'm2') - ], - nextToken: 'moar' - ) - 1 * ec2.describeReservedInstancesOfferings(new DescribeReservedInstancesOfferingsRequest(nextToken: 'moar')) >> new DescribeReservedInstancesOfferingsResult( - reservedInstancesOfferings: [ - new ReservedInstancesOffering(reservedInstancesOfferingId: '3', instanceType: 'm3') - ] - ) + 1 * providerCache.get(agent.getAgentType(), 'metadata', _ as RelationshipCacheFilter) >> + metadata('mustard', ['t7.shouldntmatter']) + 1 * httpClient.execute(_ as HttpHost, _ as HttpHead) >> basicResponse('baloney') + 1 * httpClient.execute(_ as HttpHost, _ as HttpGet) >> getResponse('baloney') + + instanceTypes.evictions.isEmpty() + metadataMatches(agent.agentType, instanceTypes, 'baloney', TEST_DATA_SET_INSTANCE_TYPES) + instanceTypesMatch(instanceTypes, TEST_DATA_SET_INSTANCE_TYPES) + 0 * _ + } - with (result.cacheResults.get(Keys.Namespace.INSTANCE_TYPES.ns)) { List cd -> - cd.size() == 3 - cd.find { it.id == Keys.getInstanceTypeKey('m1', region, account) } - cd.find { it.id == Keys.getInstanceTypeKey('m2', region, account) } - cd.find { it.id == Keys.getInstanceTypeKey('m3', region, account) } - } + def "evict metadata if no etag"() { + given: + def agent = getTestSubject() + + when: + def instanceTypes = agent.loadData(providerCache) + + then: + 1 * providerCache.get(agent.getAgentType(), 'metadata', _ as RelationshipCacheFilter) >> null + 1 * httpClient.execute(_ as HttpHost, _ as HttpGet) >> getResponse(null) + + instanceTypes.evictions.get(agent.agentType).head() == 'metadata' + !instanceTypes.cacheResults.get(agent.agentType) + instanceTypesMatch(instanceTypes, TEST_DATA_SET_INSTANCE_TYPES) 0 * _ + + } + + CacheData metadata(String etag, Collection instanceTypes) { + new DefaultCacheData('metadata', [etag: etag, cachedInstanceTypes: instanceTypes], [:]) + + } + + boolean metadataMatches(String agentType, + CacheResult result, + String expectedEtag, + Collection expectedTypes) { + def meta = result?.cacheResults?.get(agentType)?.head() + if (!meta) { + return false + } + meta.id == 'metadata' && + meta.attributes.etag == expectedEtag && + meta.attributes.cachedInstanceTypes as Set == expectedTypes as Set + } + + boolean instanceTypesMatch(CacheResult result, Collection expectedTypes) { + result?.cacheResults?.instanceTypes?.collect { it.id } as Set == + expectedTypes.collect { "aws:instanceTypes:$it:test:us-west-2".toString() } as Set + } + + BasicHttpResponse basicResponse(String etag, int statusCode = 200) { + def r = new BasicHttpResponse( + new ProtocolVersion('HTTP', 1, 1), + statusCode, + 'because reasons') + if (etag) { + r.setHeader("ETag", etag) + } + return r + } + + BasicHttpResponse getResponse(String etag) { + def r = basicResponse(etag) + def e = new BasicHttpEntity() + e.setContent(cannedDataSet()) + r.setEntity(e) + return r + } + + InputStream cannedDataSet() { + getClass().getResourceAsStream("us-west-2.json") + } + + AmazonInstanceTypeCachingAgent getTestSubject(String region = 'us-west-2') { + return new AmazonInstanceTypeCachingAgent(region, repo, httpClient) } } diff --git a/clouddriver-aws/src/test/resources/com/netflix/spinnaker/clouddriver/aws/provider/agent/us-west-2.json b/clouddriver-aws/src/test/resources/com/netflix/spinnaker/clouddriver/aws/provider/agent/us-west-2.json new file mode 100644 index 00000000000..3e97297e4f7 --- /dev/null +++ b/clouddriver-aws/src/test/resources/com/netflix/spinnaker/clouddriver/aws/provider/agent/us-west-2.json @@ -0,0 +1,3424 @@ +{ + "formatVersion": "v1.0", + "disclaimer": "This pricing list is for informational purposes only. All prices are subject to the additional terms included in the pricing pages on http://aws.amazon.com. All Free Tier prices are also subject to the terms included at https://aws.amazon.com/free/", + "offerCode": "AmazonEC2", + "version": "20180504231021", + "publicationDate": "2018-05-04T23:10:21Z", + "products": { + "7UU97PUEUDTUMDMP": { + "sku": "7UU97PUEUDTUMDMP", + "productFamily": "Compute Instance (bare metal)", + "attributes": { + "servicecode": "AmazonEC2", + "location": "US West (Oregon)", + "locationType": "AWS Region", + "instanceType": "i3.metal", + "instanceFamily": "Storage optimized", + "vcpu": "72", + "physicalProcessor": "Intel Xeon E5-2686 v4 (Broadwell)", + "memory": "512 GiB", + "storage": "8 x 1900 NVMe SSD", + "networkPerformance": "25 Gigabit", + "processorArchitecture": "64-bit", + "tenancy": "Host", + "operatingSystem": "Windows", + "licenseModel": "No License required", + "usagetype": "USW2-HostBoxUsage:i3.metal", + "operation": "RunInstances:0102", + "capacitystatus": "Used", + "ecu": "208", + "normalizationSizeFactor": "128", + "preInstalledSw": "SQL Ent", + "servicename": "Amazon Elastic Compute Cloud" + } + }, + "UKW7HJKYC386VDWE": { + "sku": "UKW7HJKYC386VDWE", + "productFamily": "Compute Instance", + "attributes": { + "servicecode": "AmazonEC2", + "location": "US West (Oregon)", + "locationType": "AWS Region", + "instanceType": "c5.xlarge", + "currentGeneration": "Yes", + "instanceFamily": "Compute optimized", + "vcpu": "4", + "physicalProcessor": "Intel Xeon Platinum 8124M", + "clockSpeed": "3.0 Ghz", + "memory": "8 GiB", + "storage": "EBS only", + "networkPerformance": "Up to 10 Gigabit", + "processorArchitecture": "64-bit", + "tenancy": "Shared", + "operatingSystem": "Windows", + "licenseModel": "No License required", + "usagetype": "USW2-BoxUsage:c5.xlarge", + "operation": "RunInstances:0202", + "capacitystatus": "Used", + "dedicatedEbsThroughput": "Upto 2250 Mbps", + "ecu": "16", + "enhancedNetworkingSupported": "Yes", + "normalizationSizeFactor": "8", + "preInstalledSw": "SQL Web", + "processorFeatures": "Intel AVX, Intel AVX2, Intel AVX512, Intel Turbo", + "servicename": "Amazon Elastic Compute Cloud" + } + }, + "4MT3SBFE9CPY5M43": { + "sku": "4MT3SBFE9CPY5M43", + "productFamily": "Data Transfer", + "attributes": { + "servicecode": "AWSDataTransfer", + "transferType": "Accelerated InterRegion Inbound using edge locations within US, Europe or Japan", + "fromLocation": "US West (Oregon)", + "fromLocationType": "AWS Region", + "toLocation": "Asia Pacific (Osaka-Local)", + "toLocationType": "AWS Region", + "usagetype": "USW2-APN3-AWS-In-ABytes-T1", + "operation": "", + "servicename": "AWS Data Transfer" + } + }, + "866ZGRHEVQD56AR2": { + "sku": "866ZGRHEVQD56AR2", + "productFamily": "Compute Instance", + "attributes": { + "servicecode": "AmazonEC2", + "location": "US West (Oregon)", + "locationType": "AWS Region", + "instanceType": "d2.8xlarge", + "currentGeneration": "Yes", + "instanceFamily": "Storage optimized", + "vcpu": "36", + "physicalProcessor": "Intel Xeon E5-2676v3 (Haswell)", + "clockSpeed": "2.4 GHz", + "memory": "244 GiB", + "storage": "24 x 2000 HDD", + "networkPerformance": "10 Gigabit", + "processorArchitecture": "64-bit", + "tenancy": "Host", + "operatingSystem": "Windows", + "licenseModel": "Bring your own license", + "usagetype": "USW2-HostBoxUsage:d2.8xlarge", + "operation": "RunInstances:0800", + "capacitystatus": "Used", + "ecu": "116", + "enhancedNetworkingSupported": "Yes", + "normalizationSizeFactor": "64", + "preInstalledSw": "NA", + "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo", + "servicename": "Amazon Elastic Compute Cloud" + } + }, + "MSRQHFU7JT8DRZ4A": { + "sku": "MSRQHFU7JT8DRZ4A", + "productFamily": "Compute Instance", + "attributes": { + "servicecode": "AmazonEC2", + "location": "US West (Oregon)", + "locationType": "AWS Region", + "instanceType": "h1.2xlarge", + "currentGeneration": "Yes", + "instanceFamily": "Storage optimized", + "vcpu": "8", + "physicalProcessor": "Intel Xeon E5-2686 v4 (Broadwell)", + "clockSpeed": "2.3 GHz", + "memory": "32 GiB", + "storage": "1 x 2000 HDD", + "networkPerformance": "Up to 10 Gigabit", + "processorArchitecture": "64-bit", + "tenancy": "Dedicated", + "operatingSystem": "Linux", + "licenseModel": "No License required", + "usagetype": "USW2-DedicatedUsage:h1.2xlarge", + "operation": "RunInstances:0100", + "capacitystatus": "Used", + "dedicatedEbsThroughput": "1600 Mbps", + "ecu": "26", + "enhancedNetworkingSupported": "Yes", + "normalizationSizeFactor": "16", + "preInstalledSw": "SQL Ent", + "processorFeatures": "Intel AVX, Intel AVX2, Intel Turbo", + "servicename": "Amazon Elastic Compute Cloud" + } + }, + "E58UVF498EG758MS": { + "sku": "E58UVF498EG758MS", + "productFamily": "Compute Instance", + "attributes": { + "servicecode": "AmazonEC2", + "location": "US West (Oregon)", + "locationType": "AWS Region", + "instanceType": "c4.8xlarge", + "currentGeneration": "Yes", + "instanceFamily": "Compute optimized", + "vcpu": "36", + "physicalProcessor": "Intel Xeon E5-2666 v3 (Haswell)", + "clockSpeed": "2.9 GHz", + "memory": "60 GiB", + "storage": "EBS only", + "networkPerformance": "10 Gigabit", + "processorArchitecture": "64-bit", + "tenancy": "Shared", + "operatingSystem": "Windows", + "licenseModel": "No License required", + "usagetype": "USW2-BoxUsage:c4.8xlarge", + "operation": "RunInstances:0102", + "capacitystatus": "Used", + "dedicatedEbsThroughput": "4000 Mbps", + "ecu": "132", + "enhancedNetworkingSupported": "Yes", + "normalizationSizeFactor": "64", + "preInstalledSw": "SQL Ent", + "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo", + "servicename": "Amazon Elastic Compute Cloud" + } + }, + "9DD7W8QPV2GVTFTQ": { + "sku": "9DD7W8QPV2GVTFTQ", + "productFamily": "Compute Instance", + "attributes": { + "servicecode": "AmazonEC2", + "location": "US West (Oregon)", + "locationType": "AWS Region", + "instanceType": "c3.large", + "currentGeneration": "No", + "instanceFamily": "Compute optimized", + "vcpu": "2", + "physicalProcessor": "Intel Xeon E5-2680 v2 (Ivy Bridge)", + "clockSpeed": "2.8 GHz", + "memory": "3.75 GiB", + "storage": "2 x 16 SSD", + "networkPerformance": "Moderate", + "processorArchitecture": "32-bit or 64-bit", + "tenancy": "Dedicated", + "operatingSystem": "Linux", + "licenseModel": "No License required", + "usagetype": "USW2-DedicatedUsage:c3.large", + "operation": "RunInstances:0004", + "capacitystatus": "Used", + "ecu": "7", + "enhancedNetworkingSupported": "Yes", + "normalizationSizeFactor": "4", + "preInstalledSw": "SQL Std", + "processorFeatures": "Intel AVX; Intel Turbo", + "servicename": "Amazon Elastic Compute Cloud" + } + } + }, + "terms": { + "OnDemand": { + "UV6A7R6ERTZN75MS": { + "UV6A7R6ERTZN75MS.JRTCKXETXF": { + "offerTermCode": "JRTCKXETXF", + "sku": "UV6A7R6ERTZN75MS", + "effectiveDate": "2018-05-01T00:00:00Z", + "priceDimensions": { + "UV6A7R6ERTZN75MS.JRTCKXETXF.6YS6EN2CT7": { + "rateCode": "UV6A7R6ERTZN75MS.JRTCKXETXF.6YS6EN2CT7", + "description": "$0.000 per Linux m3.2xlarge Dedicated Host Instance hour", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": {} + } + }, + "MT6MMH2UH9E8Z4JG": { + "MT6MMH2UH9E8Z4JG.JRTCKXETXF": { + "offerTermCode": "JRTCKXETXF", + "sku": "MT6MMH2UH9E8Z4JG", + "effectiveDate": "2018-05-01T00:00:00Z", + "priceDimensions": { + "MT6MMH2UH9E8Z4JG.JRTCKXETXF.6YS6EN2CT7": { + "rateCode": "MT6MMH2UH9E8Z4JG.JRTCKXETXF.6YS6EN2CT7", + "description": "$0.00 per Linux with SQL Std c5.2xlarge Dedicated Host Instance hour", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": {} + } + } + }, + "Reserved": { + "PYDH5P62F8KBF85B": { + "PYDH5P62F8KBF85B.HU7G6KETJZ": { + "offerTermCode": "HU7G6KETJZ", + "sku": "PYDH5P62F8KBF85B", + "effectiveDate": "2016-11-30T23:59:59Z", + "priceDimensions": { + "PYDH5P62F8KBF85B.HU7G6KETJZ.2TG2D8R56U": { + "rateCode": "PYDH5P62F8KBF85B.HU7G6KETJZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "31962" + }, + "appliesTo": [] + }, + "PYDH5P62F8KBF85B.HU7G6KETJZ.6YS6EN2CT7": { + "rateCode": "PYDH5P62F8KBF85B.HU7G6KETJZ.6YS6EN2CT7", + "description": "Windows with SQL Server Enterprise (Amazon VPC), c4.4xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "3.6490000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "PYDH5P62F8KBF85B.6QCMYABX3D": { + "offerTermCode": "6QCMYABX3D", + "sku": "PYDH5P62F8KBF85B", + "effectiveDate": "2016-10-31T23:59:59Z", + "priceDimensions": { + "PYDH5P62F8KBF85B.6QCMYABX3D.2TG2D8R56U": { + "rateCode": "PYDH5P62F8KBF85B.6QCMYABX3D.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "63826" + }, + "appliesTo": [] + }, + "PYDH5P62F8KBF85B.6QCMYABX3D.6YS6EN2CT7": { + "rateCode": "PYDH5P62F8KBF85B.6QCMYABX3D.6YS6EN2CT7", + "description": "USD 0.0 per Windows with SQL Server Enterprise (Amazon VPC), c4.4xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "PYDH5P62F8KBF85B.4NA7Y494T4": { + "offerTermCode": "4NA7Y494T4", + "sku": "PYDH5P62F8KBF85B", + "effectiveDate": "2017-04-30T23:59:59Z", + "priceDimensions": { + "PYDH5P62F8KBF85B.4NA7Y494T4.6YS6EN2CT7": { + "rateCode": "PYDH5P62F8KBF85B.4NA7Y494T4.6YS6EN2CT7", + "description": "Windows with SQL Server Enterprise (Amazon VPC), c4.4xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "7.2900000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "No Upfront" + } + }, + "PYDH5P62F8KBF85B.Z2E3P23VKM": { + "offerTermCode": "Z2E3P23VKM", + "sku": "PYDH5P62F8KBF85B", + "effectiveDate": "2017-04-30T23:59:59Z", + "priceDimensions": { + "PYDH5P62F8KBF85B.Z2E3P23VKM.6YS6EN2CT7": { + "rateCode": "PYDH5P62F8KBF85B.Z2E3P23VKM.6YS6EN2CT7", + "description": "Windows with SQL Server Enterprise (Amazon VPC), c4.4xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "7.1840000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "No Upfront" + } + }, + "PYDH5P62F8KBF85B.38NPMPTW36": { + "offerTermCode": "38NPMPTW36", + "sku": "PYDH5P62F8KBF85B", + "effectiveDate": "2016-10-31T23:59:59Z", + "priceDimensions": { + "PYDH5P62F8KBF85B.38NPMPTW36.2TG2D8R56U": { + "rateCode": "PYDH5P62F8KBF85B.38NPMPTW36.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "93283" + }, + "appliesTo": [] + }, + "PYDH5P62F8KBF85B.38NPMPTW36.6YS6EN2CT7": { + "rateCode": "PYDH5P62F8KBF85B.38NPMPTW36.6YS6EN2CT7", + "description": "Windows with SQL Server Enterprise (Amazon VPC), c4.4xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "3.5500000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "PYDH5P62F8KBF85B.MZU6U2429S": { + "offerTermCode": "MZU6U2429S", + "sku": "PYDH5P62F8KBF85B", + "effectiveDate": "2017-04-30T23:59:59Z", + "priceDimensions": { + "PYDH5P62F8KBF85B.MZU6U2429S.2TG2D8R56U": { + "rateCode": "PYDH5P62F8KBF85B.MZU6U2429S.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "187708" + }, + "appliesTo": [] + }, + "PYDH5P62F8KBF85B.MZU6U2429S.6YS6EN2CT7": { + "rateCode": "PYDH5P62F8KBF85B.MZU6U2429S.6YS6EN2CT7", + "description": "USD 0.0 per Windows with SQL Server Enterprise (Amazon VPC), c4.4xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "All Upfront" + } + }, + "PYDH5P62F8KBF85B.NQ3QZPMQV9": { + "offerTermCode": "NQ3QZPMQV9", + "sku": "PYDH5P62F8KBF85B", + "effectiveDate": "2016-11-30T23:59:59Z", + "priceDimensions": { + "PYDH5P62F8KBF85B.NQ3QZPMQV9.6YS6EN2CT7": { + "rateCode": "PYDH5P62F8KBF85B.NQ3QZPMQV9.6YS6EN2CT7", + "description": "USD 0.0 per Windows with SQL Server Enterprise (Amazon VPC), c4.4xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + }, + "PYDH5P62F8KBF85B.NQ3QZPMQV9.2TG2D8R56U": { + "rateCode": "PYDH5P62F8KBF85B.NQ3QZPMQV9.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "185993" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "PYDH5P62F8KBF85B.R5XV2EPZQZ": { + "offerTermCode": "R5XV2EPZQZ", + "sku": "PYDH5P62F8KBF85B", + "effectiveDate": "2017-04-30T23:59:59Z", + "priceDimensions": { + "PYDH5P62F8KBF85B.R5XV2EPZQZ.6YS6EN2CT7": { + "rateCode": "PYDH5P62F8KBF85B.R5XV2EPZQZ.6YS6EN2CT7", + "description": "Windows with SQL Server Enterprise (Amazon VPC), c4.4xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "3.5750000000" + }, + "appliesTo": [] + }, + "PYDH5P62F8KBF85B.R5XV2EPZQZ.2TG2D8R56U": { + "rateCode": "PYDH5P62F8KBF85B.R5XV2EPZQZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "93963" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "Partial Upfront" + } + }, + "PYDH5P62F8KBF85B.BPH4J8HBKS": { + "offerTermCode": "BPH4J8HBKS", + "sku": "PYDH5P62F8KBF85B", + "effectiveDate": "2017-04-30T23:59:59Z", + "priceDimensions": { + "PYDH5P62F8KBF85B.BPH4J8HBKS.6YS6EN2CT7": { + "rateCode": "PYDH5P62F8KBF85B.BPH4J8HBKS.6YS6EN2CT7", + "description": "Windows with SQL Server Enterprise (Amazon VPC), c4.4xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "7.1260000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "No Upfront" + } + }, + "PYDH5P62F8KBF85B.VJWZNREJX2": { + "offerTermCode": "VJWZNREJX2", + "sku": "PYDH5P62F8KBF85B", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "PYDH5P62F8KBF85B.VJWZNREJX2.2TG2D8R56U": { + "rateCode": "PYDH5P62F8KBF85B.VJWZNREJX2.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "64220" + }, + "appliesTo": [] + }, + "PYDH5P62F8KBF85B.VJWZNREJX2.6YS6EN2CT7": { + "rateCode": "PYDH5P62F8KBF85B.VJWZNREJX2.6YS6EN2CT7", + "description": "Windows with SQL Server Enterprise (Amazon VPC), c4.4xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "All Upfront" + } + }, + "PYDH5P62F8KBF85B.CUZHX8X6JH": { + "offerTermCode": "CUZHX8X6JH", + "sku": "PYDH5P62F8KBF85B", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "PYDH5P62F8KBF85B.CUZHX8X6JH.2TG2D8R56U": { + "rateCode": "PYDH5P62F8KBF85B.CUZHX8X6JH.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "32163" + }, + "appliesTo": [] + }, + "PYDH5P62F8KBF85B.CUZHX8X6JH.6YS6EN2CT7": { + "rateCode": "PYDH5P62F8KBF85B.CUZHX8X6JH.6YS6EN2CT7", + "description": "Windows with SQL Server Enterprise (Amazon VPC), c4.4xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "3.6720000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "Partial Upfront" + } + }, + "PYDH5P62F8KBF85B.7NE97W5U4E": { + "offerTermCode": "7NE97W5U4E", + "sku": "PYDH5P62F8KBF85B", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "PYDH5P62F8KBF85B.7NE97W5U4E.6YS6EN2CT7": { + "rateCode": "PYDH5P62F8KBF85B.7NE97W5U4E.6YS6EN2CT7", + "description": "Windows with SQL Server Enterprise (Amazon VPC), c4.4xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "7.3740000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "No Upfront" + } + } + }, + "GCK6AV8WDUTNG5F9": { + "GCK6AV8WDUTNG5F9.7NE97W5U4E": { + "offerTermCode": "7NE97W5U4E", + "sku": "GCK6AV8WDUTNG5F9", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "GCK6AV8WDUTNG5F9.7NE97W5U4E.6YS6EN2CT7": { + "rateCode": "GCK6AV8WDUTNG5F9.7NE97W5U4E.6YS6EN2CT7", + "description": "Linux with SQL Server Enterprise (Amazon VPC), c3.2xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "3.3050000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "No Upfront" + } + }, + "GCK6AV8WDUTNG5F9.4NA7Y494T4": { + "offerTermCode": "4NA7Y494T4", + "sku": "GCK6AV8WDUTNG5F9", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "GCK6AV8WDUTNG5F9.4NA7Y494T4.6YS6EN2CT7": { + "rateCode": "GCK6AV8WDUTNG5F9.4NA7Y494T4.6YS6EN2CT7", + "description": "Linux with SQL Server Enterprise (Amazon VPC), c3.2xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "3.2650000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "No Upfront" + } + }, + "GCK6AV8WDUTNG5F9.CUZHX8X6JH": { + "offerTermCode": "CUZHX8X6JH", + "sku": "GCK6AV8WDUTNG5F9", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "GCK6AV8WDUTNG5F9.CUZHX8X6JH.2TG2D8R56U": { + "rateCode": "GCK6AV8WDUTNG5F9.CUZHX8X6JH.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "14413" + }, + "appliesTo": [] + }, + "GCK6AV8WDUTNG5F9.CUZHX8X6JH.6YS6EN2CT7": { + "rateCode": "GCK6AV8WDUTNG5F9.CUZHX8X6JH.6YS6EN2CT7", + "description": "Linux with SQL Server Enterprise (Amazon VPC), c3.2xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "1.6450000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "Partial Upfront" + } + }, + "GCK6AV8WDUTNG5F9.VJWZNREJX2": { + "offerTermCode": "VJWZNREJX2", + "sku": "GCK6AV8WDUTNG5F9", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "GCK6AV8WDUTNG5F9.VJWZNREJX2.6YS6EN2CT7": { + "rateCode": "GCK6AV8WDUTNG5F9.VJWZNREJX2.6YS6EN2CT7", + "description": "Linux with SQL Server Enterprise (Amazon VPC), c3.2xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + }, + "GCK6AV8WDUTNG5F9.VJWZNREJX2.2TG2D8R56U": { + "rateCode": "GCK6AV8WDUTNG5F9.VJWZNREJX2.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "28776" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "All Upfront" + } + }, + "GCK6AV8WDUTNG5F9.NQ3QZPMQV9": { + "offerTermCode": "NQ3QZPMQV9", + "sku": "GCK6AV8WDUTNG5F9", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "GCK6AV8WDUTNG5F9.NQ3QZPMQV9.2TG2D8R56U": { + "rateCode": "GCK6AV8WDUTNG5F9.NQ3QZPMQV9.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "82972" + }, + "appliesTo": [] + }, + "GCK6AV8WDUTNG5F9.NQ3QZPMQV9.6YS6EN2CT7": { + "rateCode": "GCK6AV8WDUTNG5F9.NQ3QZPMQV9.6YS6EN2CT7", + "description": "Linux with SQL Server Enterprise (Amazon VPC), c3.2xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "GCK6AV8WDUTNG5F9.MZU6U2429S": { + "offerTermCode": "MZU6U2429S", + "sku": "GCK6AV8WDUTNG5F9", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "GCK6AV8WDUTNG5F9.MZU6U2429S.2TG2D8R56U": { + "rateCode": "GCK6AV8WDUTNG5F9.MZU6U2429S.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "84712" + }, + "appliesTo": [] + }, + "GCK6AV8WDUTNG5F9.MZU6U2429S.6YS6EN2CT7": { + "rateCode": "GCK6AV8WDUTNG5F9.MZU6U2429S.6YS6EN2CT7", + "description": "Linux with SQL Server Enterprise (Amazon VPC), c3.2xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "All Upfront" + } + }, + "GCK6AV8WDUTNG5F9.HU7G6KETJZ": { + "offerTermCode": "HU7G6KETJZ", + "sku": "GCK6AV8WDUTNG5F9", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "GCK6AV8WDUTNG5F9.HU7G6KETJZ.6YS6EN2CT7": { + "rateCode": "GCK6AV8WDUTNG5F9.HU7G6KETJZ.6YS6EN2CT7", + "description": "Linux with SQL Server Enterprise (Amazon VPC), c3.2xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "1.6260000000" + }, + "appliesTo": [] + }, + "GCK6AV8WDUTNG5F9.HU7G6KETJZ.2TG2D8R56U": { + "rateCode": "GCK6AV8WDUTNG5F9.HU7G6KETJZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "14247" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "GCK6AV8WDUTNG5F9.38NPMPTW36": { + "offerTermCode": "38NPMPTW36", + "sku": "GCK6AV8WDUTNG5F9", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "GCK6AV8WDUTNG5F9.38NPMPTW36.2TG2D8R56U": { + "rateCode": "GCK6AV8WDUTNG5F9.38NPMPTW36.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "41618" + }, + "appliesTo": [] + }, + "GCK6AV8WDUTNG5F9.38NPMPTW36.6YS6EN2CT7": { + "rateCode": "GCK6AV8WDUTNG5F9.38NPMPTW36.6YS6EN2CT7", + "description": "Linux with SQL Server Enterprise (Amazon VPC), c3.2xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "1.5840000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "GCK6AV8WDUTNG5F9.R5XV2EPZQZ": { + "offerTermCode": "R5XV2EPZQZ", + "sku": "GCK6AV8WDUTNG5F9", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "GCK6AV8WDUTNG5F9.R5XV2EPZQZ.2TG2D8R56U": { + "rateCode": "GCK6AV8WDUTNG5F9.R5XV2EPZQZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "42416" + }, + "appliesTo": [] + }, + "GCK6AV8WDUTNG5F9.R5XV2EPZQZ.6YS6EN2CT7": { + "rateCode": "GCK6AV8WDUTNG5F9.R5XV2EPZQZ.6YS6EN2CT7", + "description": "Linux with SQL Server Enterprise (Amazon VPC), c3.2xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "1.6140000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "Partial Upfront" + } + }, + "GCK6AV8WDUTNG5F9.6QCMYABX3D": { + "offerTermCode": "6QCMYABX3D", + "sku": "GCK6AV8WDUTNG5F9", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "GCK6AV8WDUTNG5F9.6QCMYABX3D.2TG2D8R56U": { + "rateCode": "GCK6AV8WDUTNG5F9.6QCMYABX3D.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "28450" + }, + "appliesTo": [] + }, + "GCK6AV8WDUTNG5F9.6QCMYABX3D.6YS6EN2CT7": { + "rateCode": "GCK6AV8WDUTNG5F9.6QCMYABX3D.6YS6EN2CT7", + "description": "Linux with SQL Server Enterprise (Amazon VPC), c3.2xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "GCK6AV8WDUTNG5F9.Z2E3P23VKM": { + "offerTermCode": "Z2E3P23VKM", + "sku": "GCK6AV8WDUTNG5F9", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "GCK6AV8WDUTNG5F9.Z2E3P23VKM.6YS6EN2CT7": { + "rateCode": "GCK6AV8WDUTNG5F9.Z2E3P23VKM.6YS6EN2CT7", + "description": "Linux with SQL Server Enterprise (Amazon VPC), c3.2xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "3.2460000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "No Upfront" + } + } + }, + "FMP7XZXJZ9WQKSYH": { + "FMP7XZXJZ9WQKSYH.38NPMPTW36": { + "offerTermCode": "38NPMPTW36", + "sku": "FMP7XZXJZ9WQKSYH", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "FMP7XZXJZ9WQKSYH.38NPMPTW36.2TG2D8R56U": { + "rateCode": "FMP7XZXJZ9WQKSYH.38NPMPTW36.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "22472" + }, + "appliesTo": [] + }, + "FMP7XZXJZ9WQKSYH.38NPMPTW36.6YS6EN2CT7": { + "rateCode": "FMP7XZXJZ9WQKSYH.38NPMPTW36.6YS6EN2CT7", + "description": "Windows with SQL Server Web (Amazon VPC), c3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "1.2830000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "FMP7XZXJZ9WQKSYH.4NA7Y494T4": { + "offerTermCode": "4NA7Y494T4", + "sku": "FMP7XZXJZ9WQKSYH", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "FMP7XZXJZ9WQKSYH.4NA7Y494T4.6YS6EN2CT7": { + "rateCode": "FMP7XZXJZ9WQKSYH.4NA7Y494T4.6YS6EN2CT7", + "description": "Windows with SQL Server Web (Amazon VPC), c3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "3.0810000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "No Upfront" + } + }, + "FMP7XZXJZ9WQKSYH.NQ3QZPMQV9": { + "offerTermCode": "NQ3QZPMQV9", + "sku": "FMP7XZXJZ9WQKSYH", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "FMP7XZXJZ9WQKSYH.NQ3QZPMQV9.6YS6EN2CT7": { + "rateCode": "FMP7XZXJZ9WQKSYH.NQ3QZPMQV9.6YS6EN2CT7", + "description": "USD 0.0 per Windows with SQL Server Web (Amazon VPC), c3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + }, + "FMP7XZXJZ9WQKSYH.NQ3QZPMQV9.2TG2D8R56U": { + "rateCode": "FMP7XZXJZ9WQKSYH.NQ3QZPMQV9.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "52818" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "FMP7XZXJZ9WQKSYH.Z2E3P23VKM": { + "offerTermCode": "Z2E3P23VKM", + "sku": "FMP7XZXJZ9WQKSYH", + "effectiveDate": "2016-09-30T23:59:59Z", + "priceDimensions": { + "FMP7XZXJZ9WQKSYH.Z2E3P23VKM.6YS6EN2CT7": { + "rateCode": "FMP7XZXJZ9WQKSYH.Z2E3P23VKM.6YS6EN2CT7", + "description": "Windows with SQL Server Web (Amazon VPC), c3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "2.9640000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "No Upfront" + } + }, + "FMP7XZXJZ9WQKSYH.R5XV2EPZQZ": { + "offerTermCode": "R5XV2EPZQZ", + "sku": "FMP7XZXJZ9WQKSYH", + "effectiveDate": "2016-09-30T23:59:59Z", + "priceDimensions": { + "FMP7XZXJZ9WQKSYH.R5XV2EPZQZ.2TG2D8R56U": { + "rateCode": "FMP7XZXJZ9WQKSYH.R5XV2EPZQZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "26086" + }, + "appliesTo": [] + }, + "FMP7XZXJZ9WQKSYH.R5XV2EPZQZ.6YS6EN2CT7": { + "rateCode": "FMP7XZXJZ9WQKSYH.R5XV2EPZQZ.6YS6EN2CT7", + "description": "Windows with SQL Server Web (Amazon VPC), c3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "1.5390000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "Partial Upfront" + } + }, + "FMP7XZXJZ9WQKSYH.HU7G6KETJZ": { + "offerTermCode": "HU7G6KETJZ", + "sku": "FMP7XZXJZ9WQKSYH", + "effectiveDate": "2016-09-30T23:59:59Z", + "priceDimensions": { + "FMP7XZXJZ9WQKSYH.HU7G6KETJZ.2TG2D8R56U": { + "rateCode": "FMP7XZXJZ9WQKSYH.HU7G6KETJZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "9217" + }, + "appliesTo": [] + }, + "FMP7XZXJZ9WQKSYH.HU7G6KETJZ.6YS6EN2CT7": { + "rateCode": "FMP7XZXJZ9WQKSYH.HU7G6KETJZ.6YS6EN2CT7", + "description": "Windows with SQL Server Web (Amazon VPC), c3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "1.5810000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "FMP7XZXJZ9WQKSYH.6QCMYABX3D": { + "offerTermCode": "6QCMYABX3D", + "sku": "FMP7XZXJZ9WQKSYH", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "FMP7XZXJZ9WQKSYH.6QCMYABX3D.2TG2D8R56U": { + "rateCode": "FMP7XZXJZ9WQKSYH.6QCMYABX3D.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "22605" + }, + "appliesTo": [] + }, + "FMP7XZXJZ9WQKSYH.6QCMYABX3D.6YS6EN2CT7": { + "rateCode": "FMP7XZXJZ9WQKSYH.6QCMYABX3D.6YS6EN2CT7", + "description": "USD 0.0 per Windows with SQL Server Web (Amazon VPC), c3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "FMP7XZXJZ9WQKSYH.VJWZNREJX2": { + "offerTermCode": "VJWZNREJX2", + "sku": "FMP7XZXJZ9WQKSYH", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "FMP7XZXJZ9WQKSYH.VJWZNREJX2.2TG2D8R56U": { + "rateCode": "FMP7XZXJZ9WQKSYH.VJWZNREJX2.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "27818" + }, + "appliesTo": [] + }, + "FMP7XZXJZ9WQKSYH.VJWZNREJX2.6YS6EN2CT7": { + "rateCode": "FMP7XZXJZ9WQKSYH.VJWZNREJX2.6YS6EN2CT7", + "description": "Windows with SQL Server Web (Amazon VPC), c3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "All Upfront" + } + }, + "FMP7XZXJZ9WQKSYH.MZU6U2429S": { + "offerTermCode": "MZU6U2429S", + "sku": "FMP7XZXJZ9WQKSYH", + "effectiveDate": "2016-09-30T23:59:59Z", + "priceDimensions": { + "FMP7XZXJZ9WQKSYH.MZU6U2429S.6YS6EN2CT7": { + "rateCode": "FMP7XZXJZ9WQKSYH.MZU6U2429S.6YS6EN2CT7", + "description": "USD 0.0 per Windows with SQL Server Web (Amazon VPC), c3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + }, + "FMP7XZXJZ9WQKSYH.MZU6U2429S.2TG2D8R56U": { + "rateCode": "FMP7XZXJZ9WQKSYH.MZU6U2429S.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "65208" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "All Upfront" + } + }, + "FMP7XZXJZ9WQKSYH.7NE97W5U4E": { + "offerTermCode": "7NE97W5U4E", + "sku": "FMP7XZXJZ9WQKSYH", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "FMP7XZXJZ9WQKSYH.7NE97W5U4E.6YS6EN2CT7": { + "rateCode": "FMP7XZXJZ9WQKSYH.7NE97W5U4E.6YS6EN2CT7", + "description": "Windows with SQL Server Web (Amazon VPC), c3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "3.2570000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "No Upfront" + } + }, + "FMP7XZXJZ9WQKSYH.CUZHX8X6JH": { + "offerTermCode": "CUZHX8X6JH", + "sku": "FMP7XZXJZ9WQKSYH", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "FMP7XZXJZ9WQKSYH.CUZHX8X6JH.6YS6EN2CT7": { + "rateCode": "FMP7XZXJZ9WQKSYH.CUZHX8X6JH.6YS6EN2CT7", + "description": "Windows with SQL Server Web (Amazon VPC), c3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "1.5990000000" + }, + "appliesTo": [] + }, + "FMP7XZXJZ9WQKSYH.CUZHX8X6JH.2TG2D8R56U": { + "rateCode": "FMP7XZXJZ9WQKSYH.CUZHX8X6JH.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "14011" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "Partial Upfront" + } + } + }, + "VF8WVSAPAR7N5YAZ": { + "VF8WVSAPAR7N5YAZ.4NA7Y494T4": { + "offerTermCode": "4NA7Y494T4", + "sku": "VF8WVSAPAR7N5YAZ", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "VF8WVSAPAR7N5YAZ.4NA7Y494T4.6YS6EN2CT7": { + "rateCode": "VF8WVSAPAR7N5YAZ.4NA7Y494T4.6YS6EN2CT7", + "description": "Linux with SQL Server Standard (Amazon VPC), x1e.16xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "15.9030000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "No Upfront" + } + }, + "VF8WVSAPAR7N5YAZ.7NE97W5U4E": { + "offerTermCode": "7NE97W5U4E", + "sku": "VF8WVSAPAR7N5YAZ", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "VF8WVSAPAR7N5YAZ.7NE97W5U4E.6YS6EN2CT7": { + "rateCode": "VF8WVSAPAR7N5YAZ.7NE97W5U4E.6YS6EN2CT7", + "description": "Linux with SQL Server Standard (Amazon VPC), x1e.16xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "17.1370000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "No Upfront" + } + }, + "VF8WVSAPAR7N5YAZ.CUZHX8X6JH": { + "offerTermCode": "CUZHX8X6JH", + "sku": "VF8WVSAPAR7N5YAZ", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "VF8WVSAPAR7N5YAZ.CUZHX8X6JH.2TG2D8R56U": { + "rateCode": "VF8WVSAPAR7N5YAZ.CUZHX8X6JH.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "73086" + }, + "appliesTo": [] + }, + "VF8WVSAPAR7N5YAZ.CUZHX8X6JH.6YS6EN2CT7": { + "rateCode": "VF8WVSAPAR7N5YAZ.CUZHX8X6JH.6YS6EN2CT7", + "description": "Linux with SQL Server Standard (Amazon VPC), x1e.16xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "8.3430000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "Partial Upfront" + } + }, + "VF8WVSAPAR7N5YAZ.BPH4J8HBKS": { + "offerTermCode": "BPH4J8HBKS", + "sku": "VF8WVSAPAR7N5YAZ", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "VF8WVSAPAR7N5YAZ.BPH4J8HBKS.6YS6EN2CT7": { + "rateCode": "VF8WVSAPAR7N5YAZ.BPH4J8HBKS.6YS6EN2CT7", + "description": "Linux with SQL Server Standard (Amazon VPC), x1e.16xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "11.9700000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "No Upfront" + } + }, + "VF8WVSAPAR7N5YAZ.MZU6U2429S": { + "offerTermCode": "MZU6U2429S", + "sku": "VF8WVSAPAR7N5YAZ", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "VF8WVSAPAR7N5YAZ.MZU6U2429S.2TG2D8R56U": { + "rateCode": "VF8WVSAPAR7N5YAZ.MZU6U2429S.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "319465" + }, + "appliesTo": [] + }, + "VF8WVSAPAR7N5YAZ.MZU6U2429S.6YS6EN2CT7": { + "rateCode": "VF8WVSAPAR7N5YAZ.MZU6U2429S.6YS6EN2CT7", + "description": "Linux with SQL Server Standard (Amazon VPC), x1e.16xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "All Upfront" + } + }, + "VF8WVSAPAR7N5YAZ.VJWZNREJX2": { + "offerTermCode": "VJWZNREJX2", + "sku": "VF8WVSAPAR7N5YAZ", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "VF8WVSAPAR7N5YAZ.VJWZNREJX2.2TG2D8R56U": { + "rateCode": "VF8WVSAPAR7N5YAZ.VJWZNREJX2.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "144594" + }, + "appliesTo": [] + }, + "VF8WVSAPAR7N5YAZ.VJWZNREJX2.6YS6EN2CT7": { + "rateCode": "VF8WVSAPAR7N5YAZ.VJWZNREJX2.6YS6EN2CT7", + "description": "Linux with SQL Server Standard (Amazon VPC), x1e.16xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "All Upfront" + } + }, + "VF8WVSAPAR7N5YAZ.HU7G6KETJZ": { + "offerTermCode": "HU7G6KETJZ", + "sku": "VF8WVSAPAR7N5YAZ", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "VF8WVSAPAR7N5YAZ.HU7G6KETJZ.2TG2D8R56U": { + "rateCode": "VF8WVSAPAR7N5YAZ.HU7G6KETJZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "67940" + }, + "appliesTo": [] + }, + "VF8WVSAPAR7N5YAZ.HU7G6KETJZ.6YS6EN2CT7": { + "rateCode": "VF8WVSAPAR7N5YAZ.HU7G6KETJZ.6YS6EN2CT7", + "description": "Linux with SQL Server Standard (Amazon VPC), x1e.16xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "7.7560000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "VF8WVSAPAR7N5YAZ.6QCMYABX3D": { + "offerTermCode": "6QCMYABX3D", + "sku": "VF8WVSAPAR7N5YAZ", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "VF8WVSAPAR7N5YAZ.6QCMYABX3D.2TG2D8R56U": { + "rateCode": "VF8WVSAPAR7N5YAZ.6QCMYABX3D.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "134509" + }, + "appliesTo": [] + }, + "VF8WVSAPAR7N5YAZ.6QCMYABX3D.6YS6EN2CT7": { + "rateCode": "VF8WVSAPAR7N5YAZ.6QCMYABX3D.6YS6EN2CT7", + "description": "Linux with SQL Server Standard (Amazon VPC), x1e.16xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "VF8WVSAPAR7N5YAZ.Z2E3P23VKM": { + "offerTermCode": "Z2E3P23VKM", + "sku": "VF8WVSAPAR7N5YAZ", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "VF8WVSAPAR7N5YAZ.Z2E3P23VKM.6YS6EN2CT7": { + "rateCode": "VF8WVSAPAR7N5YAZ.Z2E3P23VKM.6YS6EN2CT7", + "description": "Linux with SQL Server Standard (Amazon VPC), x1e.16xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "12.6130000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "No Upfront" + } + }, + "VF8WVSAPAR7N5YAZ.NQ3QZPMQV9": { + "offerTermCode": "NQ3QZPMQV9", + "sku": "VF8WVSAPAR7N5YAZ", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "VF8WVSAPAR7N5YAZ.NQ3QZPMQV9.2TG2D8R56U": { + "rateCode": "VF8WVSAPAR7N5YAZ.NQ3QZPMQV9.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "299946" + }, + "appliesTo": [] + }, + "VF8WVSAPAR7N5YAZ.NQ3QZPMQV9.6YS6EN2CT7": { + "rateCode": "VF8WVSAPAR7N5YAZ.NQ3QZPMQV9.6YS6EN2CT7", + "description": "Linux with SQL Server Standard (Amazon VPC), x1e.16xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "VF8WVSAPAR7N5YAZ.38NPMPTW36": { + "offerTermCode": "38NPMPTW36", + "sku": "VF8WVSAPAR7N5YAZ", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "VF8WVSAPAR7N5YAZ.38NPMPTW36.2TG2D8R56U": { + "rateCode": "VF8WVSAPAR7N5YAZ.38NPMPTW36.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "153104" + }, + "appliesTo": [] + }, + "VF8WVSAPAR7N5YAZ.38NPMPTW36.6YS6EN2CT7": { + "rateCode": "VF8WVSAPAR7N5YAZ.38NPMPTW36.6YS6EN2CT7", + "description": "Linux with SQL Server Standard (Amazon VPC), x1e.16xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "5.8260000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "VF8WVSAPAR7N5YAZ.R5XV2EPZQZ": { + "offerTermCode": "R5XV2EPZQZ", + "sku": "VF8WVSAPAR7N5YAZ", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "VF8WVSAPAR7N5YAZ.R5XV2EPZQZ.2TG2D8R56U": { + "rateCode": "VF8WVSAPAR7N5YAZ.R5XV2EPZQZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "160933" + }, + "appliesTo": [] + }, + "VF8WVSAPAR7N5YAZ.R5XV2EPZQZ.6YS6EN2CT7": { + "rateCode": "VF8WVSAPAR7N5YAZ.R5XV2EPZQZ.6YS6EN2CT7", + "description": "Linux with SQL Server Standard (Amazon VPC), x1e.16xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "6.1240000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "Partial Upfront" + } + } + }, + "7EKHSU568GXUWCTS": { + "7EKHSU568GXUWCTS.HU7G6KETJZ": { + "offerTermCode": "HU7G6KETJZ", + "sku": "7EKHSU568GXUWCTS", + "effectiveDate": "2017-09-30T23:59:59Z", + "priceDimensions": { + "7EKHSU568GXUWCTS.HU7G6KETJZ.2TG2D8R56U": { + "rateCode": "7EKHSU568GXUWCTS.HU7G6KETJZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "35023" + }, + "appliesTo": [] + }, + "7EKHSU568GXUWCTS.HU7G6KETJZ.6YS6EN2CT7": { + "rateCode": "7EKHSU568GXUWCTS.HU7G6KETJZ.6YS6EN2CT7", + "description": "SUSE Linux (Amazon VPC), p3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "3.9910000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "7EKHSU568GXUWCTS.VJWZNREJX2": { + "offerTermCode": "VJWZNREJX2", + "sku": "7EKHSU568GXUWCTS", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "7EKHSU568GXUWCTS.VJWZNREJX2.2TG2D8R56U": { + "rateCode": "7EKHSU568GXUWCTS.VJWZNREJX2.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "78888" + }, + "appliesTo": [] + }, + "7EKHSU568GXUWCTS.VJWZNREJX2.6YS6EN2CT7": { + "rateCode": "7EKHSU568GXUWCTS.VJWZNREJX2.6YS6EN2CT7", + "description": "SUSE Linux (Amazon VPC), p3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "All Upfront" + } + }, + "7EKHSU568GXUWCTS.NQ3QZPMQV9": { + "offerTermCode": "NQ3QZPMQV9", + "sku": "7EKHSU568GXUWCTS", + "effectiveDate": "2017-09-30T23:59:59Z", + "priceDimensions": { + "7EKHSU568GXUWCTS.NQ3QZPMQV9.6YS6EN2CT7": { + "rateCode": "7EKHSU568GXUWCTS.NQ3QZPMQV9.6YS6EN2CT7", + "description": "SUSE Linux (Amazon VPC), p3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + }, + "7EKHSU568GXUWCTS.NQ3QZPMQV9.2TG2D8R56U": { + "rateCode": "7EKHSU568GXUWCTS.NQ3QZPMQV9.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "122548" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "7EKHSU568GXUWCTS.6QCMYABX3D": { + "offerTermCode": "6QCMYABX3D", + "sku": "7EKHSU568GXUWCTS", + "effectiveDate": "2017-09-30T23:59:59Z", + "priceDimensions": { + "7EKHSU568GXUWCTS.6QCMYABX3D.2TG2D8R56U": { + "rateCode": "7EKHSU568GXUWCTS.6QCMYABX3D.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "68591" + }, + "appliesTo": [] + }, + "7EKHSU568GXUWCTS.6QCMYABX3D.6YS6EN2CT7": { + "rateCode": "7EKHSU568GXUWCTS.6QCMYABX3D.6YS6EN2CT7", + "description": "SUSE Linux (Amazon VPC), p3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "7EKHSU568GXUWCTS.CUZHX8X6JH": { + "offerTermCode": "CUZHX8X6JH", + "sku": "7EKHSU568GXUWCTS", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "7EKHSU568GXUWCTS.CUZHX8X6JH.6YS6EN2CT7": { + "rateCode": "7EKHSU568GXUWCTS.CUZHX8X6JH.6YS6EN2CT7", + "description": "SUSE Linux (Amazon VPC), p3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "4.5910000000" + }, + "appliesTo": [] + }, + "7EKHSU568GXUWCTS.CUZHX8X6JH.2TG2D8R56U": { + "rateCode": "7EKHSU568GXUWCTS.CUZHX8X6JH.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "40277" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "Partial Upfront" + } + }, + "7EKHSU568GXUWCTS.4NA7Y494T4": { + "offerTermCode": "4NA7Y494T4", + "sku": "7EKHSU568GXUWCTS", + "effectiveDate": "2017-09-30T23:59:59Z", + "priceDimensions": { + "7EKHSU568GXUWCTS.4NA7Y494T4.6YS6EN2CT7": { + "rateCode": "7EKHSU568GXUWCTS.4NA7Y494T4.6YS6EN2CT7", + "description": "SUSE Linux (Amazon VPC), p3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "8.3870000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "No Upfront" + } + }, + "7EKHSU568GXUWCTS.MZU6U2429S": { + "offerTermCode": "MZU6U2429S", + "sku": "7EKHSU568GXUWCTS", + "effectiveDate": "2017-09-30T23:59:59Z", + "priceDimensions": { + "7EKHSU568GXUWCTS.MZU6U2429S.2TG2D8R56U": { + "rateCode": "7EKHSU568GXUWCTS.MZU6U2429S.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "171866" + }, + "appliesTo": [] + }, + "7EKHSU568GXUWCTS.MZU6U2429S.6YS6EN2CT7": { + "rateCode": "7EKHSU568GXUWCTS.MZU6U2429S.6YS6EN2CT7", + "description": "SUSE Linux (Amazon VPC), p3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "All Upfront" + } + }, + "7EKHSU568GXUWCTS.R5XV2EPZQZ": { + "offerTermCode": "R5XV2EPZQZ", + "sku": "7EKHSU568GXUWCTS", + "effectiveDate": "2017-09-30T23:59:59Z", + "priceDimensions": { + "7EKHSU568GXUWCTS.R5XV2EPZQZ.2TG2D8R56U": { + "rateCode": "7EKHSU568GXUWCTS.R5XV2EPZQZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "87685" + }, + "appliesTo": [] + }, + "7EKHSU568GXUWCTS.R5XV2EPZQZ.6YS6EN2CT7": { + "rateCode": "7EKHSU568GXUWCTS.R5XV2EPZQZ.6YS6EN2CT7", + "description": "SUSE Linux (Amazon VPC), p3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "3.3360000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "Partial Upfront" + } + }, + "7EKHSU568GXUWCTS.38NPMPTW36": { + "offerTermCode": "38NPMPTW36", + "sku": "7EKHSU568GXUWCTS", + "effectiveDate": "2017-09-30T23:59:59Z", + "priceDimensions": { + "7EKHSU568GXUWCTS.38NPMPTW36.6YS6EN2CT7": { + "rateCode": "7EKHSU568GXUWCTS.38NPMPTW36.6YS6EN2CT7", + "description": "SUSE Linux (Amazon VPC), p3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "2.4790000000" + }, + "appliesTo": [] + }, + "7EKHSU568GXUWCTS.38NPMPTW36.2TG2D8R56U": { + "rateCode": "7EKHSU568GXUWCTS.38NPMPTW36.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "65168" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "7EKHSU568GXUWCTS.7NE97W5U4E": { + "offerTermCode": "7NE97W5U4E", + "sku": "7EKHSU568GXUWCTS", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "7EKHSU568GXUWCTS.7NE97W5U4E.6YS6EN2CT7": { + "rateCode": "7EKHSU568GXUWCTS.7NE97W5U4E.6YS6EN2CT7", + "description": "SUSE Linux (Amazon VPC), p3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "9.6460000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "No Upfront" + } + } + }, + "SN6Y3HGBV9CC2JR6": { + "SN6Y3HGBV9CC2JR6.4NA7Y494T4": { + "offerTermCode": "4NA7Y494T4", + "sku": "SN6Y3HGBV9CC2JR6", + "effectiveDate": "2017-08-31T23:59:59Z", + "priceDimensions": { + "SN6Y3HGBV9CC2JR6.4NA7Y494T4.6YS6EN2CT7": { + "rateCode": "SN6Y3HGBV9CC2JR6.4NA7Y494T4.6YS6EN2CT7", + "description": "Windows (Amazon VPC), t2.micro reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0118000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "No Upfront" + } + }, + "SN6Y3HGBV9CC2JR6.CUZHX8X6JH": { + "offerTermCode": "CUZHX8X6JH", + "sku": "SN6Y3HGBV9CC2JR6", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "SN6Y3HGBV9CC2JR6.CUZHX8X6JH.6YS6EN2CT7": { + "rateCode": "SN6Y3HGBV9CC2JR6.CUZHX8X6JH.6YS6EN2CT7", + "description": "Windows (Amazon VPC), t2.micro reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0062000000" + }, + "appliesTo": [] + }, + "SN6Y3HGBV9CC2JR6.CUZHX8X6JH.2TG2D8R56U": { + "rateCode": "SN6Y3HGBV9CC2JR6.CUZHX8X6JH.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "55" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "Partial Upfront" + } + }, + "SN6Y3HGBV9CC2JR6.MZU6U2429S": { + "offerTermCode": "MZU6U2429S", + "sku": "SN6Y3HGBV9CC2JR6", + "effectiveDate": "2017-08-31T23:59:59Z", + "priceDimensions": { + "SN6Y3HGBV9CC2JR6.MZU6U2429S.2TG2D8R56U": { + "rateCode": "SN6Y3HGBV9CC2JR6.MZU6U2429S.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "258" + }, + "appliesTo": [] + }, + "SN6Y3HGBV9CC2JR6.MZU6U2429S.6YS6EN2CT7": { + "rateCode": "SN6Y3HGBV9CC2JR6.MZU6U2429S.6YS6EN2CT7", + "description": "Windows (Amazon VPC), t2.micro reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "All Upfront" + } + }, + "SN6Y3HGBV9CC2JR6.38NPMPTW36": { + "offerTermCode": "38NPMPTW36", + "sku": "SN6Y3HGBV9CC2JR6", + "effectiveDate": "2017-08-31T23:59:59Z", + "priceDimensions": { + "SN6Y3HGBV9CC2JR6.38NPMPTW36.6YS6EN2CT7": { + "rateCode": "SN6Y3HGBV9CC2JR6.38NPMPTW36.6YS6EN2CT7", + "description": "Windows (Amazon VPC), t2.micro reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0046000000" + }, + "appliesTo": [] + }, + "SN6Y3HGBV9CC2JR6.38NPMPTW36.2TG2D8R56U": { + "rateCode": "SN6Y3HGBV9CC2JR6.38NPMPTW36.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "121" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "SN6Y3HGBV9CC2JR6.R5XV2EPZQZ": { + "offerTermCode": "R5XV2EPZQZ", + "sku": "SN6Y3HGBV9CC2JR6", + "effectiveDate": "2017-08-31T23:59:59Z", + "priceDimensions": { + "SN6Y3HGBV9CC2JR6.R5XV2EPZQZ.2TG2D8R56U": { + "rateCode": "SN6Y3HGBV9CC2JR6.R5XV2EPZQZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "131" + }, + "appliesTo": [] + }, + "SN6Y3HGBV9CC2JR6.R5XV2EPZQZ.6YS6EN2CT7": { + "rateCode": "SN6Y3HGBV9CC2JR6.R5XV2EPZQZ.6YS6EN2CT7", + "description": "Windows (Amazon VPC), t2.micro reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0050000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "Partial Upfront" + } + }, + "SN6Y3HGBV9CC2JR6.7NE97W5U4E": { + "offerTermCode": "7NE97W5U4E", + "sku": "SN6Y3HGBV9CC2JR6", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "SN6Y3HGBV9CC2JR6.7NE97W5U4E.6YS6EN2CT7": { + "rateCode": "SN6Y3HGBV9CC2JR6.7NE97W5U4E.6YS6EN2CT7", + "description": "Windows (Amazon VPC), t2.micro reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0129000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "No Upfront" + } + }, + "SN6Y3HGBV9CC2JR6.HU7G6KETJZ": { + "offerTermCode": "HU7G6KETJZ", + "sku": "SN6Y3HGBV9CC2JR6", + "effectiveDate": "2017-08-31T23:59:59Z", + "priceDimensions": { + "SN6Y3HGBV9CC2JR6.HU7G6KETJZ.2TG2D8R56U": { + "rateCode": "SN6Y3HGBV9CC2JR6.HU7G6KETJZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "50" + }, + "appliesTo": [] + }, + "SN6Y3HGBV9CC2JR6.HU7G6KETJZ.6YS6EN2CT7": { + "rateCode": "SN6Y3HGBV9CC2JR6.HU7G6KETJZ.6YS6EN2CT7", + "description": "Windows (Amazon VPC), t2.micro reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0057000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "SN6Y3HGBV9CC2JR6.VJWZNREJX2": { + "offerTermCode": "VJWZNREJX2", + "sku": "SN6Y3HGBV9CC2JR6", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "SN6Y3HGBV9CC2JR6.VJWZNREJX2.2TG2D8R56U": { + "rateCode": "SN6Y3HGBV9CC2JR6.VJWZNREJX2.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "108" + }, + "appliesTo": [] + }, + "SN6Y3HGBV9CC2JR6.VJWZNREJX2.6YS6EN2CT7": { + "rateCode": "SN6Y3HGBV9CC2JR6.VJWZNREJX2.6YS6EN2CT7", + "description": "Windows (Amazon VPC), t2.micro reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "All Upfront" + } + }, + "SN6Y3HGBV9CC2JR6.NQ3QZPMQV9": { + "offerTermCode": "NQ3QZPMQV9", + "sku": "SN6Y3HGBV9CC2JR6", + "effectiveDate": "2017-12-31T23:59:59Z", + "priceDimensions": { + "SN6Y3HGBV9CC2JR6.NQ3QZPMQV9.6YS6EN2CT7": { + "rateCode": "SN6Y3HGBV9CC2JR6.NQ3QZPMQV9.6YS6EN2CT7", + "description": "Windows (Amazon VPC), t2.micro reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + }, + "SN6Y3HGBV9CC2JR6.NQ3QZPMQV9.2TG2D8R56U": { + "rateCode": "SN6Y3HGBV9CC2JR6.NQ3QZPMQV9.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "234" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "SN6Y3HGBV9CC2JR6.BPH4J8HBKS": { + "offerTermCode": "BPH4J8HBKS", + "sku": "SN6Y3HGBV9CC2JR6", + "effectiveDate": "2017-08-31T23:59:59Z", + "priceDimensions": { + "SN6Y3HGBV9CC2JR6.BPH4J8HBKS.6YS6EN2CT7": { + "rateCode": "SN6Y3HGBV9CC2JR6.BPH4J8HBKS.6YS6EN2CT7", + "description": "Windows (Amazon VPC), t2.micro reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0096000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "No Upfront" + } + }, + "SN6Y3HGBV9CC2JR6.6QCMYABX3D": { + "offerTermCode": "6QCMYABX3D", + "sku": "SN6Y3HGBV9CC2JR6", + "effectiveDate": "2017-08-31T23:59:59Z", + "priceDimensions": { + "SN6Y3HGBV9CC2JR6.6QCMYABX3D.6YS6EN2CT7": { + "rateCode": "SN6Y3HGBV9CC2JR6.6QCMYABX3D.6YS6EN2CT7", + "description": "Windows (Amazon VPC), t2.micro reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + }, + "SN6Y3HGBV9CC2JR6.6QCMYABX3D.2TG2D8R56U": { + "rateCode": "SN6Y3HGBV9CC2JR6.6QCMYABX3D.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "99" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "SN6Y3HGBV9CC2JR6.Z2E3P23VKM": { + "offerTermCode": "Z2E3P23VKM", + "sku": "SN6Y3HGBV9CC2JR6", + "effectiveDate": "2017-08-31T23:59:59Z", + "priceDimensions": { + "SN6Y3HGBV9CC2JR6.Z2E3P23VKM.6YS6EN2CT7": { + "rateCode": "SN6Y3HGBV9CC2JR6.Z2E3P23VKM.6YS6EN2CT7", + "description": "Windows (Amazon VPC), t2.micro reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0104000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "No Upfront" + } + } + }, + "QBYJCF2RGQTF5H5D": { + "QBYJCF2RGQTF5H5D.NQ3QZPMQV9": { + "offerTermCode": "NQ3QZPMQV9", + "sku": "QBYJCF2RGQTF5H5D", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "QBYJCF2RGQTF5H5D.NQ3QZPMQV9.6YS6EN2CT7": { + "rateCode": "QBYJCF2RGQTF5H5D.NQ3QZPMQV9.6YS6EN2CT7", + "description": "USD 0.0 per Linux/UNIX (Amazon VPC), m2.4xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + }, + "QBYJCF2RGQTF5H5D.NQ3QZPMQV9.2TG2D8R56U": { + "rateCode": "QBYJCF2RGQTF5H5D.NQ3QZPMQV9.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "5839" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "QBYJCF2RGQTF5H5D.38NPMPTW36": { + "offerTermCode": "38NPMPTW36", + "sku": "QBYJCF2RGQTF5H5D", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "QBYJCF2RGQTF5H5D.38NPMPTW36.2TG2D8R56U": { + "rateCode": "QBYJCF2RGQTF5H5D.38NPMPTW36.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "2875" + }, + "appliesTo": [] + }, + "QBYJCF2RGQTF5H5D.38NPMPTW36.6YS6EN2CT7": { + "rateCode": "QBYJCF2RGQTF5H5D.38NPMPTW36.6YS6EN2CT7", + "description": "Linux/UNIX (Amazon VPC), m2.4xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.1270000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "QBYJCF2RGQTF5H5D.HU7G6KETJZ": { + "offerTermCode": "HU7G6KETJZ", + "sku": "QBYJCF2RGQTF5H5D", + "effectiveDate": "2016-09-30T23:59:59Z", + "priceDimensions": { + "QBYJCF2RGQTF5H5D.HU7G6KETJZ.2TG2D8R56U": { + "rateCode": "QBYJCF2RGQTF5H5D.HU7G6KETJZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "1894" + }, + "appliesTo": [] + }, + "QBYJCF2RGQTF5H5D.HU7G6KETJZ.6YS6EN2CT7": { + "rateCode": "QBYJCF2RGQTF5H5D.HU7G6KETJZ.6YS6EN2CT7", + "description": "Linux/UNIX (Amazon VPC), m2.4xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.1630000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "QBYJCF2RGQTF5H5D.6QCMYABX3D": { + "offerTermCode": "6QCMYABX3D", + "sku": "QBYJCF2RGQTF5H5D", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "QBYJCF2RGQTF5H5D.6QCMYABX3D.6YS6EN2CT7": { + "rateCode": "QBYJCF2RGQTF5H5D.6QCMYABX3D.6YS6EN2CT7", + "description": "USD 0.0 per Linux/UNIX (Amazon VPC), m2.4xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + }, + "QBYJCF2RGQTF5H5D.6QCMYABX3D.2TG2D8R56U": { + "rateCode": "QBYJCF2RGQTF5H5D.6QCMYABX3D.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "3255" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "QBYJCF2RGQTF5H5D.4NA7Y494T4": { + "offerTermCode": "4NA7Y494T4", + "sku": "QBYJCF2RGQTF5H5D", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "QBYJCF2RGQTF5H5D.4NA7Y494T4.6YS6EN2CT7": { + "rateCode": "QBYJCF2RGQTF5H5D.4NA7Y494T4.6YS6EN2CT7", + "description": "Linux/UNIX (Amazon VPC), m2.4xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.4440000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "No Upfront" + } + } + }, + "NXRQZFA7F5W3JS8Y": { + "NXRQZFA7F5W3JS8Y.4NA7Y494T4": { + "offerTermCode": "4NA7Y494T4", + "sku": "NXRQZFA7F5W3JS8Y", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "NXRQZFA7F5W3JS8Y.4NA7Y494T4.6YS6EN2CT7": { + "rateCode": "NXRQZFA7F5W3JS8Y.4NA7Y494T4.6YS6EN2CT7", + "description": "SUSE Linux (Amazon VPC), m2.xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.1610000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "No Upfront" + } + }, + "NXRQZFA7F5W3JS8Y.HU7G6KETJZ": { + "offerTermCode": "HU7G6KETJZ", + "sku": "NXRQZFA7F5W3JS8Y", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "NXRQZFA7F5W3JS8Y.HU7G6KETJZ.2TG2D8R56U": { + "rateCode": "NXRQZFA7F5W3JS8Y.HU7G6KETJZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "714" + }, + "appliesTo": [] + }, + "NXRQZFA7F5W3JS8Y.HU7G6KETJZ.6YS6EN2CT7": { + "rateCode": "NXRQZFA7F5W3JS8Y.HU7G6KETJZ.6YS6EN2CT7", + "description": "SUSE Linux (Amazon VPC), m2.xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0570000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "NXRQZFA7F5W3JS8Y.NQ3QZPMQV9": { + "offerTermCode": "NQ3QZPMQV9", + "sku": "NXRQZFA7F5W3JS8Y", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "NXRQZFA7F5W3JS8Y.NQ3QZPMQV9.2TG2D8R56U": { + "rateCode": "NXRQZFA7F5W3JS8Y.NQ3QZPMQV9.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "2274" + }, + "appliesTo": [] + }, + "NXRQZFA7F5W3JS8Y.NQ3QZPMQV9.6YS6EN2CT7": { + "rateCode": "NXRQZFA7F5W3JS8Y.NQ3QZPMQV9.6YS6EN2CT7", + "description": "USD 0.0 per SUSE Linux (Amazon VPC), m2.xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "NXRQZFA7F5W3JS8Y.38NPMPTW36": { + "offerTermCode": "38NPMPTW36", + "sku": "NXRQZFA7F5W3JS8Y", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "NXRQZFA7F5W3JS8Y.38NPMPTW36.2TG2D8R56U": { + "rateCode": "NXRQZFA7F5W3JS8Y.38NPMPTW36.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "1178" + }, + "appliesTo": [] + }, + "NXRQZFA7F5W3JS8Y.38NPMPTW36.6YS6EN2CT7": { + "rateCode": "NXRQZFA7F5W3JS8Y.38NPMPTW36.6YS6EN2CT7", + "description": "SUSE Linux (Amazon VPC), m2.xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0470000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "NXRQZFA7F5W3JS8Y.6QCMYABX3D": { + "offerTermCode": "6QCMYABX3D", + "sku": "NXRQZFA7F5W3JS8Y", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "NXRQZFA7F5W3JS8Y.6QCMYABX3D.2TG2D8R56U": { + "rateCode": "NXRQZFA7F5W3JS8Y.6QCMYABX3D.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "1190" + }, + "appliesTo": [] + }, + "NXRQZFA7F5W3JS8Y.6QCMYABX3D.6YS6EN2CT7": { + "rateCode": "NXRQZFA7F5W3JS8Y.6QCMYABX3D.6YS6EN2CT7", + "description": "USD 0.0 per SUSE Linux (Amazon VPC), m2.xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + } + }, + "CCDYUK858Q32EE2D": { + "CCDYUK858Q32EE2D.38NPMPTW36": { + "offerTermCode": "38NPMPTW36", + "sku": "CCDYUK858Q32EE2D", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "CCDYUK858Q32EE2D.38NPMPTW36.2TG2D8R56U": { + "rateCode": "CCDYUK858Q32EE2D.38NPMPTW36.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "95894" + }, + "appliesTo": [] + }, + "CCDYUK858Q32EE2D.38NPMPTW36.6YS6EN2CT7": { + "rateCode": "CCDYUK858Q32EE2D.38NPMPTW36.6YS6EN2CT7", + "description": "Windows with SQL Server Standard (Amazon VPC), x1e.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "3.6490000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "CCDYUK858Q32EE2D.Z2E3P23VKM": { + "offerTermCode": "Z2E3P23VKM", + "sku": "CCDYUK858Q32EE2D", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "CCDYUK858Q32EE2D.Z2E3P23VKM.6YS6EN2CT7": { + "rateCode": "CCDYUK858Q32EE2D.Z2E3P23VKM.6YS6EN2CT7", + "description": "Windows with SQL Server Standard (Amazon VPC), x1e.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "7.7780000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "No Upfront" + } + }, + "CCDYUK858Q32EE2D.6QCMYABX3D": { + "offerTermCode": "6QCMYABX3D", + "sku": "CCDYUK858Q32EE2D", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "CCDYUK858Q32EE2D.6QCMYABX3D.2TG2D8R56U": { + "rateCode": "CCDYUK858Q32EE2D.6QCMYABX3D.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "80149" + }, + "appliesTo": [] + }, + "CCDYUK858Q32EE2D.6QCMYABX3D.6YS6EN2CT7": { + "rateCode": "CCDYUK858Q32EE2D.6QCMYABX3D.6YS6EN2CT7", + "description": "Windows with SQL Server Standard (Amazon VPC), x1e.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "CCDYUK858Q32EE2D.NQ3QZPMQV9": { + "offerTermCode": "NQ3QZPMQV9", + "sku": "CCDYUK858Q32EE2D", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "CCDYUK858Q32EE2D.NQ3QZPMQV9.2TG2D8R56U": { + "rateCode": "CCDYUK858Q32EE2D.NQ3QZPMQV9.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "188657" + }, + "appliesTo": [] + }, + "CCDYUK858Q32EE2D.NQ3QZPMQV9.6YS6EN2CT7": { + "rateCode": "CCDYUK858Q32EE2D.NQ3QZPMQV9.6YS6EN2CT7", + "description": "Windows with SQL Server Standard (Amazon VPC), x1e.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "CCDYUK858Q32EE2D.R5XV2EPZQZ": { + "offerTermCode": "R5XV2EPZQZ", + "sku": "CCDYUK858Q32EE2D", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "CCDYUK858Q32EE2D.R5XV2EPZQZ.2TG2D8R56U": { + "rateCode": "CCDYUK858Q32EE2D.R5XV2EPZQZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "99809" + }, + "appliesTo": [] + }, + "CCDYUK858Q32EE2D.R5XV2EPZQZ.6YS6EN2CT7": { + "rateCode": "CCDYUK858Q32EE2D.R5XV2EPZQZ.6YS6EN2CT7", + "description": "Windows with SQL Server Standard (Amazon VPC), x1e.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "3.7980000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "Partial Upfront" + } + }, + "CCDYUK858Q32EE2D.7NE97W5U4E": { + "offerTermCode": "7NE97W5U4E", + "sku": "CCDYUK858Q32EE2D", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "CCDYUK858Q32EE2D.7NE97W5U4E.6YS6EN2CT7": { + "rateCode": "CCDYUK858Q32EE2D.7NE97W5U4E.6YS6EN2CT7", + "description": "Windows with SQL Server Standard (Amazon VPC), x1e.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "10.0400000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "No Upfront" + } + }, + "CCDYUK858Q32EE2D.CUZHX8X6JH": { + "offerTermCode": "CUZHX8X6JH", + "sku": "CCDYUK858Q32EE2D", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "CCDYUK858Q32EE2D.CUZHX8X6JH.2TG2D8R56U": { + "rateCode": "CCDYUK858Q32EE2D.CUZHX8X6JH.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "42990" + }, + "appliesTo": [] + }, + "CCDYUK858Q32EE2D.CUZHX8X6JH.6YS6EN2CT7": { + "rateCode": "CCDYUK858Q32EE2D.CUZHX8X6JH.6YS6EN2CT7", + "description": "Windows with SQL Server Standard (Amazon VPC), x1e.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "4.9080000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "Partial Upfront" + } + }, + "CCDYUK858Q32EE2D.4NA7Y494T4": { + "offerTermCode": "4NA7Y494T4", + "sku": "CCDYUK858Q32EE2D", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "CCDYUK858Q32EE2D.4NA7Y494T4.6YS6EN2CT7": { + "rateCode": "CCDYUK858Q32EE2D.4NA7Y494T4.6YS6EN2CT7", + "description": "Windows with SQL Server Standard (Amazon VPC), x1e.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "9.4240000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "No Upfront" + } + }, + "CCDYUK858Q32EE2D.BPH4J8HBKS": { + "offerTermCode": "BPH4J8HBKS", + "sku": "CCDYUK858Q32EE2D", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "CCDYUK858Q32EE2D.BPH4J8HBKS.6YS6EN2CT7": { + "rateCode": "CCDYUK858Q32EE2D.BPH4J8HBKS.6YS6EN2CT7", + "description": "Windows with SQL Server Standard (Amazon VPC), x1e.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "7.4570000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "No Upfront" + } + }, + "CCDYUK858Q32EE2D.HU7G6KETJZ": { + "offerTermCode": "HU7G6KETJZ", + "sku": "CCDYUK858Q32EE2D", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "CCDYUK858Q32EE2D.HU7G6KETJZ.2TG2D8R56U": { + "rateCode": "CCDYUK858Q32EE2D.HU7G6KETJZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "40418" + }, + "appliesTo": [] + }, + "CCDYUK858Q32EE2D.HU7G6KETJZ.6YS6EN2CT7": { + "rateCode": "CCDYUK858Q32EE2D.HU7G6KETJZ.6YS6EN2CT7", + "description": "Windows with SQL Server Standard (Amazon VPC), x1e.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "4.6140000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "CCDYUK858Q32EE2D.MZU6U2429S": { + "offerTermCode": "MZU6U2429S", + "sku": "CCDYUK858Q32EE2D", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "CCDYUK858Q32EE2D.MZU6U2429S.6YS6EN2CT7": { + "rateCode": "CCDYUK858Q32EE2D.MZU6U2429S.6YS6EN2CT7", + "description": "Windows with SQL Server Standard (Amazon VPC), x1e.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + }, + "CCDYUK858Q32EE2D.MZU6U2429S.2TG2D8R56U": { + "rateCode": "CCDYUK858Q32EE2D.MZU6U2429S.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "198417" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "All Upfront" + } + }, + "CCDYUK858Q32EE2D.VJWZNREJX2": { + "offerTermCode": "VJWZNREJX2", + "sku": "CCDYUK858Q32EE2D", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "CCDYUK858Q32EE2D.VJWZNREJX2.2TG2D8R56U": { + "rateCode": "CCDYUK858Q32EE2D.VJWZNREJX2.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "85192" + }, + "appliesTo": [] + }, + "CCDYUK858Q32EE2D.VJWZNREJX2.6YS6EN2CT7": { + "rateCode": "CCDYUK858Q32EE2D.VJWZNREJX2.6YS6EN2CT7", + "description": "Windows with SQL Server Standard (Amazon VPC), x1e.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "All Upfront" + } + } + }, + "EPXQPYHRYXVPE9B7": { + "EPXQPYHRYXVPE9B7.4NA7Y494T4": { + "offerTermCode": "4NA7Y494T4", + "sku": "EPXQPYHRYXVPE9B7", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "EPXQPYHRYXVPE9B7.4NA7Y494T4.6YS6EN2CT7": { + "rateCode": "EPXQPYHRYXVPE9B7.4NA7Y494T4.6YS6EN2CT7", + "description": "Red Hat Enterprise Linux (Amazon VPC), c5.9xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "1.0940000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "No Upfront" + } + }, + "EPXQPYHRYXVPE9B7.CUZHX8X6JH": { + "offerTermCode": "CUZHX8X6JH", + "sku": "EPXQPYHRYXVPE9B7", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "EPXQPYHRYXVPE9B7.CUZHX8X6JH.2TG2D8R56U": { + "rateCode": "EPXQPYHRYXVPE9B7.CUZHX8X6JH.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "4624" + }, + "appliesTo": [] + }, + "EPXQPYHRYXVPE9B7.CUZHX8X6JH.6YS6EN2CT7": { + "rateCode": "EPXQPYHRYXVPE9B7.CUZHX8X6JH.6YS6EN2CT7", + "description": "Red Hat Enterprise Linux (Amazon VPC), c5.9xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.6580000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "Partial Upfront" + } + }, + "EPXQPYHRYXVPE9B7.7NE97W5U4E": { + "offerTermCode": "7NE97W5U4E", + "sku": "EPXQPYHRYXVPE9B7", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "EPXQPYHRYXVPE9B7.7NE97W5U4E.6YS6EN2CT7": { + "rateCode": "EPXQPYHRYXVPE9B7.7NE97W5U4E.6YS6EN2CT7", + "description": "Red Hat Enterprise Linux (Amazon VPC), c5.9xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "1.2380000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "No Upfront" + } + }, + "EPXQPYHRYXVPE9B7.MZU6U2429S": { + "offerTermCode": "MZU6U2429S", + "sku": "EPXQPYHRYXVPE9B7", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "EPXQPYHRYXVPE9B7.MZU6U2429S.2TG2D8R56U": { + "rateCode": "EPXQPYHRYXVPE9B7.MZU6U2429S.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "21030" + }, + "appliesTo": [] + }, + "EPXQPYHRYXVPE9B7.MZU6U2429S.6YS6EN2CT7": { + "rateCode": "EPXQPYHRYXVPE9B7.MZU6U2429S.6YS6EN2CT7", + "description": "Red Hat Enterprise Linux (Amazon VPC), c5.9xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "All Upfront" + } + }, + "EPXQPYHRYXVPE9B7.HU7G6KETJZ": { + "offerTermCode": "HU7G6KETJZ", + "sku": "EPXQPYHRYXVPE9B7", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "EPXQPYHRYXVPE9B7.HU7G6KETJZ.2TG2D8R56U": { + "rateCode": "EPXQPYHRYXVPE9B7.HU7G6KETJZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "4021" + }, + "appliesTo": [] + }, + "EPXQPYHRYXVPE9B7.HU7G6KETJZ.6YS6EN2CT7": { + "rateCode": "EPXQPYHRYXVPE9B7.HU7G6KETJZ.6YS6EN2CT7", + "description": "Red Hat Enterprise Linux (Amazon VPC), c5.9xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.5890000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "EPXQPYHRYXVPE9B7.VJWZNREJX2": { + "offerTermCode": "VJWZNREJX2", + "sku": "EPXQPYHRYXVPE9B7", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "EPXQPYHRYXVPE9B7.VJWZNREJX2.2TG2D8R56U": { + "rateCode": "EPXQPYHRYXVPE9B7.VJWZNREJX2.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "10202" + }, + "appliesTo": [] + }, + "EPXQPYHRYXVPE9B7.VJWZNREJX2.6YS6EN2CT7": { + "rateCode": "EPXQPYHRYXVPE9B7.VJWZNREJX2.6YS6EN2CT7", + "description": "Red Hat Enterprise Linux (Amazon VPC), c5.9xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "All Upfront" + } + }, + "EPXQPYHRYXVPE9B7.NQ3QZPMQV9": { + "offerTermCode": "NQ3QZPMQV9", + "sku": "EPXQPYHRYXVPE9B7", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "EPXQPYHRYXVPE9B7.NQ3QZPMQV9.2TG2D8R56U": { + "rateCode": "EPXQPYHRYXVPE9B7.NQ3QZPMQV9.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "18081" + }, + "appliesTo": [] + }, + "EPXQPYHRYXVPE9B7.NQ3QZPMQV9.6YS6EN2CT7": { + "rateCode": "EPXQPYHRYXVPE9B7.NQ3QZPMQV9.6YS6EN2CT7", + "description": "Red Hat Enterprise Linux (Amazon VPC), c5.9xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "EPXQPYHRYXVPE9B7.6QCMYABX3D": { + "offerTermCode": "6QCMYABX3D", + "sku": "EPXQPYHRYXVPE9B7", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "EPXQPYHRYXVPE9B7.6QCMYABX3D.2TG2D8R56U": { + "rateCode": "EPXQPYHRYXVPE9B7.6QCMYABX3D.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "9020" + }, + "appliesTo": [] + }, + "EPXQPYHRYXVPE9B7.6QCMYABX3D.6YS6EN2CT7": { + "rateCode": "EPXQPYHRYXVPE9B7.6QCMYABX3D.6YS6EN2CT7", + "description": "Red Hat Enterprise Linux (Amazon VPC), c5.9xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "EPXQPYHRYXVPE9B7.Z2E3P23VKM": { + "offerTermCode": "Z2E3P23VKM", + "sku": "EPXQPYHRYXVPE9B7", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "EPXQPYHRYXVPE9B7.Z2E3P23VKM.6YS6EN2CT7": { + "rateCode": "EPXQPYHRYXVPE9B7.Z2E3P23VKM.6YS6EN2CT7", + "description": "Red Hat Enterprise Linux (Amazon VPC), c5.9xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.8690000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "No Upfront" + } + }, + "EPXQPYHRYXVPE9B7.BPH4J8HBKS": { + "offerTermCode": "BPH4J8HBKS", + "sku": "EPXQPYHRYXVPE9B7", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "EPXQPYHRYXVPE9B7.BPH4J8HBKS.6YS6EN2CT7": { + "rateCode": "EPXQPYHRYXVPE9B7.BPH4J8HBKS.6YS6EN2CT7", + "description": "Red Hat Enterprise Linux (Amazon VPC), c5.9xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.7710000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "No Upfront" + } + }, + "EPXQPYHRYXVPE9B7.38NPMPTW36": { + "offerTermCode": "38NPMPTW36", + "sku": "EPXQPYHRYXVPE9B7", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "EPXQPYHRYXVPE9B7.38NPMPTW36.6YS6EN2CT7": { + "rateCode": "EPXQPYHRYXVPE9B7.38NPMPTW36.6YS6EN2CT7", + "description": "Red Hat Enterprise Linux (Amazon VPC), c5.9xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.4270000000" + }, + "appliesTo": [] + }, + "EPXQPYHRYXVPE9B7.38NPMPTW36.2TG2D8R56U": { + "rateCode": "EPXQPYHRYXVPE9B7.38NPMPTW36.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "7800" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "EPXQPYHRYXVPE9B7.R5XV2EPZQZ": { + "offerTermCode": "R5XV2EPZQZ", + "sku": "EPXQPYHRYXVPE9B7", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "EPXQPYHRYXVPE9B7.R5XV2EPZQZ.6YS6EN2CT7": { + "rateCode": "EPXQPYHRYXVPE9B7.R5XV2EPZQZ.6YS6EN2CT7", + "description": "Red Hat Enterprise Linux (Amazon VPC), c5.9xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.4720000000" + }, + "appliesTo": [] + }, + "EPXQPYHRYXVPE9B7.R5XV2EPZQZ.2TG2D8R56U": { + "rateCode": "EPXQPYHRYXVPE9B7.R5XV2EPZQZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "8987" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "Partial Upfront" + } + } + }, + "CUB4W855GYJ9S9J8": { + "CUB4W855GYJ9S9J8.6QCMYABX3D": { + "offerTermCode": "6QCMYABX3D", + "sku": "CUB4W855GYJ9S9J8", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "CUB4W855GYJ9S9J8.6QCMYABX3D.2TG2D8R56U": { + "rateCode": "CUB4W855GYJ9S9J8.6QCMYABX3D.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "6925" + }, + "appliesTo": [] + }, + "CUB4W855GYJ9S9J8.6QCMYABX3D.6YS6EN2CT7": { + "rateCode": "CUB4W855GYJ9S9J8.6QCMYABX3D.6YS6EN2CT7", + "description": "USD 0.0 per Windows with SQL Server Standard (Amazon VPC), m2.2xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "CUB4W855GYJ9S9J8.HU7G6KETJZ": { + "offerTermCode": "HU7G6KETJZ", + "sku": "CUB4W855GYJ9S9J8", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "CUB4W855GYJ9S9J8.HU7G6KETJZ.2TG2D8R56U": { + "rateCode": "CUB4W855GYJ9S9J8.HU7G6KETJZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "2826" + }, + "appliesTo": [] + }, + "CUB4W855GYJ9S9J8.HU7G6KETJZ.6YS6EN2CT7": { + "rateCode": "CUB4W855GYJ9S9J8.HU7G6KETJZ.6YS6EN2CT7", + "description": "Windows with SQL Server Standard (Amazon VPC), m2.2xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.4840000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "CUB4W855GYJ9S9J8.4NA7Y494T4": { + "offerTermCode": "4NA7Y494T4", + "sku": "CUB4W855GYJ9S9J8", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "CUB4W855GYJ9S9J8.4NA7Y494T4.6YS6EN2CT7": { + "rateCode": "CUB4W855GYJ9S9J8.4NA7Y494T4.6YS6EN2CT7", + "description": "Windows with SQL Server Standard (Amazon VPC), m2.2xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.9440000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "No Upfront" + } + }, + "CUB4W855GYJ9S9J8.38NPMPTW36": { + "offerTermCode": "38NPMPTW36", + "sku": "CUB4W855GYJ9S9J8", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "CUB4W855GYJ9S9J8.38NPMPTW36.2TG2D8R56U": { + "rateCode": "CUB4W855GYJ9S9J8.38NPMPTW36.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "7038" + }, + "appliesTo": [] + }, + "CUB4W855GYJ9S9J8.38NPMPTW36.6YS6EN2CT7": { + "rateCode": "CUB4W855GYJ9S9J8.38NPMPTW36.6YS6EN2CT7", + "description": "Windows with SQL Server Standard (Amazon VPC), m2.2xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.4010000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "CUB4W855GYJ9S9J8.NQ3QZPMQV9": { + "offerTermCode": "NQ3QZPMQV9", + "sku": "CUB4W855GYJ9S9J8", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "CUB4W855GYJ9S9J8.NQ3QZPMQV9.2TG2D8R56U": { + "rateCode": "CUB4W855GYJ9S9J8.NQ3QZPMQV9.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "16522" + }, + "appliesTo": [] + }, + "CUB4W855GYJ9S9J8.NQ3QZPMQV9.6YS6EN2CT7": { + "rateCode": "CUB4W855GYJ9S9J8.NQ3QZPMQV9.6YS6EN2CT7", + "description": "USD 0.0 per Windows with SQL Server Standard (Amazon VPC), m2.2xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + } + } + } + } +}