From 0c8ae6a92f31b4543ec8a6626537ad914559667c Mon Sep 17 00:00:00 2001 From: aws-sdk-go-automation <43143561+aws-sdk-go-automation@users.noreply.github.com> Date: Wed, 7 Oct 2020 11:07:42 -0700 Subject: [PATCH] Release v1.35.5 (2020-10-07) (#3581) Release v1.35.5 (2020-10-07) === ### Service Client Updates * `service/ce`: Updates service API and documentation * `service/compute-optimizer`: Updates service API and documentation * `service/elasticache`: Updates service API, documentation, and paginators * This release introduces User and UserGroup to allow customers to have access control list of the Redis resources for AWS ElastiCache. This release also adds support for Outposts for AWS ElastiCache. * `service/mediapackage`: Updates service API and documentation * AWS Elemental MediaPackage provides access logs that capture detailed information about requests sent to a customer's MediaPackage channel. ### SDK Bugs * `aws/credentials`: Monotonic clock readings will now be cleared when setting credential expiry time. ([#3573](https://github.com/aws/aws-sdk-go/pull/3573)) * Prevents potential issues when the host system is hibernated / slept and the monotonic clock readings don't match the wall-clock time. --- CHANGELOG.md | 15 + CHANGELOG_PENDING.md | 2 - aws/version.go | 2 +- models/apis/ce/2017-10-25/api-2.json | 12 +- models/apis/ce/2017-10-25/docs-2.json | 28 +- .../compute-optimizer/2019-11-01/api-2.json | 14 +- .../compute-optimizer/2019-11-01/docs-2.json | 22 +- models/apis/elasticache/2015-02-02/api-2.json | 597 +++- .../apis/elasticache/2015-02-02/docs-2.json | 355 ++- .../elasticache/2015-02-02/paginators-1.json | 12 + .../apis/mediapackage/2017-10-12/api-2.json | 167 + .../apis/mediapackage/2017-10-12/docs-2.json | 21 + service/computeoptimizer/api.go | 111 +- service/costexplorer/api.go | 124 +- service/elasticache/api.go | 2805 ++++++++++++++++- .../elasticache/elasticacheiface/interface.go | 38 + service/elasticache/errors.go | 73 + service/elasticache/examples_test.go | 16 + service/mediapackage/api.go | 375 +++ .../mediapackageiface/interface.go | 8 +- 20 files changed, 4553 insertions(+), 244 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2892f36a6ea..c986668cd98 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,18 @@ +Release v1.35.5 (2020-10-07) +=== + +### Service Client Updates +* `service/ce`: Updates service API and documentation +* `service/compute-optimizer`: Updates service API and documentation +* `service/elasticache`: Updates service API, documentation, and paginators + * This release introduces User and UserGroup to allow customers to have access control list of the Redis resources for AWS ElastiCache. This release also adds support for Outposts for AWS ElastiCache. +* `service/mediapackage`: Updates service API and documentation + * AWS Elemental MediaPackage provides access logs that capture detailed information about requests sent to a customer's MediaPackage channel. + +### SDK Bugs +* `aws/credentials`: Monotonic clock readings will now be cleared when setting credential expiry time. ([#3573](https://github.com/aws/aws-sdk-go/pull/3573)) + * Prevents potential issues when the host system is hibernated / slept and the monotonic clock readings don't match the wall-clock time. + Release v1.35.4 (2020-10-06) === diff --git a/CHANGELOG_PENDING.md b/CHANGELOG_PENDING.md index 54700cc16f4..8a1927a39ca 100644 --- a/CHANGELOG_PENDING.md +++ b/CHANGELOG_PENDING.md @@ -3,5 +3,3 @@ ### SDK Enhancements ### SDK Bugs -* `aws/credentials`: Monotonic clock readings will now be cleared when setting credential expiry time. ([#3573](https://github.com/aws/aws-sdk-go/pull/3573)) - * Prevents potential issues when the host system is hibernated / slept and the monotonic clock readings don't match the wall-clock time. diff --git a/aws/version.go b/aws/version.go index 16bdc3c0fc4..3d79d3a386e 100644 --- a/aws/version.go +++ b/aws/version.go @@ -5,4 +5,4 @@ package aws const SDKName = "aws-sdk-go" // SDKVersion is the version of this SDK -const SDKVersion = "1.35.4" +const SDKVersion = "1.35.5" diff --git a/models/apis/ce/2017-10-25/api-2.json b/models/apis/ce/2017-10-25/api-2.json index 6a0a902188f..ea180183554 100644 --- a/models/apis/ce/2017-10-25/api-2.json +++ b/models/apis/ce/2017-10-25/api-2.json @@ -863,6 +863,15 @@ "type":"list", "member":{"shape":"DimensionValuesWithAttributes"} }, + "EBSResourceUtilization":{ + "type":"structure", + "members":{ + "EbsReadOpsPerSecond":{"shape":"GenericString"}, + "EbsWriteOpsPerSecond":{"shape":"GenericString"}, + "EbsReadBytesPerSecond":{"shape":"GenericString"}, + "EbsWriteBytesPerSecond":{"shape":"GenericString"} + } + }, "EC2InstanceDetails":{ "type":"structure", "members":{ @@ -895,7 +904,8 @@ "members":{ "MaxCpuUtilizationPercentage":{"shape":"GenericString"}, "MaxMemoryUtilizationPercentage":{"shape":"GenericString"}, - "MaxStorageUtilizationPercentage":{"shape":"GenericString"} + "MaxStorageUtilizationPercentage":{"shape":"GenericString"}, + "EBSResourceUtilization":{"shape":"EBSResourceUtilization"} } }, "EC2Specification":{ diff --git a/models/apis/ce/2017-10-25/docs-2.json b/models/apis/ce/2017-10-25/docs-2.json index d788be153ac..44210d1ccbc 100644 --- a/models/apis/ce/2017-10-25/docs-2.json +++ b/models/apis/ce/2017-10-25/docs-2.json @@ -12,17 +12,17 @@ "GetAnomalies": "

Retrieves all of the cost anomalies detected on your account, during the time period specified by the DateInterval object.

", "GetAnomalyMonitors": "

Retrieves the cost anomaly monitor definitions for your account. You can filter using a list of cost anomaly monitor Amazon Resource Names (ARNs).

", "GetAnomalySubscriptions": "

Retrieves the cost anomaly subscription objects for your account. You can filter using a list of cost anomaly monitor Amazon Resource Names (ARNs).

", - "GetCostAndUsage": "

Retrieves cost and usage metrics for your account. You can specify which cost and usage-related metric, such as BlendedCosts or UsageQuantity, that you want the request to return. You can also filter and group your data by various dimensions, such as SERVICE or AZ, in a specific time range. For a complete list of valid dimensions, see the GetDimensionValues operation. Master accounts in an organization in AWS Organizations have access to all member accounts.

", - "GetCostAndUsageWithResources": "

Retrieves cost and usage metrics with resources for your account. You can specify which cost and usage-related metric, such as BlendedCosts or UsageQuantity, that you want the request to return. You can also filter and group your data by various dimensions, such as SERVICE or AZ, in a specific time range. For a complete list of valid dimensions, see the GetDimensionValues operation. Master accounts in an organization in AWS Organizations have access to all member accounts. This API is currently available for the Amazon Elastic Compute Cloud – Compute service only.

This is an opt-in only feature. You can enable this feature from the Cost Explorer Settings page. For information on how to access the Settings page, see Controlling Access for Cost Explorer in the AWS Billing and Cost Management User Guide.

", + "GetCostAndUsage": "

Retrieves cost and usage metrics for your account. You can specify which cost and usage-related metric, such as BlendedCosts or UsageQuantity, that you want the request to return. You can also filter and group your data by various dimensions, such as SERVICE or AZ, in a specific time range. For a complete list of valid dimensions, see the GetDimensionValues operation. Master account in an organization in AWS Organizations have access to all member accounts.

", + "GetCostAndUsageWithResources": "

Retrieves cost and usage metrics with resources for your account. You can specify which cost and usage-related metric, such as BlendedCosts or UsageQuantity, that you want the request to return. You can also filter and group your data by various dimensions, such as SERVICE or AZ, in a specific time range. For a complete list of valid dimensions, see the GetDimensionValues operation. Master account in an organization in AWS Organizations have access to all member accounts. This API is currently available for the Amazon Elastic Compute Cloud – Compute service only.

This is an opt-in only feature. You can enable this feature from the Cost Explorer Settings page. For information on how to access the Settings page, see Controlling Access for Cost Explorer in the AWS Billing and Cost Management User Guide.

", "GetCostForecast": "

Retrieves a forecast for how much Amazon Web Services predicts that you will spend over the forecast time period that you select, based on your past costs.

", "GetDimensionValues": "

Retrieves all available filter values for a specified filter over a period of time. You can search the dimension values for an arbitrary string.

", "GetReservationCoverage": "

Retrieves the reservation coverage for your account. This enables you to see how much of your Amazon Elastic Compute Cloud, Amazon ElastiCache, Amazon Relational Database Service, or Amazon Redshift usage is covered by a reservation. An organization's master account can see the coverage of the associated member accounts. This supports dimensions, Cost Categories, and nested expressions. For any time period, you can filter data about reservation usage by the following dimensions:

To determine valid values for a dimension, use the GetDimensionValues operation.

", "GetReservationPurchaseRecommendation": "

Gets recommendations for which reservations to purchase. These recommendations could help you reduce your costs. Reservations provide a discounted hourly rate (up to 75%) compared to On-Demand pricing.

AWS generates your recommendations by identifying your On-Demand usage during a specific time period and collecting your usage into categories that are eligible for a reservation. After AWS has these categories, it simulates every combination of reservations in each category of usage to identify the best number of each type of RI to purchase to maximize your estimated savings.

For example, AWS automatically aggregates your Amazon EC2 Linux, shared tenancy, and c4 family usage in the US West (Oregon) Region and recommends that you buy size-flexible regional reservations to apply to the c4 family usage. AWS recommends the smallest size instance in an instance family. This makes it easier to purchase a size-flexible RI. AWS also shows the equal number of normalized units so that you can purchase any instance size that you want. For this example, your RI recommendation would be for c4.large because that is the smallest size instance in the c4 instance family.

", - "GetReservationUtilization": "

Retrieves the reservation utilization for your account. Master accounts in an organization have access to member accounts. You can filter data by dimensions in a time period. You can use GetDimensionValues to determine the possible dimension values. Currently, you can group only by SUBSCRIPTION_ID.

", + "GetReservationUtilization": "

Retrieves the reservation utilization for your account. Master account in an organization have access to member accounts. You can filter data by dimensions in a time period. You can use GetDimensionValues to determine the possible dimension values. Currently, you can group only by SUBSCRIPTION_ID.

", "GetRightsizingRecommendation": "

Creates recommendations that help you save cost by identifying idle and underutilized Amazon EC2 instances.

Recommendations are generated to either downsize or terminate instances, along with providing savings detail and metrics. For details on calculation and function, see Optimizing Your Cost with Rightsizing Recommendations in the AWS Billing and Cost Management User Guide.

", "GetSavingsPlansCoverage": "

Retrieves the Savings Plans covered for your account. This enables you to see how much of your cost is covered by a Savings Plan. An organization’s master account can see the coverage of the associated member accounts. This supports dimensions, Cost Categories, and nested expressions. For any time period, you can filter data for Savings Plans usage with the following dimensions:

To determine valid values for a dimension, use the GetDimensionValues operation.

", "GetSavingsPlansPurchaseRecommendation": "

Retrieves your request parameters, Savings Plan Recommendations Summary and Details.

", - "GetSavingsPlansUtilization": "

Retrieves the Savings Plans utilization for your account across date ranges with daily or monthly granularity. Master accounts in an organization have access to member accounts. You can use GetDimensionValues in SAVINGS_PLANS to determine the possible dimension values.

You cannot group by any dimension values for GetSavingsPlansUtilization.

", + "GetSavingsPlansUtilization": "

Retrieves the Savings Plans utilization for your account across date ranges with daily or monthly granularity. Master account in an organization have access to member accounts. You can use GetDimensionValues in SAVINGS_PLANS to determine the possible dimension values.

You cannot group by any dimension values for GetSavingsPlansUtilization.

", "GetSavingsPlansUtilizationDetails": "

Retrieves attribute data along with aggregate utilization and savings data for a given time period. This doesn't support granular or grouped data (daily/monthly) in response. You can't retrieve data by dates in a single response similar to GetSavingsPlanUtilization, but you have the option to make multiple calls to GetSavingsPlanUtilizationDetails by providing individual dates. You can use GetDimensionValues in SAVINGS_PLANS to determine the possible dimension values.

GetSavingsPlanUtilizationDetails internally groups data by SavingsPlansArn.

", "GetTags": "

Queries for available tag keys and tag values for a specified period. You can search the tag values for an arbitrary string.

", "GetUsageForecast": "

Retrieves a forecast for how much Amazon Web Services predicts that you will use over the forecast time period that you select, based on your past usage.

", @@ -36,10 +36,10 @@ "AccountScope": { "base": null, "refs": { - "GetReservationPurchaseRecommendationRequest$AccountScope": "

The account scope that you want your recommendations for. Amazon Web Services calculates recommendations including the payer account and linked accounts if the value is set to PAYER. If the value is LINKED, recommendations are calculated for individual linked accounts only.

", - "GetSavingsPlansPurchaseRecommendationRequest$AccountScope": "

The account scope that you want your recommendations for. Amazon Web Services calculates recommendations including the payer account and linked accounts if the value is set to PAYER. If the value is LINKED, recommendations are calculated for individual linked accounts only.

", + "GetReservationPurchaseRecommendationRequest$AccountScope": "

The account scope that you want your recommendations for. Amazon Web Services calculates recommendations including the master account and member accounts if the value is set to PAYER. If the value is LINKED, recommendations are calculated for individual member accounts only.

", + "GetSavingsPlansPurchaseRecommendationRequest$AccountScope": "

The account scope that you want your recommendations for. Amazon Web Services calculates recommendations including the master account and member accounts if the value is set to PAYER. If the value is LINKED, recommendations are calculated for individual member accounts only.

", "ReservationPurchaseRecommendation$AccountScope": "

The account scope that AWS recommends that you purchase this instance for. For example, you can purchase this reservation for an entire organization in AWS Organizations.

", - "SavingsPlansPurchaseRecommendation$AccountScope": "

The account scope that you want your recommendations for. AWS calculates recommendations including the payer account and linked accounts if the value is set to PAYER. If the value is LINKED, recommendations are calculated for individual linked accounts only.

" + "SavingsPlansPurchaseRecommendation$AccountScope": "

The account scope that you want your recommendations for. Amazon Web Services calculates recommendations including the master account and member accounts if the value is set to PAYER. If the value is LINKED, recommendations are calculated for individual member accounts only.

" } }, "AmortizedRecurringFee": { @@ -411,6 +411,12 @@ "GetDimensionValuesResponse$DimensionValues": "

The filters that you used to filter your request. Some dimensions are available only for a specific context.

If you set the context to COST_AND_USAGE, you can use the following dimensions for searching:

If you set the context to RESERVATIONS, you can use the following dimensions for searching:

If you set the context to SAVINGS_PLANS, you can use the following dimensions for searching:

" } }, + "EBSResourceUtilization": { + "base": "

The EBS field that contains a list of EBS metrics associated with the current instance.

", + "refs": { + "EC2ResourceUtilization$EBSResourceUtilization": "

The EBS field that contains a list of EBS metrics associated with the current instance.

" + } + }, "EC2InstanceDetails": { "base": "

Details about the Amazon EC2 instances that AWS recommends that you purchase.

", "refs": { @@ -475,7 +481,7 @@ } }, "Expression": { - "base": "

Use Expression to filter by cost or by usage. There are two patterns:

For GetRightsizingRecommendation action, a combination of OR and NOT is not supported. OR is not supported between different dimensions, or dimensions and tags. NOT operators aren't supported. Dimensions are also limited to LINKED_ACCOUNT, REGION, or RIGHTSIZING_TYPE.

", + "base": "

Use Expression to filter by cost or by usage. There are two patterns:

For GetRightsizingRecommendation action, a combination of OR and NOT is not supported. OR is not supported between different dimensions, or dimensions and tags. NOT operators aren't supported. Dimensions are also limited to LINKED_ACCOUNT, REGION, or RIGHTSIZING_TYPE.

", "refs": { "AnomalyMonitor$MonitorSpecification": null, "CostCategoryRule$Rule": "

An Expression object used to categorize costs. This supports dimensions, tags, and nested expressions. Currently the only dimensions supported are LINKED_ACCOUNT, SERVICE_CODE, RECORD_TYPE, and LINKED_ACCOUNT_NAME.

Root level OR is not supported. We recommend that you create a separate rule instead.

RECORD_TYPE is a dimension used for Cost Explorer APIs, and is also supported for Cost Category expressions. This dimension uses different terms, depending on whether you're using the console or API/JSON editor. For a detailed comparison, see Term Comparisons in the AWS Billing and Cost Management User Guide.

", @@ -565,6 +571,10 @@ "CurrentInstance$CurrencyCode": "

The currency code that AWS used to calculate the costs for this instance.

", "DeleteAnomalyMonitorRequest$MonitorArn": "

The unique identifier of the cost anomaly monitor that you want to delete.

", "DeleteAnomalySubscriptionRequest$SubscriptionArn": "

The unique identifier of the cost anomaly subscription that you want to delete.

", + "EBSResourceUtilization$EbsReadOpsPerSecond": "

The maximum number of read operations per second.

", + "EBSResourceUtilization$EbsWriteOpsPerSecond": "

The maximum number of write operations per second.

", + "EBSResourceUtilization$EbsReadBytesPerSecond": "

The maximum size of read operations per second

", + "EBSResourceUtilization$EbsWriteBytesPerSecond": "

The maximum size of write operations per second.

", "EC2InstanceDetails$Family": "

The instance family of the recommended reservation.

", "EC2InstanceDetails$InstanceType": "

The type of instance that AWS recommends.

", "EC2InstanceDetails$Region": "

The AWS Region of the recommended reservation.

", @@ -1506,7 +1516,7 @@ } }, "SavingsPlansUtilizationDetail": { - "base": "

A single daily or monthly Savings Plans utilization rate, and details for your account. Master accounts in an organization have access to member accounts. You can use GetDimensionValues to determine the possible dimension values.

", + "base": "

A single daily or monthly Savings Plans utilization rate, and details for your account. A master account in an organization have access to member accounts. You can use GetDimensionValues to determine the possible dimension values.

", "refs": { "SavingsPlansUtilizationDetails$member": null } diff --git a/models/apis/compute-optimizer/2019-11-01/api-2.json b/models/apis/compute-optimizer/2019-11-01/api-2.json index 01e08e73ff3..1aec2cf9812 100644 --- a/models/apis/compute-optimizer/2019-11-01/api-2.json +++ b/models/apis/compute-optimizer/2019-11-01/api-2.json @@ -317,6 +317,10 @@ "Finding", "UtilizationMetricsCpuMaximum", "UtilizationMetricsMemoryMaximum", + "UtilizationMetricsEbsReadOpsPerSecondMaximum", + "UtilizationMetricsEbsWriteOpsPerSecondMaximum", + "UtilizationMetricsEbsReadBytesPerSecondMaximum", + "UtilizationMetricsEbsWriteBytesPerSecondMaximum", "LookbackPeriodInDays", "CurrentConfigurationInstanceType", "CurrentConfigurationDesiredCapacity", @@ -361,6 +365,10 @@ "CurrentInstanceType", "UtilizationMetricsCpuMaximum", "UtilizationMetricsMemoryMaximum", + "UtilizationMetricsEbsReadOpsPerSecondMaximum", + "UtilizationMetricsEbsWriteOpsPerSecondMaximum", + "UtilizationMetricsEbsReadBytesPerSecondMaximum", + "UtilizationMetricsEbsWriteBytesPerSecondMaximum", "CurrentOnDemandPrice", "CurrentStandardOneYearNoUpfrontReservedPrice", "CurrentStandardThreeYearNoUpfrontReservedPrice", @@ -632,7 +640,11 @@ "type":"string", "enum":[ "Cpu", - "Memory" + "Memory", + "EBS_READ_OPS_PER_SECOND", + "EBS_WRITE_OPS_PER_SECOND", + "EBS_READ_BYTES_PER_SECOND", + "EBS_WRITE_BYTES_PER_SECOND" ] }, "MetricStatistic":{ diff --git a/models/apis/compute-optimizer/2019-11-01/docs-2.json b/models/apis/compute-optimizer/2019-11-01/docs-2.json index 43e314bed9e..4cfb8192f4c 100644 --- a/models/apis/compute-optimizer/2019-11-01/docs-2.json +++ b/models/apis/compute-optimizer/2019-11-01/docs-2.json @@ -5,9 +5,9 @@ "DescribeRecommendationExportJobs": "

Describes recommendation export jobs created in the last seven days.

Use the ExportAutoScalingGroupRecommendations or ExportEC2InstanceRecommendations actions to request an export of your recommendations. Then use the DescribeRecommendationExportJobs action to view your export jobs.

", "ExportAutoScalingGroupRecommendations": "

Exports optimization recommendations for Auto Scaling groups.

Recommendations are exported in a comma-separated values (.csv) file, and its metadata in a JavaScript Object Notation (.json) file, to an existing Amazon Simple Storage Service (Amazon S3) bucket that you specify. For more information, see Exporting Recommendations in the Compute Optimizer User Guide.

You can have only one Auto Scaling group export job in progress per AWS Region.

", "ExportEC2InstanceRecommendations": "

Exports optimization recommendations for Amazon EC2 instances.

Recommendations are exported in a comma-separated values (.csv) file, and its metadata in a JavaScript Object Notation (.json) file, to an existing Amazon Simple Storage Service (Amazon S3) bucket that you specify. For more information, see Exporting Recommendations in the Compute Optimizer User Guide.

You can have only one Amazon EC2 instance export job in progress per AWS Region.

", - "GetAutoScalingGroupRecommendations": "

Returns Auto Scaling group recommendations.

AWS Compute Optimizer currently generates recommendations for Auto Scaling groups that are configured to run instances of the M, C, R, T, and X instance families. The service does not generate recommendations for Auto Scaling groups that have a scaling policy attached to them, or that do not have the same values for desired, minimum, and maximum capacity. In order for Compute Optimizer to analyze your Auto Scaling groups, they must be of a fixed size. For more information, see the AWS Compute Optimizer User Guide.

", - "GetEC2InstanceRecommendations": "

Returns Amazon EC2 instance recommendations.

AWS Compute Optimizer currently generates recommendations for Amazon Elastic Compute Cloud (Amazon EC2) and Amazon EC2 Auto Scaling. It generates recommendations for M, C, R, T, and X instance families. For more information, see the AWS Compute Optimizer User Guide.

", - "GetEC2RecommendationProjectedMetrics": "

Returns the projected utilization metrics of Amazon EC2 instance recommendations.

", + "GetAutoScalingGroupRecommendations": "

Returns Auto Scaling group recommendations.

AWS Compute Optimizer generates recommendations for Amazon EC2 Auto Scaling groups that meet a specific set of requirements. For more information, see the Supported resources and requirements in the AWS Compute Optimizer User Guide.

", + "GetEC2InstanceRecommendations": "

Returns Amazon EC2 instance recommendations.

AWS Compute Optimizer generates recommendations for Amazon Elastic Compute Cloud (Amazon EC2) instances that meet a specific set of requirements. For more information, see the Supported resources and requirements in the AWS Compute Optimizer User Guide.

", + "GetEC2RecommendationProjectedMetrics": "

Returns the projected utilization metrics of Amazon EC2 instance recommendations.

The Cpu and Memory metrics are the only projected utilization metrics returned when you run this action. Additionally, the Memory metric is returned only for resources that have the unified CloudWatch agent installed on them. For more information, see Enabling Memory Utilization with the CloudWatch Agent.

", "GetEnrollmentStatus": "

Returns the enrollment (opt in) status of an account to the AWS Compute Optimizer service.

If the account is the master account of an organization, this action also confirms the enrollment status of member accounts within the organization.

", "GetRecommendationSummaries": "

Returns the optimization findings for an account.

For example, it returns the number of Amazon EC2 instances in an account that are under-provisioned, over-provisioned, or optimized. It also returns the number of Auto Scaling groups in an account that are not optimized, or optimized.

", "UpdateEnrollmentStatus": "

Updates the enrollment (opt in) status of an account to the AWS Compute Optimizer service.

If the account is a master account of an organization, this action can also be used to enroll member accounts within the organization.

" @@ -189,7 +189,7 @@ "ExportableAutoScalingGroupFields": { "base": null, "refs": { - "ExportAutoScalingGroupRecommendationsRequest$fieldsToExport": "

The recommendations data to include in the export file.

" + "ExportAutoScalingGroupRecommendationsRequest$fieldsToExport": "

The recommendations data to include in the export file. For more information about the fields that can be exported, see Exported files in the Compute Optimizer User Guide.

" } }, "ExportableInstanceField": { @@ -201,7 +201,7 @@ "ExportableInstanceFields": { "base": null, "refs": { - "ExportEC2InstanceRecommendationsRequest$fieldsToExport": "

The recommendations data to include in the export file.

" + "ExportEC2InstanceRecommendationsRequest$fieldsToExport": "

The recommendations data to include in the export file. For more information about the fields that can be exported, see Exported files in the Compute Optimizer User Guide.

" } }, "FailureReason": { @@ -491,8 +491,8 @@ "MetricName": { "base": null, "refs": { - "ProjectedMetric$name": "

The name of the projected utilization metric.

Memory metrics are only returned for resources that have the unified CloudWatch agent installed on them. For more information, see Enabling Memory Utilization with the CloudWatch Agent.

", - "UtilizationMetric$name": "

The name of the utilization metric.

Memory metrics are only returned for resources that have the unified CloudWatch agent installed on them. For more information, see Enabling Memory Utilization with the CloudWatch Agent.

" + "ProjectedMetric$name": "

The name of the projected utilization metric.

", + "UtilizationMetric$name": "

The name of the utilization metric.

The Memory metric is returned only for resources that have the unified CloudWatch agent installed on them. For more information, see Enabling Memory Utilization with the CloudWatch Agent.

" } }, "MetricStatistic": { @@ -558,7 +558,7 @@ } }, "ProjectedMetric": { - "base": "

Describes a projected utilization metric of a recommendation option, such as an Amazon EC2 instance.

", + "base": "

Describes a projected utilization metric of a recommendation option, such as an Amazon EC2 instance.

The Cpu and Memory metrics are the only projected utilization metrics returned when you run the GetEC2RecommendationProjectedMetrics action. Additionally, the Memory metric is returned only for resources that have the unified CloudWatch agent installed on them. For more information, see Enabling Memory Utilization with the CloudWatch Agent.

", "refs": { "ProjectedMetrics$member": null } @@ -572,8 +572,8 @@ "ProjectedUtilizationMetrics": { "base": null, "refs": { - "AutoScalingGroupRecommendationOption$projectedUtilizationMetrics": "

An array of objects that describe the projected utilization metrics of the Auto Scaling group recommendation option.

", - "InstanceRecommendationOption$projectedUtilizationMetrics": "

An array of objects that describe the projected utilization metrics of the instance recommendation option.

" + "AutoScalingGroupRecommendationOption$projectedUtilizationMetrics": "

An array of objects that describe the projected utilization metrics of the Auto Scaling group recommendation option.

The Cpu and Memory metrics are the only projected utilization metrics returned. Additionally, the Memory metric is returned only for resources that have the unified CloudWatch agent installed on them. For more information, see Enabling Memory Utilization with the CloudWatch Agent.

", + "InstanceRecommendationOption$projectedUtilizationMetrics": "

An array of objects that describe the projected utilization metrics of the instance recommendation option.

The Cpu and Memory metrics are the only projected utilization metrics returned. Additionally, the Memory metric is returned only for resources that have the unified CloudWatch agent installed on them. For more information, see Enabling Memory Utilization with the CloudWatch Agent.

" } }, "Rank": { @@ -646,7 +646,7 @@ } }, "RecommendedOptionProjectedMetric": { - "base": "

Describes a projected utilization metric of a recommendation option.

", + "base": "

Describes a projected utilization metric of a recommendation option.

The Cpu and Memory metrics are the only projected utilization metrics returned when you run the GetEC2RecommendationProjectedMetrics action. Additionally, the Memory metric is returned only for resources that have the unified CloudWatch agent installed on them. For more information, see Enabling Memory Utilization with the CloudWatch Agent.

", "refs": { "RecommendedOptionProjectedMetrics$member": null } diff --git a/models/apis/elasticache/2015-02-02/api-2.json b/models/apis/elasticache/2015-02-02/api-2.json index 9afa90e0470..78febe8b9ff 100644 --- a/models/apis/elasticache/2015-02-02/api-2.json +++ b/models/apis/elasticache/2015-02-02/api-2.json @@ -197,7 +197,8 @@ {"shape":"CacheSubnetGroupAlreadyExistsFault"}, {"shape":"CacheSubnetGroupQuotaExceededFault"}, {"shape":"CacheSubnetQuotaExceededFault"}, - {"shape":"InvalidSubnet"} + {"shape":"InvalidSubnet"}, + {"shape":"SubnetNotAllowedFault"} ] }, "CreateGlobalReplicationGroup":{ @@ -234,6 +235,8 @@ {"shape":"CacheClusterNotFoundFault"}, {"shape":"InvalidCacheClusterStateFault"}, {"shape":"ReplicationGroupAlreadyExistsFault"}, + {"shape":"InvalidUserGroupStateFault"}, + {"shape":"UserGroupNotFoundFault"}, {"shape":"InsufficientCacheClusterCapacityFault"}, {"shape":"CacheSecurityGroupNotFoundFault"}, {"shape":"CacheSubnetGroupNotFoundFault"}, @@ -273,6 +276,45 @@ {"shape":"InvalidParameterValueException"} ] }, + "CreateUser":{ + "name":"CreateUser", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateUserMessage"}, + "output":{ + "shape":"User", + "resultWrapper":"CreateUserResult" + }, + "errors":[ + {"shape":"UserAlreadyExistsFault"}, + {"shape":"UserQuotaExceededFault"}, + {"shape":"DuplicateUserNameFault"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"InvalidParameterCombinationException"} + ] + }, + "CreateUserGroup":{ + "name":"CreateUserGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateUserGroupMessage"}, + "output":{ + "shape":"UserGroup", + "resultWrapper":"CreateUserGroupResult" + }, + "errors":[ + {"shape":"UserNotFoundFault"}, + {"shape":"DuplicateUserNameFault"}, + {"shape":"UserGroupAlreadyExistsFault"}, + {"shape":"DefaultUserRequired"}, + {"shape":"UserGroupQuotaExceededFault"}, + {"shape":"InvalidParameterValueException"} + ] + }, "DecreaseNodeGroupsInGlobalReplicationGroup":{ "name":"DecreaseNodeGroupsInGlobalReplicationGroup", "http":{ @@ -434,6 +476,41 @@ {"shape":"InvalidParameterCombinationException"} ] }, + "DeleteUser":{ + "name":"DeleteUser", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteUserMessage"}, + "output":{ + "shape":"User", + "resultWrapper":"DeleteUserResult" + }, + "errors":[ + {"shape":"InvalidUserStateFault"}, + {"shape":"UserNotFoundFault"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"DefaultUserAssociatedToUserGroupFault"} + ] + }, + "DeleteUserGroup":{ + "name":"DeleteUserGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteUserGroupMessage"}, + "output":{ + "shape":"UserGroup", + "resultWrapper":"DeleteUserGroupResult" + }, + "errors":[ + {"shape":"UserGroupNotFoundFault"}, + {"shape":"InvalidUserGroupStateFault"}, + {"shape":"InvalidParameterValueException"} + ] + }, "DescribeCacheClusters":{ "name":"DescribeCacheClusters", "http":{ @@ -680,6 +757,38 @@ {"shape":"InvalidParameterCombinationException"} ] }, + "DescribeUserGroups":{ + "name":"DescribeUserGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeUserGroupsMessage"}, + "output":{ + "shape":"DescribeUserGroupsResult", + "resultWrapper":"DescribeUserGroupsResult" + }, + "errors":[ + {"shape":"UserGroupNotFoundFault"}, + {"shape":"InvalidParameterCombinationException"} + ] + }, + "DescribeUsers":{ + "name":"DescribeUsers", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeUsersMessage"}, + "output":{ + "shape":"DescribeUsersResult", + "resultWrapper":"DescribeUsersResult" + }, + "errors":[ + {"shape":"UserNotFoundFault"}, + {"shape":"InvalidParameterCombinationException"} + ] + }, "DisassociateGlobalReplicationGroup":{ "name":"DisassociateGlobalReplicationGroup", "http":{ @@ -853,7 +962,8 @@ {"shape":"CacheSubnetGroupNotFoundFault"}, {"shape":"CacheSubnetQuotaExceededFault"}, {"shape":"SubnetInUse"}, - {"shape":"InvalidSubnet"} + {"shape":"InvalidSubnet"}, + {"shape":"SubnetNotAllowedFault"} ] }, "ModifyGlobalReplicationGroup":{ @@ -887,6 +997,8 @@ "errors":[ {"shape":"ReplicationGroupNotFoundFault"}, {"shape":"InvalidReplicationGroupStateFault"}, + {"shape":"InvalidUserGroupStateFault"}, + {"shape":"UserGroupNotFoundFault"}, {"shape":"InvalidCacheClusterStateFault"}, {"shape":"InvalidCacheSecurityGroupStateFault"}, {"shape":"InsufficientCacheClusterCapacityFault"}, @@ -925,6 +1037,45 @@ {"shape":"InvalidParameterCombinationException"} ] }, + "ModifyUser":{ + "name":"ModifyUser", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyUserMessage"}, + "output":{ + "shape":"User", + "resultWrapper":"ModifyUserResult" + }, + "errors":[ + {"shape":"UserNotFoundFault"}, + {"shape":"InvalidUserStateFault"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"InvalidParameterCombinationException"} + ] + }, + "ModifyUserGroup":{ + "name":"ModifyUserGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyUserGroupMessage"}, + "output":{ + "shape":"UserGroup", + "resultWrapper":"ModifyUserGroupResult" + }, + "errors":[ + {"shape":"UserGroupNotFoundFault"}, + {"shape":"UserNotFoundFault"}, + {"shape":"DuplicateUserNameFault"}, + {"shape":"DefaultUserRequired"}, + {"shape":"InvalidUserGroupStateFault"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"InvalidParameterCombinationException"} + ] + }, "PurchaseReservedCacheNodesOffering":{ "name":"PurchaseReservedCacheNodesOffering", "http":{ @@ -1094,6 +1245,10 @@ "cross-az" ] }, + "AccessString":{ + "type":"string", + "pattern":".*\\S.*" + }, "AddTagsToResourceMessage":{ "type":"structure", "required":[ @@ -1129,7 +1284,22 @@ "type":"string", "enum":[ "SET", - "ROTATE" + "ROTATE", + "DELETE" + ] + }, + "Authentication":{ + "type":"structure", + "members":{ + "Type":{"shape":"AuthenticationType"}, + "PasswordCount":{"shape":"IntegerOptional"} + } + }, + "AuthenticationType":{ + "type":"string", + "enum":[ + "password", + "no-password" ] }, "AuthorizationAlreadyExistsFault":{ @@ -1229,6 +1399,7 @@ "CacheClusterStatus":{"shape":"String"}, "NumCacheNodes":{"shape":"IntegerOptional"}, "PreferredAvailabilityZone":{"shape":"String"}, + "PreferredOutpostArn":{"shape":"String"}, "CacheClusterCreateTime":{"shape":"TStamp"}, "PreferredMaintenanceWindow":{"shape":"String"}, "PendingModifiedValues":{"shape":"PendingModifiedValues"}, @@ -1324,7 +1495,8 @@ "Endpoint":{"shape":"Endpoint"}, "ParameterGroupStatus":{"shape":"String"}, "SourceCacheNodeId":{"shape":"String"}, - "CustomerAvailabilityZone":{"shape":"String"} + "CustomerAvailabilityZone":{"shape":"String"}, + "CustomerOutpostArn":{"shape":"String"} } }, "CacheNodeIdsList":{ @@ -1683,7 +1855,8 @@ "members":{ "NodeGroupId":{"shape":"AllowedNodeGroupId"}, "NewReplicaCount":{"shape":"Integer"}, - "PreferredAvailabilityZones":{"shape":"PreferredAvailabilityZoneList"} + "PreferredAvailabilityZones":{"shape":"PreferredAvailabilityZoneList"}, + "PreferredOutpostArns":{"shape":"PreferredOutpostArnList"} } }, "CopySnapshotMessage":{ @@ -1731,7 +1904,10 @@ "AutoMinorVersionUpgrade":{"shape":"BooleanOptional"}, "SnapshotRetentionLimit":{"shape":"IntegerOptional"}, "SnapshotWindow":{"shape":"String"}, - "AuthToken":{"shape":"String"} + "AuthToken":{"shape":"String"}, + "OutpostMode":{"shape":"OutpostMode"}, + "PreferredOutpostArn":{"shape":"String"}, + "PreferredOutpostArns":{"shape":"PreferredOutpostArnList"} } }, "CreateCacheClusterResult":{ @@ -1850,7 +2026,8 @@ "AuthToken":{"shape":"String"}, "TransitEncryptionEnabled":{"shape":"BooleanOptional"}, "AtRestEncryptionEnabled":{"shape":"BooleanOptional"}, - "KmsKeyId":{"shape":"String"} + "KmsKeyId":{"shape":"String"}, + "UserGroupIds":{"shape":"UserGroupIdListInput"} } }, "CreateReplicationGroupResult":{ @@ -1875,6 +2052,35 @@ "Snapshot":{"shape":"Snapshot"} } }, + "CreateUserGroupMessage":{ + "type":"structure", + "required":[ + "UserGroupId", + "Engine" + ], + "members":{ + "UserGroupId":{"shape":"String"}, + "Engine":{"shape":"EngineType"}, + "UserIds":{"shape":"UserIdListInput"} + } + }, + "CreateUserMessage":{ + "type":"structure", + "required":[ + "UserId", + "UserName", + "Engine", + "AccessString" + ], + "members":{ + "UserId":{"shape":"UserId"}, + "UserName":{"shape":"UserName"}, + "Engine":{"shape":"EngineType"}, + "Passwords":{"shape":"PasswordListInput"}, + "AccessString":{"shape":"AccessString"}, + "NoPasswordRequired":{"shape":"BooleanOptional"} + } + }, "CustomerNodeEndpoint":{ "type":"structure", "members":{ @@ -1927,6 +2133,28 @@ "ReplicationGroup":{"shape":"ReplicationGroup"} } }, + "DefaultUserAssociatedToUserGroupFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DefaultUserAssociatedToUserGroup", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "DefaultUserRequired":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DefaultUserRequired", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "DeleteCacheClusterMessage":{ "type":"structure", "required":["CacheClusterId"], @@ -2007,6 +2235,20 @@ "Snapshot":{"shape":"Snapshot"} } }, + "DeleteUserGroupMessage":{ + "type":"structure", + "required":["UserGroupId"], + "members":{ + "UserGroupId":{"shape":"String"} + } + }, + "DeleteUserMessage":{ + "type":"structure", + "required":["UserId"], + "members":{ + "UserId":{"shape":"UserId"} + } + }, "DescribeCacheClustersMessage":{ "type":"structure", "members":{ @@ -2181,6 +2423,38 @@ "Marker":{"shape":"String"} } }, + "DescribeUserGroupsMessage":{ + "type":"structure", + "members":{ + "UserGroupId":{"shape":"String"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"} + } + }, + "DescribeUserGroupsResult":{ + "type":"structure", + "members":{ + "UserGroups":{"shape":"UserGroupList"}, + "Marker":{"shape":"String"} + } + }, + "DescribeUsersMessage":{ + "type":"structure", + "members":{ + "Engine":{"shape":"EngineType"}, + "UserId":{"shape":"UserId"}, + "Filters":{"shape":"FilterList"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"} + } + }, + "DescribeUsersResult":{ + "type":"structure", + "members":{ + "Users":{"shape":"UserList"}, + "Marker":{"shape":"String"} + } + }, "DisassociateGlobalReplicationGroupMessage":{ "type":"structure", "required":[ @@ -2201,6 +2475,17 @@ } }, "Double":{"type":"double"}, + "DuplicateUserNameFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DuplicateUserName", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "EC2SecurityGroup":{ "type":"structure", "members":{ @@ -2233,6 +2518,10 @@ }, "wrapper":true }, + "EngineType":{ + "type":"string", + "pattern":"[a-zA-Z]*" + }, "Event":{ "type":"structure", "members":{ @@ -2275,6 +2564,34 @@ "GlobalReplicationGroup":{"shape":"GlobalReplicationGroup"} } }, + "Filter":{ + "type":"structure", + "required":[ + "Name", + "Values" + ], + "members":{ + "Name":{"shape":"FilterName"}, + "Values":{"shape":"FilterValueList"} + } + }, + "FilterList":{ + "type":"list", + "member":{"shape":"Filter"} + }, + "FilterName":{ + "type":"string", + "pattern":".*\\S.*" + }, + "FilterValue":{ + "type":"string", + "pattern":".*\\S.*" + }, + "FilterValueList":{ + "type":"list", + "member":{"shape":"FilterValue"}, + "min":1 + }, "GlobalNodeGroup":{ "type":"structure", "members":{ @@ -2546,6 +2863,28 @@ }, "exception":true }, + "InvalidUserGroupStateFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidUserGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidUserStateFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidUserState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "InvalidVPCNetworkStateFault":{ "type":"structure", "members":{ @@ -2680,7 +3019,10 @@ "SnapshotWindow":{"shape":"String"}, "CacheNodeType":{"shape":"String"}, "AuthToken":{"shape":"String"}, - "AuthTokenUpdateStrategy":{"shape":"AuthTokenUpdateStrategyType"} + "AuthTokenUpdateStrategy":{"shape":"AuthTokenUpdateStrategyType"}, + "UserGroupIdsToAdd":{"shape":"UserGroupIdList"}, + "UserGroupIdsToRemove":{"shape":"UserGroupIdList"}, + "RemoveUserGroups":{"shape":"BooleanOptional"} } }, "ModifyReplicationGroupResult":{ @@ -2711,6 +3053,26 @@ "ReplicationGroup":{"shape":"ReplicationGroup"} } }, + "ModifyUserGroupMessage":{ + "type":"structure", + "required":["UserGroupId"], + "members":{ + "UserGroupId":{"shape":"String"}, + "UserIdsToAdd":{"shape":"UserIdListInput"}, + "UserIdsToRemove":{"shape":"UserIdListInput"} + } + }, + "ModifyUserMessage":{ + "type":"structure", + "required":["UserId"], + "members":{ + "UserId":{"shape":"UserId"}, + "AccessString":{"shape":"AccessString"}, + "AppendAccessString":{"shape":"AccessString"}, + "Passwords":{"shape":"PasswordListInput"}, + "NoPasswordRequired":{"shape":"BooleanOptional"} + } + }, "MultiAZStatus":{ "type":"string", "enum":[ @@ -2747,7 +3109,9 @@ "Slots":{"shape":"String"}, "ReplicaCount":{"shape":"IntegerOptional"}, "PrimaryAvailabilityZone":{"shape":"String"}, - "ReplicaAvailabilityZones":{"shape":"AvailabilityZonesList"} + "ReplicaAvailabilityZones":{"shape":"AvailabilityZonesList"}, + "PrimaryOutpostArn":{"shape":"String"}, + "ReplicaOutpostArns":{"shape":"OutpostArnsList"} } }, "NodeGroupConfigurationList":{ @@ -2771,6 +3135,7 @@ "CacheNodeId":{"shape":"String"}, "ReadEndpoint":{"shape":"Endpoint"}, "PreferredAvailabilityZone":{"shape":"String"}, + "PreferredOutpostArn":{"shape":"String"}, "CurrentRole":{"shape":"String"} } }, @@ -2923,6 +3288,20 @@ "TopicStatus":{"shape":"String"} } }, + "OutpostArnsList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"OutpostArn" + } + }, + "OutpostMode":{ + "type":"string", + "enum":[ + "single-outpost", + "cross-outpost" + ] + }, "Parameter":{ "type":"structure", "members":{ @@ -2958,6 +3337,11 @@ "locationName":"Parameter" } }, + "PasswordListInput":{ + "type":"list", + "member":{"shape":"String"}, + "min":1 + }, "PendingAutomaticFailoverStatus":{ "type":"string", "enum":[ @@ -2982,6 +3366,13 @@ "locationName":"PreferredAvailabilityZone" } }, + "PreferredOutpostArnList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"PreferredOutpostArn" + } + }, "ProcessedUpdateAction":{ "type":"structure", "members":{ @@ -3126,8 +3517,10 @@ "AuthTokenLastModifiedDate":{"shape":"TStamp"}, "TransitEncryptionEnabled":{"shape":"BooleanOptional"}, "AtRestEncryptionEnabled":{"shape":"BooleanOptional"}, + "MemberClustersOutpostArns":{"shape":"ReplicationGroupOutpostArnList"}, "KmsKeyId":{"shape":"String"}, - "ARN":{"shape":"String"} + "ARN":{"shape":"String"}, + "UserGroupIds":{"shape":"UserGroupIdList"} }, "wrapper":true }, @@ -3194,13 +3587,21 @@ }, "exception":true }, + "ReplicationGroupOutpostArnList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"ReplicationGroupOutpostArn" + } + }, "ReplicationGroupPendingModifiedValues":{ "type":"structure", "members":{ "PrimaryClusterId":{"shape":"String"}, "AutomaticFailoverStatus":{"shape":"PendingAutomaticFailoverStatus"}, "Resharding":{"shape":"ReshardingStatus"}, - "AuthTokenStatus":{"shape":"AuthTokenUpdateStatus"} + "AuthTokenStatus":{"shape":"AuthTokenUpdateStatus"}, + "UserGroups":{"shape":"UserGroupsUpdateStatus"} } }, "ReservedCacheNode":{ @@ -3481,6 +3882,7 @@ "EngineVersion":{"shape":"String"}, "NumCacheNodes":{"shape":"IntegerOptional"}, "PreferredAvailabilityZone":{"shape":"String"}, + "PreferredOutpostArn":{"shape":"String"}, "CacheClusterCreateTime":{"shape":"TStamp"}, "PreferredMaintenanceWindow":{"shape":"String"}, "TopicArn":{"shape":"String"}, @@ -3564,7 +3966,9 @@ "cache-parameter-group", "cache-security-group", "cache-subnet-group", - "replication-group" + "replication-group", + "user", + "user-group" ] }, "StartMigrationMessage":{ @@ -3589,7 +3993,8 @@ "type":"structure", "members":{ "SubnetIdentifier":{"shape":"String"}, - "SubnetAvailabilityZone":{"shape":"AvailabilityZone"} + "SubnetAvailabilityZone":{"shape":"AvailabilityZone"}, + "SubnetOutpost":{"shape":"SubnetOutpost"} } }, "SubnetIdentifierList":{ @@ -3617,6 +4022,23 @@ "locationName":"Subnet" } }, + "SubnetNotAllowedFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"SubnetNotAllowedFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "SubnetOutpost":{ + "type":"structure", + "members":{ + "SubnetOutpostArn":{"shape":"String"} + } + }, "TStamp":{"type":"timestamp"}, "Tag":{ "type":"structure", @@ -3695,6 +4117,10 @@ "EndTime":{"shape":"TStamp"} } }, + "UGReplicationGroupIdList":{ + "type":"list", + "member":{"shape":"String"} + }, "UnprocessedUpdateAction":{ "type":"structure", "members":{ @@ -3773,6 +4199,151 @@ "Marker":{"shape":"String"}, "UpdateActions":{"shape":"UpdateActionList"} } + }, + "User":{ + "type":"structure", + "members":{ + "UserId":{"shape":"String"}, + "UserName":{"shape":"String"}, + "Status":{"shape":"String"}, + "Engine":{"shape":"EngineType"}, + "AccessString":{"shape":"String"}, + "UserGroupIds":{"shape":"UserGroupIdList"}, + "Authentication":{"shape":"Authentication"}, + "ARN":{"shape":"String"} + } + }, + "UserAlreadyExistsFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"UserAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "UserGroup":{ + "type":"structure", + "members":{ + "UserGroupId":{"shape":"String"}, + "Status":{"shape":"String"}, + "Engine":{"shape":"EngineType"}, + "UserIds":{"shape":"UserIdList"}, + "PendingChanges":{"shape":"UserGroupPendingChanges"}, + "ReplicationGroups":{"shape":"UGReplicationGroupIdList"}, + "ARN":{"shape":"String"} + } + }, + "UserGroupAlreadyExistsFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"UserGroupAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "UserGroupId":{ + "type":"string", + "min":1, + "pattern":"[a-zA-Z][a-zA-Z0-9\\-]*" + }, + "UserGroupIdList":{ + "type":"list", + "member":{"shape":"UserGroupId"} + }, + "UserGroupIdListInput":{ + "type":"list", + "member":{"shape":"UserGroupId"}, + "min":1 + }, + "UserGroupList":{ + "type":"list", + "member":{"shape":"UserGroup"} + }, + "UserGroupNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"UserGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "UserGroupPendingChanges":{ + "type":"structure", + "members":{ + "UserIdsToRemove":{"shape":"UserIdList"}, + "UserIdsToAdd":{"shape":"UserIdList"} + } + }, + "UserGroupQuotaExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"UserGroupQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "UserGroupsUpdateStatus":{ + "type":"structure", + "members":{ + "UserGroupIdsToAdd":{"shape":"UserGroupIdList"}, + "UserGroupIdsToRemove":{"shape":"UserGroupIdList"} + } + }, + "UserId":{ + "type":"string", + "min":1, + "pattern":"[a-zA-Z][a-zA-Z0-9\\-]*" + }, + "UserIdList":{ + "type":"list", + "member":{"shape":"UserId"} + }, + "UserIdListInput":{ + "type":"list", + "member":{"shape":"UserId"}, + "min":1 + }, + "UserList":{ + "type":"list", + "member":{"shape":"User"} + }, + "UserName":{ + "type":"string", + "min":1 + }, + "UserNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"UserNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "UserQuotaExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"UserQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true } } } diff --git a/models/apis/elasticache/2015-02-02/docs-2.json b/models/apis/elasticache/2015-02-02/docs-2.json index cfab8f509c3..cf3e8301fe8 100644 --- a/models/apis/elasticache/2015-02-02/docs-2.json +++ b/models/apis/elasticache/2015-02-02/docs-2.json @@ -15,6 +15,8 @@ "CreateGlobalReplicationGroup": "

Global Datastore for Redis offers fully managed, fast, reliable and secure cross-region replication. Using Global Datastore for Redis, you can create cross-region read replica clusters for ElastiCache for Redis to enable low-latency reads and disaster recovery across regions. For more information, see Replication Across Regions Using Global Datastore.

", "CreateReplicationGroup": "

Creates a Redis (cluster mode disabled) or a Redis (cluster mode enabled) replication group.

This API can be used to create a standalone regional replication group or a secondary replication group associated with a Global Datastore.

A Redis (cluster mode disabled) replication group is a collection of clusters, where one of the clusters is a read/write primary and the others are read-only replicas. Writes to the primary are asynchronously propagated to the replicas.

A Redis (cluster mode enabled) replication group is a collection of 1 to 90 node groups (shards). Each node group (shard) has one read/write primary node and up to 5 read-only replica nodes. Writes to the primary are asynchronously propagated to the replicas. Redis (cluster mode enabled) replication groups partition the data across node groups (shards).

When a Redis (cluster mode disabled) replication group has been successfully created, you can add one or more read replicas to it, up to a total of 5 read replicas. If you need to increase or decrease the number of node groups (console: shards), you can avail yourself of ElastiCache for Redis' scaling. For more information, see Scaling ElastiCache for Redis Clusters in the ElastiCache User Guide.

This operation is valid for Redis only.

", "CreateSnapshot": "

Creates a copy of an entire cluster or replication group at a specific moment in time.

This operation is valid for Redis only.

", + "CreateUser": "

For Redis engine version 6.04 onwards: Creates a Redis user. For more information, see Using Role Based Access Control (RBAC).

", + "CreateUserGroup": "

For Redis engine version 6.04 onwards: Creates a Redis user group. For more information, see Using Role Based Access Control (RBAC)

", "DecreaseNodeGroupsInGlobalReplicationGroup": "

Decreases the number of node groups in a Global Datastore

", "DecreaseReplicaCount": "

Dynamically decreases the number of replicas in a Redis (cluster mode disabled) replication group or the number of replica nodes in one or more node groups (shards) of a Redis (cluster mode enabled) replication group. This operation is performed with no cluster down time.

", "DeleteCacheCluster": "

Deletes a previously provisioned cluster. DeleteCacheCluster deletes all associated cache nodes, node endpoints and the cluster itself. When you receive a successful response from this operation, Amazon ElastiCache immediately begins deleting the cluster; you cannot cancel or revert this operation.

This operation is not valid for:

", @@ -24,6 +26,8 @@ "DeleteGlobalReplicationGroup": "

Deleting a Global Datastore is a two-step process:

Since the Global Datastore has only a primary cluster, you can delete the Global Datastore while retaining the primary by setting RetainPrimaryCluster=true.

When you receive a successful response from this operation, Amazon ElastiCache immediately begins deleting the selected resources; you cannot cancel or revert this operation.

", "DeleteReplicationGroup": "

Deletes an existing replication group. By default, this operation deletes the entire replication group, including the primary/primaries and all of the read replicas. If the replication group has only one primary, you can optionally delete only the read replicas, while retaining the primary by setting RetainPrimaryCluster=true.

When you receive a successful response from this operation, Amazon ElastiCache immediately begins deleting the selected resources; you cannot cancel or revert this operation.

This operation is valid for Redis only.

", "DeleteSnapshot": "

Deletes an existing snapshot. When you receive a successful response from this operation, ElastiCache immediately begins deleting the snapshot; you cannot cancel or revert this operation.

This operation is valid for Redis only.

", + "DeleteUser": "

For Redis engine version 6.04 onwards: Deletes a user. The user will be removed from all user groups and in turn removed from all replication groups. For more information, see Using Role Based Access Control (RBAC).

", + "DeleteUserGroup": "

For Redis engine version 6.04 onwards: Deletes a ser group. The user group must first be disassociated from the replcation group before it can be deleted. For more information, see Using Role Based Access Control (RBAC).

", "DescribeCacheClusters": "

Returns information about all provisioned clusters if no cluster identifier is specified, or about a specific cache cluster if a cluster identifier is supplied.

By default, abbreviated information about the clusters is returned. You can use the optional ShowCacheNodeInfo flag to retrieve detailed information about the cache nodes associated with the clusters. These details include the DNS address and port for the cache node endpoint.

If the cluster is in the creating state, only cluster-level information is displayed until all of the nodes are successfully provisioned.

If the cluster is in the deleting state, only cluster-level information is displayed.

If cache nodes are currently being added to the cluster, node endpoint information and creation time for the additional nodes are not displayed until they are completely provisioned. When the cluster state is available, the cluster is ready for use.

If cache nodes are currently being removed from the cluster, no endpoint information for the removed nodes is displayed.

", "DescribeCacheEngineVersions": "

Returns a list of the available cache engines and their versions.

", "DescribeCacheParameterGroups": "

Returns a list of cache parameter group descriptions. If a cache parameter group name is specified, the list contains only the descriptions for that group.

", @@ -39,6 +43,8 @@ "DescribeServiceUpdates": "

Returns details of the service updates

", "DescribeSnapshots": "

Returns information about cluster or replication group snapshots. By default, DescribeSnapshots lists all of your snapshots; it can optionally describe a single snapshot, or just the snapshots associated with a particular cache cluster.

This operation is valid for Redis only.

", "DescribeUpdateActions": "

Returns details of the update actions

", + "DescribeUserGroups": "

Returns a list of user groups.

", + "DescribeUsers": "

Returns a list of users.

", "DisassociateGlobalReplicationGroup": "

Remove a secondary cluster from the Global Datastore using the Global Datastore name. The secondary cluster will no longer receive updates from the primary cluster, but will remain as a standalone cluster in that AWS region.

", "FailoverGlobalReplicationGroup": "

Used to failover the primary region to a selected secondary region. The selected secondary region will become primary, and all other clusters will become secondary.

", "IncreaseNodeGroupsInGlobalReplicationGroup": "

Increase the number of node groups in the Global Datastore

", @@ -51,6 +57,8 @@ "ModifyGlobalReplicationGroup": "

Modifies the settings for a Global Datastore.

", "ModifyReplicationGroup": "

Modifies the settings for a replication group.

This operation is valid for Redis only.

", "ModifyReplicationGroupShardConfiguration": "

Modifies a replication group's shards (node groups) by allowing you to add shards, remove shards, or rebalance the keyspaces among exisiting shards.

", + "ModifyUser": "

Changes user password(s) and/or access string.

", + "ModifyUserGroup": "

Changes the list of users that belong to the user group.

", "PurchaseReservedCacheNodesOffering": "

Allows you to purchase a reserved cache node offering.

", "RebalanceSlotsInGlobalReplicationGroup": "

Redistribute slots to ensure uniform distribution across existing shards in the cluster.

", "RebootCacheCluster": "

Reboots some, or all, of the cache nodes within a provisioned cluster. This operation applies any modified cache parameter groups to the cluster. The reboot operation takes place as soon as possible, and results in a momentary outage to the cluster. During the reboot, the cluster status is set to REBOOTING.

The reboot causes the contents of the cache (for each cache node being rebooted) to be lost.

When the reboot is complete, a cluster event is created.

Rebooting a cluster is currently supported on Memcached and Redis (cluster mode disabled) clusters. Rebooting is not supported on Redis (cluster mode enabled) clusters.

If you make changes to parameters that require a Redis (cluster mode enabled) cluster reboot for the changes to be applied, see Rebooting a Cluster for an alternate process.

", @@ -73,6 +81,14 @@ "ModifyCacheClusterMessage$AZMode": "

Specifies whether the new nodes in this Memcached cluster are all created in a single Availability Zone or created across multiple Availability Zones.

Valid values: single-az | cross-az.

This option is only supported for Memcached clusters.

You cannot specify single-az if the Memcached cluster already has cache nodes in different Availability Zones. If cross-az is specified, existing Memcached nodes remain in their current Availability Zone.

Only newly created nodes are located in different Availability Zones.

" } }, + "AccessString": { + "base": null, + "refs": { + "CreateUserMessage$AccessString": "

Access permissions string used for this user account.

", + "ModifyUserMessage$AccessString": "

Access permissions string used for this user account.

", + "ModifyUserMessage$AppendAccessString": "

Adds additional user permissions to the access string.

" + } + }, "AddTagsToResourceMessage": { "base": "

Represents the input of an AddTagsToResource operation.

", "refs": { @@ -108,6 +124,18 @@ "ModifyReplicationGroupMessage$AuthTokenUpdateStrategy": "

Specifies the strategy to use to update the AUTH token. This parameter must be specified with the auth-token parameter. Possible values:

For more information, see Authenticating Users with Redis AUTH

" } }, + "Authentication": { + "base": "

Indicates whether the user requires a password to authenticate.

", + "refs": { + "User$Authentication": "

Denotes whether the user requires a password to authenticate.

" + } + }, + "AuthenticationType": { + "base": null, + "refs": { + "Authentication$Type": "

Indicates whether the user requires a password to authenticate.

" + } + }, "AuthorizationAlreadyExistsFault": { "base": "

The specified Amazon EC2 security group is already authorized for the specified cache security group.

", "refs": { @@ -202,6 +230,7 @@ "CreateReplicationGroupMessage$AutoMinorVersionUpgrade": "

This parameter is currently disabled.

", "CreateReplicationGroupMessage$TransitEncryptionEnabled": "

A flag that enables in-transit encryption when set to true.

You cannot modify the value of TransitEncryptionEnabled after the cluster is created. To enable in-transit encryption on a cluster you must set TransitEncryptionEnabled to true when you create a cluster.

This parameter is valid only if the Engine parameter is redis, the EngineVersion parameter is 3.2.6, 4.x or later, and the cluster is being created in an Amazon VPC.

If you enable in-transit encryption, you must also specify a value for CacheSubnetGroup.

Required: Only available when creating a replication group in an Amazon VPC using redis version 3.2.6, 4.x or later.

Default: false

For HIPAA compliance, you must specify TransitEncryptionEnabled as true, an AuthToken, and a CacheSubnetGroup.

", "CreateReplicationGroupMessage$AtRestEncryptionEnabled": "

A flag that enables encryption at rest when set to true.

You cannot modify the value of AtRestEncryptionEnabled after the replication group is created. To enable encryption at rest on a replication group you must set AtRestEncryptionEnabled to true when you create the replication group.

Required: Only available when creating a replication group in an Amazon VPC using redis version 3.2.6, 4.x or later.

Default: false

", + "CreateUserMessage$NoPasswordRequired": "

Indicates a password is not required for this user account.

", "DeleteReplicationGroupMessage$RetainPrimaryCluster": "

If set to true, all of the read replicas are deleted, but the primary node is retained.

", "DescribeCacheClustersMessage$ShowCacheNodeInfo": "

An optional flag that can be included in the DescribeCacheCluster request to retrieve information about the individual cache nodes.

", "DescribeCacheClustersMessage$ShowCacheClustersNotInReplicationGroups": "

An optional flag that can be included in the DescribeCacheCluster request to show only nodes (API/CLI: clusters) that are not members of a replication group. In practice, this mean Memcached and single node Redis clusters.

", @@ -217,6 +246,8 @@ "ModifyReplicationGroupMessage$AutomaticFailoverEnabled": "

Determines whether a read replica is automatically promoted to read/write primary if the existing primary encounters a failure.

Valid values: true | false

", "ModifyReplicationGroupMessage$MultiAZEnabled": "

A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. For more information, see Minimizing Downtime: Multi-AZ.

", "ModifyReplicationGroupMessage$AutoMinorVersionUpgrade": "

This parameter is currently disabled.

", + "ModifyReplicationGroupMessage$RemoveUserGroups": "

Removes the user groups that can access this replication group.

", + "ModifyUserMessage$NoPasswordRequired": "

Indicates no password is required for the user account.

", "ReplicationGroup$ClusterEnabled": "

A flag indicating whether or not this replication group is cluster enabled; i.e., whether its data can be partitioned across multiple shards (API/CLI: node groups).

Valid values: true | false

", "ReplicationGroup$AuthTokenEnabled": "

A flag that enables using an AuthToken (password) when issuing Redis commands.

Default: false

", "ReplicationGroup$TransitEncryptionEnabled": "

A flag that enables in-transit encryption when set to true.

You cannot modify the value of TransitEncryptionEnabled after the cluster is created. To enable in-transit encryption on a cluster you must set TransitEncryptionEnabled to true when you create a cluster.

Required: Only available when creating a replication group in an Amazon VPC using redis version 3.2.6, 4.x or later.

Default: false

", @@ -601,6 +632,16 @@ "refs": { } }, + "CreateUserGroupMessage": { + "base": null, + "refs": { + } + }, + "CreateUserMessage": { + "base": null, + "refs": { + } + }, "CustomerNodeEndpoint": { "base": "

The endpoint from which data should be migrated.

", "refs": { @@ -633,6 +674,16 @@ "refs": { } }, + "DefaultUserAssociatedToUserGroupFault": { + "base": "

", + "refs": { + } + }, + "DefaultUserRequired": { + "base": "

You must add default user to a user group.

", + "refs": { + } + }, "DeleteCacheClusterMessage": { "base": "

Represents the input of a DeleteCacheCluster operation.

", "refs": { @@ -688,6 +739,16 @@ "refs": { } }, + "DeleteUserGroupMessage": { + "base": null, + "refs": { + } + }, + "DeleteUserMessage": { + "base": null, + "refs": { + } + }, "DescribeCacheClustersMessage": { "base": "

Represents the input of a DescribeCacheClusters operation.

", "refs": { @@ -778,6 +839,26 @@ "refs": { } }, + "DescribeUserGroupsMessage": { + "base": null, + "refs": { + } + }, + "DescribeUserGroupsResult": { + "base": null, + "refs": { + } + }, + "DescribeUsersMessage": { + "base": null, + "refs": { + } + }, + "DescribeUsersResult": { + "base": null, + "refs": { + } + }, "DisassociateGlobalReplicationGroupMessage": { "base": null, "refs": { @@ -799,6 +880,11 @@ "SlotMigration$ProgressPercentage": "

The percentage of the slot migration that is complete.

" } }, + "DuplicateUserNameFault": { + "base": "

A user with this username already exists.

", + "refs": { + } + }, "EC2SecurityGroup": { "base": "

Provides ownership and status information for an Amazon EC2 security group.

", "refs": { @@ -828,6 +914,16 @@ "DescribeEngineDefaultParametersResult$EngineDefaults": null } }, + "EngineType": { + "base": null, + "refs": { + "CreateUserGroupMessage$Engine": "

Must be Redis.

", + "CreateUserMessage$Engine": "

Must be Redis.

", + "DescribeUsersMessage$Engine": "

The Redis engine.

", + "User$Engine": "

Must be Redis.

", + "UserGroup$Engine": "

Must be Redis.

" + } + }, "Event": { "base": "

Represents a single occurrence of something interesting within the system. Some examples of events are creating a cluster, adding or removing a cache node, or rebooting a node.

", "refs": { @@ -855,6 +951,36 @@ "refs": { } }, + "Filter": { + "base": "

Used to streamline results of a search based on the property being filtered.

", + "refs": { + "FilterList$member": null + } + }, + "FilterList": { + "base": null, + "refs": { + "DescribeUsersMessage$Filters": "

Filter to determine the list of User IDs to return.

" + } + }, + "FilterName": { + "base": null, + "refs": { + "Filter$Name": "

The property being filtered. For example, UserId.

" + } + }, + "FilterValue": { + "base": null, + "refs": { + "FilterValueList$member": null + } + }, + "FilterValueList": { + "base": null, + "refs": { + "Filter$Values": "

The property values to filter on. For example, \"user-123\".

" + } + }, "GlobalNodeGroup": { "base": "

Indicates the slot configuration and global identifier for a slice group.

", "refs": { @@ -963,6 +1089,7 @@ "IntegerOptional": { "base": null, "refs": { + "Authentication$PasswordCount": "

The number of passwords belonging to the user. The maximum is two.

", "CacheCluster$NumCacheNodes": "

The number of cache nodes in the cluster.

For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20.

", "CacheCluster$SnapshotRetentionLimit": "

The number of days for which ElastiCache retains automatic cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot that was taken today is retained for 5 days before being deleted.

If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off.

", "CreateCacheClusterMessage$NumCacheNodes": "

The initial number of cache nodes that the cluster has.

For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20.

If you need more than 20 nodes for your Memcached cluster, please fill out the ElastiCache Limit Increase Request form at http://aws.amazon.com/contact-us/elasticache-node-limit-request/.

", @@ -991,6 +1118,8 @@ "DescribeServiceUpdatesMessage$MaxRecords": "

The maximum number of records to include in the response

", "DescribeSnapshotsMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a marker is included in the response so that the remaining results can be retrieved.

Default: 50

Constraints: minimum 20; maximum 50.

", "DescribeUpdateActionsMessage$MaxRecords": "

The maximum number of records to include in the response

", + "DescribeUserGroupsMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a marker is included in the response so that the remaining results can be retrieved.

", + "DescribeUsersMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a marker is included in the response so that the remaining results can be retrieved.

", "IncreaseReplicaCountMessage$NewReplicaCount": "

The number of read replica nodes you want at the completion of this operation. For Redis (cluster mode disabled) replication groups, this is the number of replica nodes in the replication group. For Redis (cluster mode enabled) replication groups, this is the number of replica nodes in each of the replication group's node groups.

", "ModifyCacheClusterMessage$NumCacheNodes": "

The number of cache nodes that the cluster should have. If the value for NumCacheNodes is greater than the sum of the number of current cache nodes and the number of cache nodes pending creation (which may be zero), more nodes are added. If the value is less than the number of existing cache nodes, nodes are removed. If the value is equal to the number of current cache nodes, any pending add or remove requests are canceled.

If you are removing cache nodes, you must use the CacheNodeIdsToRemove parameter to provide the IDs of the specific cache nodes to remove.

For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20.

Adding or removing Memcached cache nodes can be applied immediately or as a pending operation (see ApplyImmediately).

A pending operation to modify the number of cache nodes in a cluster during its maintenance window, whether by adding or removing nodes in accordance with the scale out architecture, is not queued. The customer's latest request to add or remove nodes to the cluster overrides any previous pending operations to modify the number of cache nodes in the cluster. For example, a request to remove 2 nodes would override a previous pending operation to remove 3 nodes. Similarly, a request to add 2 nodes would override a previous pending operation to remove 3 nodes and vice versa. As Memcached cache nodes may now be provisioned in different Availability Zones with flexible cache node placement, a request to add nodes does not automatically override a previous pending operation to add nodes. The customer can modify the previous pending operation to add more nodes or explicitly cancel the pending request and retry the new request. To cancel pending operations to modify the number of cache nodes in a cluster, use the ModifyCacheCluster request and set NumCacheNodes equal to the number of cache nodes currently in the cluster.

", "ModifyCacheClusterMessage$SnapshotRetentionLimit": "

The number of days for which ElastiCache retains automatic cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot that was taken today is retained for 5 days before being deleted.

If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off.

", @@ -1060,6 +1189,16 @@ "refs": { } }, + "InvalidUserGroupStateFault": { + "base": "

The user group is not in an active state.

", + "refs": { + } + }, + "InvalidUserStateFault": { + "base": "

The user is not in active state.

", + "refs": { + } + }, "InvalidVPCNetworkStateFault": { "base": "

The VPC network is in an invalid state.

", "refs": { @@ -1136,6 +1275,16 @@ "refs": { } }, + "ModifyUserGroupMessage": { + "base": null, + "refs": { + } + }, + "ModifyUserMessage": { + "base": null, + "refs": { + } + }, "MultiAZStatus": { "base": null, "refs": { @@ -1279,6 +1428,18 @@ "CacheCluster$NotificationConfiguration": "

Describes a notification topic and its status. Notification topics are used for publishing ElastiCache events to subscribers using Amazon Simple Notification Service (SNS).

" } }, + "OutpostArnsList": { + "base": null, + "refs": { + "NodeGroupConfiguration$ReplicaOutpostArns": "

The outpost ARN of the node replicas.

" + } + }, + "OutpostMode": { + "base": null, + "refs": { + "CreateCacheClusterMessage$OutpostMode": "

Specifies whether the nodes in the cluster are created in a single outpost or across multiple outposts.

" + } + }, "Parameter": { "base": "

Describes an individual setting that controls some aspect of ElastiCache behavior.

", "refs": { @@ -1305,6 +1466,13 @@ "EngineDefaults$Parameters": "

Contains a list of engine default parameters.

" } }, + "PasswordListInput": { + "base": null, + "refs": { + "CreateUserMessage$Passwords": "

Passwords used for this user account. You can create up to two passwords for each user.

", + "ModifyUserMessage$Passwords": "

The passwords belonging to the user account. You are allowed up to two.

" + } + }, "PendingAutomaticFailoverStatus": { "base": null, "refs": { @@ -1325,6 +1493,13 @@ "ModifyCacheClusterMessage$NewAvailabilityZones": "

The list of Availability Zones where the new Memcached cache nodes are created.

This parameter is only valid when NumCacheNodes in the request is greater than the sum of the number of active cache nodes and the number of cache nodes pending creation (which may be zero). The number of Availability Zones supplied in this list must match the cache nodes being added in this request.

This option is only supported on Memcached clusters.

Scenarios:

The Availability Zone placement of nodes pending creation cannot be modified. If you wish to cancel any nodes pending creation, add 0 nodes by setting NumCacheNodes to the number of current nodes.

If cross-az is specified, existing Memcached nodes remain in their current Availability Zone. Only newly created nodes can be located in different Availability Zones. For guidance on how to move existing Memcached nodes to different Availability Zones, see the Availability Zone Considerations section of Cache Node Considerations for Memcached.

Impact of new add/remove requests upon pending requests

" } }, + "PreferredOutpostArnList": { + "base": null, + "refs": { + "ConfigureShard$PreferredOutpostArns": "

The outpost ARNs in which the cache cluster is created.

", + "CreateCacheClusterMessage$PreferredOutpostArns": "

The outpost ARNs in which the cache cluster is created.

" + } + }, "ProcessedUpdateAction": { "base": "

Update action that has been processed for the corresponding apply/stop request

", "refs": { @@ -1464,6 +1639,12 @@ "refs": { } }, + "ReplicationGroupOutpostArnList": { + "base": null, + "refs": { + "ReplicationGroup$MemberClustersOutpostArns": "

The outpost ARNs of the replication group's member clusters.

" + } + }, "ReplicationGroupPendingModifiedValues": { "base": "

The settings to be applied to the Redis replication group, either immediately or during the next maintenance window.

", "refs": { @@ -1725,6 +1906,7 @@ "CacheCluster$EngineVersion": "

The version of the cache engine that is used in this cluster.

", "CacheCluster$CacheClusterStatus": "

The current state of this cluster, one of the following values: available, creating, deleted, deleting, incompatible-network, modifying, rebooting cluster nodes, restore-failed, or snapshotting.

", "CacheCluster$PreferredAvailabilityZone": "

The name of the Availability Zone in which the cluster is located or \"Multiple\" if the cache nodes are located in different Availability Zones.

", + "CacheCluster$PreferredOutpostArn": "

The outpost ARN in which the cache cluster is created.

", "CacheCluster$PreferredMaintenanceWindow": "

Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period.

Valid values for ddd are:

Example: sun:23:00-mon:01:30

", "CacheCluster$CacheSubnetGroupName": "

The name of the cache subnet group associated with the cluster.

", "CacheCluster$ReplicationGroupId": "

The replication group to which this cluster belongs. If this field is empty, the cluster is not associated with any replication group.

", @@ -1743,6 +1925,7 @@ "CacheNode$ParameterGroupStatus": "

The status of the parameter group applied to this cache node.

", "CacheNode$SourceCacheNodeId": "

The ID of the primary node to which this read replica node is synchronized. If this field is empty, this node is not associated with a primary cluster.

", "CacheNode$CustomerAvailabilityZone": "

The Availability Zone where this node was created and now resides.

", + "CacheNode$CustomerOutpostArn": "

The customer outpost ARN of the cache node.

", "CacheNodeIdsList$member": null, "CacheNodeTypeSpecificParameter$ParameterName": "

The name of the parameter.

", "CacheNodeTypeSpecificParameter$Description": "

A description of the parameter.

", @@ -1765,7 +1948,7 @@ "CacheSecurityGroup$OwnerId": "

The AWS account ID of the cache security group owner.

", "CacheSecurityGroup$CacheSecurityGroupName": "

The name of the cache security group.

", "CacheSecurityGroup$Description": "

The description of the cache security group.

", - "CacheSecurityGroup$ARN": "

The ARN (Amazon Resource Name) of the cache security group.

", + "CacheSecurityGroup$ARN": "

The ARN of the cache security group,

", "CacheSecurityGroupMembership$CacheSecurityGroupName": "

The name of the cache security group.

", "CacheSecurityGroupMembership$Status": "

The membership status in the cache security group. The status changes when a cache security group is modified, or when the cache security groups assigned to a cluster are modified.

", "CacheSecurityGroupMessage$Marker": "

Provides an identifier to allow retrieval of paginated results.

", @@ -1794,6 +1977,7 @@ "CreateCacheClusterMessage$NotificationTopicArn": "

The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic to which notifications are sent.

The Amazon SNS topic owner must be the same as the cluster owner.

", "CreateCacheClusterMessage$SnapshotWindow": "

The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard).

Example: 05:00-09:00

If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range.

This parameter is only valid if the Engine parameter is redis.

", "CreateCacheClusterMessage$AuthToken": "

Reserved parameter. The password used to access a password protected server.

Password constraints:

For more information, see AUTH password at http://redis.io/commands/AUTH.

", + "CreateCacheClusterMessage$PreferredOutpostArn": "

The outpost ARN in which the cache cluster is created.

", "CreateCacheParameterGroupMessage$CacheParameterGroupName": "

A user-specified name for the cache parameter group.

", "CreateCacheParameterGroupMessage$CacheParameterGroupFamily": "

The name of the cache parameter group family that the cache parameter group can be used with.

Valid values are: memcached1.4 | memcached1.5 | redis2.6 | redis2.8 | redis3.2 | redis4.0 | redis5.0 |

", "CreateCacheParameterGroupMessage$Description": "

A user-specified description for the cache parameter group.

", @@ -1801,7 +1985,7 @@ "CreateCacheSecurityGroupMessage$Description": "

A description for the cache security group.

", "CreateCacheSubnetGroupMessage$CacheSubnetGroupName": "

A name for the cache subnet group. This value is stored as a lowercase string.

Constraints: Must contain no more than 255 alphanumeric characters or hyphens.

Example: mysubnetgroup

", "CreateCacheSubnetGroupMessage$CacheSubnetGroupDescription": "

A description for the cache subnet group.

", - "CreateGlobalReplicationGroupMessage$GlobalReplicationGroupIdSuffix": "

The suffix name of a Global Datastore. The suffix guarantees uniqueness of the Global Datastore name across multiple regions.

", + "CreateGlobalReplicationGroupMessage$GlobalReplicationGroupIdSuffix": "

The suffix name of a Global Datastore. Amazon ElastiCache automatically applies a prefix to the Global Datastore ID when it is created. Each AWS Region has its own prefix. For instance, a Global Datastore ID created in the US-West-1 region will begin with \"dsdfu\" along with the suffix name you provide. The suffix, combined with the auto-generated prefix, guarantees uniqueness of the Global Datastore name across multiple regions.

For a full list of AWS Regions and their respective Global Datastore iD prefixes, see Using the AWS CLI with Global Datastores .

", "CreateGlobalReplicationGroupMessage$GlobalReplicationGroupDescription": "

Provides details of the Global Datastore

", "CreateGlobalReplicationGroupMessage$PrimaryReplicationGroupId": "

The name of the primary cluster that accepts writes and will replicate updates to the secondary cluster.

", "CreateReplicationGroupMessage$ReplicationGroupId": "

The replication group identifier. This parameter is stored as a lowercase string.

Constraints:

", @@ -1823,6 +2007,7 @@ "CreateSnapshotMessage$CacheClusterId": "

The identifier of an existing cluster. The snapshot is created from this cluster.

", "CreateSnapshotMessage$SnapshotName": "

A name for the snapshot being created.

", "CreateSnapshotMessage$KmsKeyId": "

The ID of the KMS key used to encrypt the snapshot.

", + "CreateUserGroupMessage$UserGroupId": "

The ID of the user group.

", "CustomerNodeEndpoint$Address": "

The address of the node endpoint

", "DecreaseNodeGroupsInGlobalReplicationGroupMessage$GlobalReplicationGroupId": "

The name of the Global Datastore

", "DecreaseReplicaCountMessage$ReplicationGroupId": "

The id of the replication group from which you want to remove replica nodes.

", @@ -1835,6 +2020,7 @@ "DeleteReplicationGroupMessage$ReplicationGroupId": "

The identifier for the cluster to be deleted. This parameter is not case sensitive.

", "DeleteReplicationGroupMessage$FinalSnapshotIdentifier": "

The name of a final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster, rather than one of the replicas; this is to ensure that it captures the freshest data. After the final snapshot is taken, the replication group is immediately deleted.

", "DeleteSnapshotMessage$SnapshotName": "

The name of the snapshot to be deleted.

", + "DeleteUserGroupMessage$UserGroupId": "

The ID of the user group.

", "DescribeCacheClustersMessage$CacheClusterId": "

The user-supplied cluster identifier. If this parameter is specified, only information about that specific cluster is returned. This parameter isn't case sensitive.

", "DescribeCacheClustersMessage$Marker": "

An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", "DescribeCacheEngineVersionsMessage$Engine": "

The cache engine to return. Valid values: memcached | redis

", @@ -1883,6 +2069,11 @@ "DescribeUpdateActionsMessage$ServiceUpdateName": "

The unique ID of the service update

", "DescribeUpdateActionsMessage$Engine": "

The Elasticache engine to which the update applies. Either Redis or Memcached

", "DescribeUpdateActionsMessage$Marker": "

An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeUserGroupsMessage$UserGroupId": "

The ID of the user group.

", + "DescribeUserGroupsMessage$Marker": "

An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. >

", + "DescribeUserGroupsResult$Marker": "

An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. >

", + "DescribeUsersMessage$Marker": "

An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. >

", + "DescribeUsersResult$Marker": "

An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. >

", "DisassociateGlobalReplicationGroupMessage$GlobalReplicationGroupId": "

The name of the Global Datastore

", "DisassociateGlobalReplicationGroupMessage$ReplicationGroupId": "

The name of the secondary cluster you wish to remove from the Global Datastore

", "DisassociateGlobalReplicationGroupMessage$ReplicationGroupRegion": "

The AWS region of secondary cluster you wish to remove from the Global Datastore

", @@ -1950,14 +2141,17 @@ "ModifyReplicationGroupMessage$CacheNodeType": "

A valid cache node type that you want to scale this replication group to.

", "ModifyReplicationGroupMessage$AuthToken": "

Reserved parameter. The password used to access a password protected server. This parameter must be specified with the auth-token-update-strategy parameter. Password constraints:

For more information, see AUTH password at AUTH.

", "ModifyReplicationGroupShardConfigurationMessage$ReplicationGroupId": "

The name of the Redis (cluster mode enabled) cluster (replication group) on which the shards are to be configured.

", + "ModifyUserGroupMessage$UserGroupId": "

The ID of the user group.

", "NodeGroup$NodeGroupId": "

The identifier for the node group (shard). A Redis (cluster mode disabled) replication group contains only 1 node group; therefore, the node group ID is 0001. A Redis (cluster mode enabled) replication group contains 1 to 90 node groups numbered 0001 to 0090. Optionally, the user can provide the id for a node group.

", "NodeGroup$Status": "

The current state of this replication group - creating, available, modifying, deleting.

", "NodeGroup$Slots": "

The keyspace for this node group (shard).

", "NodeGroupConfiguration$Slots": "

A string that specifies the keyspace for a particular node group. Keyspaces range from 0 to 16,383. The string is in the format startkey-endkey.

Example: \"0-3999\"

", "NodeGroupConfiguration$PrimaryAvailabilityZone": "

The Availability Zone where the primary node of this node group (shard) is launched.

", + "NodeGroupConfiguration$PrimaryOutpostArn": "

The output ARN of the primary node.

", "NodeGroupMember$CacheClusterId": "

The ID of the cluster to which the node belongs.

", "NodeGroupMember$CacheNodeId": "

The ID of the node within its cluster. A node ID is a numeric identifier (0001, 0002, etc.).

", "NodeGroupMember$PreferredAvailabilityZone": "

The name of the Availability Zone in which the node is located.

", + "NodeGroupMember$PreferredOutpostArn": "

The outpost ARN of the node group member.

", "NodeGroupMember$CurrentRole": "

The role that is currently assigned to the node - primary or replica. This member is only applicable for Redis (cluster mode disabled) replication groups.

", "NodeGroupMemberUpdateStatus$CacheClusterId": "

The cache cluster ID

", "NodeGroupMemberUpdateStatus$CacheNodeId": "

The node ID of the cache cluster

", @@ -1969,6 +2163,7 @@ "NodeTypeList$member": null, "NotificationConfiguration$TopicArn": "

The Amazon Resource Name (ARN) that identifies the topic.

", "NotificationConfiguration$TopicStatus": "

The current state of the topic.

", + "OutpostArnsList$member": null, "Parameter$ParameterName": "

The name of the parameter.

", "Parameter$ParameterValue": "

The value of the parameter.

", "Parameter$Description": "

A description of the parameter.

", @@ -1978,9 +2173,11 @@ "Parameter$MinimumEngineVersion": "

The earliest cache engine version to which the parameter can apply.

", "ParameterNameValue$ParameterName": "

The name of the parameter.

", "ParameterNameValue$ParameterValue": "

The value of the parameter.

", + "PasswordListInput$member": null, "PendingModifiedValues$EngineVersion": "

The new cache engine version that the cluster runs.

", "PendingModifiedValues$CacheNodeType": "

The cache node type that this cluster or replication group is scaled to.

", "PreferredAvailabilityZoneList$member": null, + "PreferredOutpostArnList$member": null, "ProcessedUpdateAction$ReplicationGroupId": "

The ID of the replication group

", "ProcessedUpdateAction$CacheClusterId": "

The ID of the cache cluster

", "ProcessedUpdateAction$ServiceUpdateName": "

The unique ID of the service update

", @@ -2003,6 +2200,7 @@ "ReplicationGroup$ARN": "

The ARN (Amazon Resource Name) of the replication group.

", "ReplicationGroupIdList$member": null, "ReplicationGroupMessage$Marker": "

Provides an identifier to allow retrieval of paginated results.

", + "ReplicationGroupOutpostArnList$member": null, "ReplicationGroupPendingModifiedValues$PrimaryClusterId": "

The primary cluster ID that is applied immediately (if --apply-immediately was specified), or during the next maintenance window.

", "ReservedCacheNode$ReservedCacheNodeId": "

The unique identifier for the reservation.

", "ReservedCacheNode$ReservedCacheNodesOfferingId": "

The offering identifier.

", @@ -2040,6 +2238,7 @@ "Snapshot$Engine": "

The name of the cache engine (memcached or redis) used by the source cluster.

", "Snapshot$EngineVersion": "

The version of the cache engine version that is used by the source cluster.

", "Snapshot$PreferredAvailabilityZone": "

The name of the Availability Zone in which the source cluster is located.

", + "Snapshot$PreferredOutpostArn": "

The ARN (Amazon Resource Name) of the preferred outpost.

", "Snapshot$PreferredMaintenanceWindow": "

Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period.

Valid values for ddd are:

Example: sun:23:00-mon:01:30

", "Snapshot$TopicArn": "

The Amazon Resource Name (ARN) for the topic used by the source cluster for publishing notifications.

", "Snapshot$CacheParameterGroupName": "

The cache parameter group that is associated with the source cluster.

", @@ -2052,9 +2251,11 @@ "StartMigrationMessage$ReplicationGroupId": "

The ID of the replication group to which data should be migrated.

", "Subnet$SubnetIdentifier": "

The unique identifier for the subnet.

", "SubnetIdentifierList$member": null, + "SubnetOutpost$SubnetOutpostArn": "

The outpost ARN of the subnet.

", "Tag$Key": "

The key for the tag. May not be null.

", "Tag$Value": "

The tag's value. May be null.

", "TestFailoverMessage$ReplicationGroupId": "

The name of the replication group (console: cluster) whose automatic failover is being tested by this operation.

", + "UGReplicationGroupIdList$member": null, "UnprocessedUpdateAction$ReplicationGroupId": "

The replication group ID

", "UnprocessedUpdateAction$CacheClusterId": "

The ID of the cache cluster

", "UnprocessedUpdateAction$ServiceUpdateName": "

The unique ID of the service update

", @@ -2066,7 +2267,15 @@ "UpdateAction$NodesUpdated": "

The progress of the service update on the replication group

", "UpdateAction$EstimatedUpdateTime": "

The estimated length of time for the update to complete

", "UpdateAction$Engine": "

The Elasticache engine to which the update applies. Either Redis or Memcached

", - "UpdateActionsMessage$Marker": "

An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + "UpdateActionsMessage$Marker": "

An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "User$UserId": "

The ID of the user.

", + "User$UserName": "

The username of the user.

", + "User$Status": "

Indicates the user status. Can be \"active\", \"modifying\" or \"deleting\".

", + "User$AccessString": "

Access permissions string used for this user account.

", + "User$ARN": "

The Amazon Resource Name (ARN) of the user account.

", + "UserGroup$UserGroupId": "

The ID of the user group.

", + "UserGroup$Status": "

Indicates user group status. Can be \"creating\", \"active\", \"modifying\", \"deleting\".

", + "UserGroup$ARN": "

The Amazon Resource Name (ARN) of the user group.

" } }, "Subnet": { @@ -2093,6 +2302,17 @@ "CacheSubnetGroup$Subnets": "

A list of subnets associated with the cache subnet group.

" } }, + "SubnetNotAllowedFault": { + "base": "

At least one subnet ID does not match the other subnet IDs. This mismatch typically occurs when a user sets one subnet ID to a regional Availability Zone and a different one to an outpost. Or when a user sets the subnet ID to an Outpost when not subscribed on this service.

", + "refs": { + } + }, + "SubnetOutpost": { + "base": "

The ID of the outpost subnet.

", + "refs": { + "Subnet$SubnetOutpost": "

The outpost ARN of the subnet.

" + } + }, "TStamp": { "base": null, "refs": { @@ -2179,6 +2399,12 @@ "DescribeUpdateActionsMessage$ServiceUpdateTimeRange": "

The range of time specified to search for service updates that are in available status

" } }, + "UGReplicationGroupIdList": { + "base": null, + "refs": { + "UserGroup$ReplicationGroups": "

A list of replication groups that the user group can access.

" + } + }, "UnprocessedUpdateAction": { "base": "

Update action that has failed to be processed for the corresponding apply/stop request

", "refs": { @@ -2226,6 +2452,129 @@ "base": null, "refs": { } + }, + "User": { + "base": null, + "refs": { + "UserList$member": null + } + }, + "UserAlreadyExistsFault": { + "base": "

A user with this ID already exists.

", + "refs": { + } + }, + "UserGroup": { + "base": null, + "refs": { + "UserGroupList$member": null + } + }, + "UserGroupAlreadyExistsFault": { + "base": "

The user group with this ID already exists.

", + "refs": { + } + }, + "UserGroupId": { + "base": null, + "refs": { + "UserGroupIdList$member": null, + "UserGroupIdListInput$member": null + } + }, + "UserGroupIdList": { + "base": null, + "refs": { + "ModifyReplicationGroupMessage$UserGroupIdsToAdd": "

A list of user group IDs.

", + "ModifyReplicationGroupMessage$UserGroupIdsToRemove": "

A list of users groups to remove, meaning the users in the group no longer can access thereplication group.

", + "ReplicationGroup$UserGroupIds": "

The list of user group IDs that have access to the replication group.

", + "User$UserGroupIds": "

Returns a list of the user group IDs the user belongs to.

", + "UserGroupsUpdateStatus$UserGroupIdsToAdd": "

The list of user group IDs to add.

", + "UserGroupsUpdateStatus$UserGroupIdsToRemove": "

The list of user group IDs to remove.

" + } + }, + "UserGroupIdListInput": { + "base": null, + "refs": { + "CreateReplicationGroupMessage$UserGroupIds": "

The list of user groups to associate with the replication group.

" + } + }, + "UserGroupList": { + "base": null, + "refs": { + "DescribeUserGroupsResult$UserGroups": "

Returns a list of user groups.

" + } + }, + "UserGroupNotFoundFault": { + "base": "

The user group was not found or does not exist

", + "refs": { + } + }, + "UserGroupPendingChanges": { + "base": "

Returns the updates being applied to the user group.

", + "refs": { + "UserGroup$PendingChanges": "

A list of updates being applied to the user groups.

" + } + }, + "UserGroupQuotaExceededFault": { + "base": "

The number of users exceeds the user group limit.

", + "refs": { + } + }, + "UserGroupsUpdateStatus": { + "base": "

The status of the user group update.

", + "refs": { + "ReplicationGroupPendingModifiedValues$UserGroups": "

The user groups being modified.

" + } + }, + "UserId": { + "base": null, + "refs": { + "CreateUserMessage$UserId": "

The ID of the user.

", + "DeleteUserMessage$UserId": "

The ID of the user.

", + "DescribeUsersMessage$UserId": "

The ID of the user.

", + "ModifyUserMessage$UserId": "

The ID of the user.

", + "UserIdList$member": null, + "UserIdListInput$member": null + } + }, + "UserIdList": { + "base": null, + "refs": { + "UserGroup$UserIds": "

The list of user IDs that belong to the user group.

", + "UserGroupPendingChanges$UserIdsToRemove": "

The list of user group IDs ro remove.

", + "UserGroupPendingChanges$UserIdsToAdd": "

The list of user IDs to add.

" + } + }, + "UserIdListInput": { + "base": null, + "refs": { + "CreateUserGroupMessage$UserIds": "

The list of user IDs that belong to the user group.

", + "ModifyUserGroupMessage$UserIdsToAdd": "

The list of user IDs to add to the user group.

", + "ModifyUserGroupMessage$UserIdsToRemove": "

The list of user IDs to remove from the user group.

" + } + }, + "UserList": { + "base": null, + "refs": { + "DescribeUsersResult$Users": "

A list of users.

" + } + }, + "UserName": { + "base": null, + "refs": { + "CreateUserMessage$UserName": "

The username of the user.

" + } + }, + "UserNotFoundFault": { + "base": "

The user does not exist or could not be found.

", + "refs": { + } + }, + "UserQuotaExceededFault": { + "base": "

The quota of users has been exceeded.

", + "refs": { + } } } } diff --git a/models/apis/elasticache/2015-02-02/paginators-1.json b/models/apis/elasticache/2015-02-02/paginators-1.json index 47e5404c935..eec2148d559 100644 --- a/models/apis/elasticache/2015-02-02/paginators-1.json +++ b/models/apis/elasticache/2015-02-02/paginators-1.json @@ -89,6 +89,18 @@ "limit_key": "MaxRecords", "output_token": "Marker", "result_key": "UpdateActions" + }, + "DescribeUserGroups": { + "input_token": "Marker", + "limit_key": "MaxRecords", + "output_token": "Marker", + "result_key": "UserGroups" + }, + "DescribeUsers": { + "input_token": "Marker", + "limit_key": "MaxRecords", + "output_token": "Marker", + "result_key": "Users" } } } \ No newline at end of file diff --git a/models/apis/mediapackage/2017-10-12/api-2.json b/models/apis/mediapackage/2017-10-12/api-2.json index 90f1d6f9397..be341ec31a5 100644 --- a/models/apis/mediapackage/2017-10-12/api-2.json +++ b/models/apis/mediapackage/2017-10-12/api-2.json @@ -12,6 +12,40 @@ "uid": "mediapackage-2017-10-12" }, "operations": { + "ConfigureLogs": { + "errors": [ + { + "shape": "UnprocessableEntityException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "ServiceUnavailableException" + }, + { + "shape": "TooManyRequestsException" + } + ], + "http": { + "method": "PUT", + "requestUri": "/channels/{id}/configure_logs", + "responseCode": 200 + }, + "input": { + "shape": "ConfigureLogsRequest" + }, + "name": "ConfigureLogs", + "output": { + "shape": "ConfigureLogsResponse" + } + }, "CreateChannel": { "errors": [ { @@ -616,6 +650,10 @@ "locationName": "description", "shape": "__string" }, + "EgressAccessLogs": { + "locationName": "egressAccessLogs", + "shape": "EgressAccessLogs" + }, "HlsIngest": { "locationName": "hlsIngest", "shape": "HlsIngest" @@ -624,6 +662,10 @@ "locationName": "id", "shape": "__string" }, + "IngressAccessLogs": { + "locationName": "ingressAccessLogs", + "shape": "IngressAccessLogs" + }, "Tags": { "locationName": "tags", "shape": "Tags" @@ -739,6 +781,73 @@ }, "type": "structure" }, + "ConfigureLogsParameters": { + "members": { + "EgressAccessLogs": { + "locationName": "egressAccessLogs", + "shape": "EgressAccessLogs" + }, + "IngressAccessLogs": { + "locationName": "ingressAccessLogs", + "shape": "IngressAccessLogs" + } + }, + "type": "structure" + }, + "ConfigureLogsRequest": { + "members": { + "EgressAccessLogs": { + "locationName": "egressAccessLogs", + "shape": "EgressAccessLogs" + }, + "Id": { + "location": "uri", + "locationName": "id", + "shape": "__string" + }, + "IngressAccessLogs": { + "locationName": "ingressAccessLogs", + "shape": "IngressAccessLogs" + } + }, + "required": [ + "Id" + ], + "type": "structure" + }, + "ConfigureLogsResponse": { + "members": { + "Arn": { + "locationName": "arn", + "shape": "__string" + }, + "Description": { + "locationName": "description", + "shape": "__string" + }, + "EgressAccessLogs": { + "locationName": "egressAccessLogs", + "shape": "EgressAccessLogs" + }, + "HlsIngest": { + "locationName": "hlsIngest", + "shape": "HlsIngest" + }, + "Id": { + "locationName": "id", + "shape": "__string" + }, + "IngressAccessLogs": { + "locationName": "ingressAccessLogs", + "shape": "IngressAccessLogs" + }, + "Tags": { + "locationName": "tags", + "shape": "Tags" + } + }, + "type": "structure" + }, "CreateChannelRequest": { "members": { "Description": { @@ -769,6 +878,10 @@ "locationName": "description", "shape": "__string" }, + "EgressAccessLogs": { + "locationName": "egressAccessLogs", + "shape": "EgressAccessLogs" + }, "HlsIngest": { "locationName": "hlsIngest", "shape": "HlsIngest" @@ -777,6 +890,10 @@ "locationName": "id", "shape": "__string" }, + "IngressAccessLogs": { + "locationName": "ingressAccessLogs", + "shape": "IngressAccessLogs" + }, "Tags": { "locationName": "tags", "shape": "Tags" @@ -1129,6 +1246,10 @@ "locationName": "description", "shape": "__string" }, + "EgressAccessLogs": { + "locationName": "egressAccessLogs", + "shape": "EgressAccessLogs" + }, "HlsIngest": { "locationName": "hlsIngest", "shape": "HlsIngest" @@ -1137,6 +1258,10 @@ "locationName": "id", "shape": "__string" }, + "IngressAccessLogs": { + "locationName": "ingressAccessLogs", + "shape": "IngressAccessLogs" + }, "Tags": { "locationName": "tags", "shape": "Tags" @@ -1280,6 +1405,15 @@ }, "type": "structure" }, + "EgressAccessLogs": { + "members": { + "LogGroupName": { + "locationName": "logGroupName", + "shape": "__string" + } + }, + "type": "structure" + }, "EncryptionMethod": { "enum": [ "AES_128", @@ -1577,6 +1711,15 @@ }, "type": "structure" }, + "IngressAccessLogs": { + "members": { + "LogGroupName": { + "locationName": "logGroupName", + "shape": "__string" + } + }, + "type": "structure" + }, "InternalServerErrorException": { "error": { "httpStatusCode": 500 @@ -2012,6 +2155,10 @@ "locationName": "description", "shape": "__string" }, + "EgressAccessLogs": { + "locationName": "egressAccessLogs", + "shape": "EgressAccessLogs" + }, "HlsIngest": { "locationName": "hlsIngest", "shape": "HlsIngest" @@ -2020,6 +2167,10 @@ "locationName": "id", "shape": "__string" }, + "IngressAccessLogs": { + "locationName": "ingressAccessLogs", + "shape": "IngressAccessLogs" + }, "Tags": { "locationName": "tags", "shape": "Tags" @@ -2056,6 +2207,10 @@ "locationName": "description", "shape": "__string" }, + "EgressAccessLogs": { + "locationName": "egressAccessLogs", + "shape": "EgressAccessLogs" + }, "HlsIngest": { "locationName": "hlsIngest", "shape": "HlsIngest" @@ -2064,6 +2219,10 @@ "locationName": "id", "shape": "__string" }, + "IngressAccessLogs": { + "locationName": "ingressAccessLogs", + "shape": "IngressAccessLogs" + }, "Tags": { "locationName": "tags", "shape": "Tags" @@ -2289,6 +2448,10 @@ "locationName": "description", "shape": "__string" }, + "EgressAccessLogs": { + "locationName": "egressAccessLogs", + "shape": "EgressAccessLogs" + }, "HlsIngest": { "locationName": "hlsIngest", "shape": "HlsIngest" @@ -2297,6 +2460,10 @@ "locationName": "id", "shape": "__string" }, + "IngressAccessLogs": { + "locationName": "ingressAccessLogs", + "shape": "IngressAccessLogs" + }, "Tags": { "locationName": "tags", "shape": "Tags" diff --git a/models/apis/mediapackage/2017-10-12/docs-2.json b/models/apis/mediapackage/2017-10-12/docs-2.json index 9e928300629..5c02b085b17 100644 --- a/models/apis/mediapackage/2017-10-12/docs-2.json +++ b/models/apis/mediapackage/2017-10-12/docs-2.json @@ -2,6 +2,7 @@ "version" : "2.0", "service" : "AWS Elemental MediaPackage", "operations" : { + "ConfigureLogs" : "Changes the Channel's properities to configure log subscription", "CreateChannel" : "Creates a new Channel.", "CreateHarvestJob" : "Creates a new HarvestJob record.", "CreateOriginEndpoint" : "Creates a new OriginEndpoint record.", @@ -92,6 +93,10 @@ "OriginEndpointUpdateParameters$CmafPackage" : null } }, + "ConfigureLogsParameters" : { + "base" : "The configuration parameters for ingress and egress access logging.", + "refs" : { } + }, "DashEncryption" : { "base" : "A Dynamic Adaptive Streaming over HTTP (DASH) encryption configuration.", "refs" : { @@ -106,6 +111,13 @@ "OriginEndpointUpdateParameters$DashPackage" : null } }, + "EgressAccessLogs" : { + "base" : "Configure egress access logging.", + "refs" : { + "Channel$EgressAccessLogs" : null, + "ConfigureLogsParameters$EgressAccessLogs" : null + } + }, "EncryptionMethod" : { "base" : null, "refs" : { @@ -164,6 +176,13 @@ "__listOfIngestEndpoint$member" : null } }, + "IngressAccessLogs" : { + "base" : "Configure ingress access logging.", + "refs" : { + "Channel$IngressAccessLogs" : null, + "ConfigureLogsParameters$IngressAccessLogs" : null + } + }, "ManifestLayout" : { "base" : null, "refs" : { @@ -413,6 +432,7 @@ "CmafPackage$SegmentPrefix" : "An optional custom string that is prepended to the name of each segment. If not specified, it defaults to the ChannelId.", "CmafPackageCreateOrUpdateParameters$SegmentPrefix" : "An optional custom string that is prepended to the name of each segment. If not specified, it defaults to the ChannelId.", "DashPackage$UtcTimingUri" : "Specifies the value attribute of the UTCTiming field when utcTiming is set to HTTP-ISO or HTTP-HEAD", + "EgressAccessLogs$LogGroupName" : "Customize the log group name.", "HarvestJob$Arn" : "The Amazon Resource Name (ARN) assigned to the HarvestJob.\n", "HarvestJob$ChannelId" : "The ID of the Channel that the HarvestJob will harvest from.\n", "HarvestJob$CreatedAt" : "The time the HarvestJob was submitted\n", @@ -435,6 +455,7 @@ "IngestEndpoint$Password" : "The system generated password for ingest authentication.", "IngestEndpoint$Url" : "The ingest URL to which the source stream should be sent.", "IngestEndpoint$Username" : "The system generated username for ingest authentication.", + "IngressAccessLogs$LogGroupName" : "Customize the log group name.", "OriginEndpoint$Arn" : "The Amazon Resource Name (ARN) assigned to the OriginEndpoint.", "OriginEndpoint$ChannelId" : "The ID of the Channel the OriginEndpoint is associated with.", "OriginEndpoint$Description" : "A short text description of the OriginEndpoint.", diff --git a/service/computeoptimizer/api.go b/service/computeoptimizer/api.go index cfd2d7ccb9c..8851ac99bcb 100644 --- a/service/computeoptimizer/api.go +++ b/service/computeoptimizer/api.go @@ -382,13 +382,10 @@ func (c *ComputeOptimizer) GetAutoScalingGroupRecommendationsRequest(input *GetA // // Returns Auto Scaling group recommendations. // -// AWS Compute Optimizer currently generates recommendations for Auto Scaling -// groups that are configured to run instances of the M, C, R, T, and X instance -// families. The service does not generate recommendations for Auto Scaling -// groups that have a scaling policy attached to them, or that do not have the -// same values for desired, minimum, and maximum capacity. In order for Compute -// Optimizer to analyze your Auto Scaling groups, they must be of a fixed size. -// For more information, see the AWS Compute Optimizer User Guide (https://docs.aws.amazon.com/compute-optimizer/latest/ug/what-is.html). +// AWS Compute Optimizer generates recommendations for Amazon EC2 Auto Scaling +// groups that meet a specific set of requirements. For more information, see +// the Supported resources and requirements (https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html) +// in the AWS Compute Optimizer User Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -491,10 +488,10 @@ func (c *ComputeOptimizer) GetEC2InstanceRecommendationsRequest(input *GetEC2Ins // // Returns Amazon EC2 instance recommendations. // -// AWS Compute Optimizer currently generates recommendations for Amazon Elastic -// Compute Cloud (Amazon EC2) and Amazon EC2 Auto Scaling. It generates recommendations -// for M, C, R, T, and X instance families. For more information, see the AWS -// Compute Optimizer User Guide (https://docs.aws.amazon.com/compute-optimizer/latest/ug/what-is.html). +// AWS Compute Optimizer generates recommendations for Amazon Elastic Compute +// Cloud (Amazon EC2) instances that meet a specific set of requirements. For +// more information, see the Supported resources and requirements (https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html) +// in the AWS Compute Optimizer User Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -597,6 +594,12 @@ func (c *ComputeOptimizer) GetEC2RecommendationProjectedMetricsRequest(input *Ge // // Returns the projected utilization metrics of Amazon EC2 instance recommendations. // +// The Cpu and Memory metrics are the only projected utilization metrics returned +// when you run this action. Additionally, the Memory metric is returned only +// for resources that have the unified CloudWatch agent installed on them. For +// more information, see Enabling Memory Utilization with the CloudWatch Agent +// (https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent). +// // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. @@ -1190,6 +1193,11 @@ type AutoScalingGroupRecommendationOption struct { // An array of objects that describe the projected utilization metrics of the // Auto Scaling group recommendation option. + // + // The Cpu and Memory metrics are the only projected utilization metrics returned. + // Additionally, the Memory metric is returned only for resources that have + // the unified CloudWatch agent installed on them. For more information, see + // Enabling Memory Utilization with the CloudWatch Agent (https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent). ProjectedUtilizationMetrics []*UtilizationMetric `locationName:"projectedUtilizationMetrics" type:"list"` // The rank of the Auto Scaling group recommendation option. @@ -1343,7 +1351,9 @@ type ExportAutoScalingGroupRecommendationsInput struct { // You can specify multiple account IDs per request. AccountIds []*string `locationName:"accountIds" type:"list"` - // The recommendations data to include in the export file. + // The recommendations data to include in the export file. For more information + // about the fields that can be exported, see Exported files (https://docs.aws.amazon.com/compute-optimizer/latest/ug/exporting-recommendations.html#exported-files) + // in the Compute Optimizer User Guide. FieldsToExport []*string `locationName:"fieldsToExport" type:"list"` // The format of the export file. @@ -1526,7 +1536,9 @@ type ExportEC2InstanceRecommendationsInput struct { // You can specify multiple account IDs per request. AccountIds []*string `locationName:"accountIds" type:"list"` - // The recommendations data to include in the export file. + // The recommendations data to include in the export file. For more information + // about the fields that can be exported, see Exported files (https://docs.aws.amazon.com/compute-optimizer/latest/ug/exporting-recommendations.html#exported-files) + // in the Compute Optimizer User Guide. FieldsToExport []*string `locationName:"fieldsToExport" type:"list"` // The format of the export file. @@ -2398,6 +2410,11 @@ type InstanceRecommendationOption struct { // An array of objects that describe the projected utilization metrics of the // instance recommendation option. + // + // The Cpu and Memory metrics are the only projected utilization metrics returned. + // Additionally, the Memory metric is returned only for resources that have + // the unified CloudWatch agent installed on them. For more information, see + // Enabling Memory Utilization with the CloudWatch Agent (https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent). ProjectedUtilizationMetrics []*UtilizationMetric `locationName:"projectedUtilizationMetrics" type:"list"` // The rank of the instance recommendation option. @@ -2770,14 +2787,16 @@ func (s *OptInRequiredException) RequestID() string { // Describes a projected utilization metric of a recommendation option, such // as an Amazon EC2 instance. +// +// The Cpu and Memory metrics are the only projected utilization metrics returned +// when you run the GetEC2RecommendationProjectedMetrics action. Additionally, +// the Memory metric is returned only for resources that have the unified CloudWatch +// agent installed on them. For more information, see Enabling Memory Utilization +// with the CloudWatch Agent (https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent). type ProjectedMetric struct { _ struct{} `type:"structure"` // The name of the projected utilization metric. - // - // Memory metrics are only returned for resources that have the unified CloudWatch - // agent installed on them. For more information, see Enabling Memory Utilization - // with the CloudWatch Agent (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html). Name *string `locationName:"name" type:"string" enum:"MetricName"` // The time stamps of the projected utilization metric. @@ -2976,6 +2995,12 @@ func (s *RecommendationSummary) SetSummaries(v []*Summary) *RecommendationSummar } // Describes a projected utilization metric of a recommendation option. +// +// The Cpu and Memory metrics are the only projected utilization metrics returned +// when you run the GetEC2RecommendationProjectedMetrics action. Additionally, +// the Memory metric is returned only for resources that have the unified CloudWatch +// agent installed on them. For more information, see Enabling Memory Utilization +// with the CloudWatch Agent (https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent). type RecommendedOptionProjectedMetric struct { _ struct{} `type:"structure"` @@ -3408,9 +3433,9 @@ type UtilizationMetric struct { // The name of the utilization metric. // - // Memory metrics are only returned for resources that have the unified CloudWatch + // The Memory metric is returned only for resources that have the unified CloudWatch // agent installed on them. For more information, see Enabling Memory Utilization - // with the CloudWatch Agent (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html). + // with the CloudWatch Agent (https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent). Name *string `locationName:"name" type:"string" enum:"MetricName"` // The statistic of the utilization metric. @@ -3467,6 +3492,18 @@ const ( // ExportableAutoScalingGroupFieldUtilizationMetricsMemoryMaximum is a ExportableAutoScalingGroupField enum value ExportableAutoScalingGroupFieldUtilizationMetricsMemoryMaximum = "UtilizationMetricsMemoryMaximum" + // ExportableAutoScalingGroupFieldUtilizationMetricsEbsReadOpsPerSecondMaximum is a ExportableAutoScalingGroupField enum value + ExportableAutoScalingGroupFieldUtilizationMetricsEbsReadOpsPerSecondMaximum = "UtilizationMetricsEbsReadOpsPerSecondMaximum" + + // ExportableAutoScalingGroupFieldUtilizationMetricsEbsWriteOpsPerSecondMaximum is a ExportableAutoScalingGroupField enum value + ExportableAutoScalingGroupFieldUtilizationMetricsEbsWriteOpsPerSecondMaximum = "UtilizationMetricsEbsWriteOpsPerSecondMaximum" + + // ExportableAutoScalingGroupFieldUtilizationMetricsEbsReadBytesPerSecondMaximum is a ExportableAutoScalingGroupField enum value + ExportableAutoScalingGroupFieldUtilizationMetricsEbsReadBytesPerSecondMaximum = "UtilizationMetricsEbsReadBytesPerSecondMaximum" + + // ExportableAutoScalingGroupFieldUtilizationMetricsEbsWriteBytesPerSecondMaximum is a ExportableAutoScalingGroupField enum value + ExportableAutoScalingGroupFieldUtilizationMetricsEbsWriteBytesPerSecondMaximum = "UtilizationMetricsEbsWriteBytesPerSecondMaximum" + // ExportableAutoScalingGroupFieldLookbackPeriodInDays is a ExportableAutoScalingGroupField enum value ExportableAutoScalingGroupFieldLookbackPeriodInDays = "LookbackPeriodInDays" @@ -3558,6 +3595,10 @@ func ExportableAutoScalingGroupField_Values() []string { ExportableAutoScalingGroupFieldFinding, ExportableAutoScalingGroupFieldUtilizationMetricsCpuMaximum, ExportableAutoScalingGroupFieldUtilizationMetricsMemoryMaximum, + ExportableAutoScalingGroupFieldUtilizationMetricsEbsReadOpsPerSecondMaximum, + ExportableAutoScalingGroupFieldUtilizationMetricsEbsWriteOpsPerSecondMaximum, + ExportableAutoScalingGroupFieldUtilizationMetricsEbsReadBytesPerSecondMaximum, + ExportableAutoScalingGroupFieldUtilizationMetricsEbsWriteBytesPerSecondMaximum, ExportableAutoScalingGroupFieldLookbackPeriodInDays, ExportableAutoScalingGroupFieldCurrentConfigurationInstanceType, ExportableAutoScalingGroupFieldCurrentConfigurationDesiredCapacity, @@ -3613,6 +3654,18 @@ const ( // ExportableInstanceFieldUtilizationMetricsMemoryMaximum is a ExportableInstanceField enum value ExportableInstanceFieldUtilizationMetricsMemoryMaximum = "UtilizationMetricsMemoryMaximum" + // ExportableInstanceFieldUtilizationMetricsEbsReadOpsPerSecondMaximum is a ExportableInstanceField enum value + ExportableInstanceFieldUtilizationMetricsEbsReadOpsPerSecondMaximum = "UtilizationMetricsEbsReadOpsPerSecondMaximum" + + // ExportableInstanceFieldUtilizationMetricsEbsWriteOpsPerSecondMaximum is a ExportableInstanceField enum value + ExportableInstanceFieldUtilizationMetricsEbsWriteOpsPerSecondMaximum = "UtilizationMetricsEbsWriteOpsPerSecondMaximum" + + // ExportableInstanceFieldUtilizationMetricsEbsReadBytesPerSecondMaximum is a ExportableInstanceField enum value + ExportableInstanceFieldUtilizationMetricsEbsReadBytesPerSecondMaximum = "UtilizationMetricsEbsReadBytesPerSecondMaximum" + + // ExportableInstanceFieldUtilizationMetricsEbsWriteBytesPerSecondMaximum is a ExportableInstanceField enum value + ExportableInstanceFieldUtilizationMetricsEbsWriteBytesPerSecondMaximum = "UtilizationMetricsEbsWriteBytesPerSecondMaximum" + // ExportableInstanceFieldCurrentOnDemandPrice is a ExportableInstanceField enum value ExportableInstanceFieldCurrentOnDemandPrice = "CurrentOnDemandPrice" @@ -3688,6 +3741,10 @@ func ExportableInstanceField_Values() []string { ExportableInstanceFieldCurrentInstanceType, ExportableInstanceFieldUtilizationMetricsCpuMaximum, ExportableInstanceFieldUtilizationMetricsMemoryMaximum, + ExportableInstanceFieldUtilizationMetricsEbsReadOpsPerSecondMaximum, + ExportableInstanceFieldUtilizationMetricsEbsWriteOpsPerSecondMaximum, + ExportableInstanceFieldUtilizationMetricsEbsReadBytesPerSecondMaximum, + ExportableInstanceFieldUtilizationMetricsEbsWriteBytesPerSecondMaximum, ExportableInstanceFieldCurrentOnDemandPrice, ExportableInstanceFieldCurrentStandardOneYearNoUpfrontReservedPrice, ExportableInstanceFieldCurrentStandardThreeYearNoUpfrontReservedPrice, @@ -3810,6 +3867,18 @@ const ( // MetricNameMemory is a MetricName enum value MetricNameMemory = "Memory" + + // MetricNameEbsReadOpsPerSecond is a MetricName enum value + MetricNameEbsReadOpsPerSecond = "EBS_READ_OPS_PER_SECOND" + + // MetricNameEbsWriteOpsPerSecond is a MetricName enum value + MetricNameEbsWriteOpsPerSecond = "EBS_WRITE_OPS_PER_SECOND" + + // MetricNameEbsReadBytesPerSecond is a MetricName enum value + MetricNameEbsReadBytesPerSecond = "EBS_READ_BYTES_PER_SECOND" + + // MetricNameEbsWriteBytesPerSecond is a MetricName enum value + MetricNameEbsWriteBytesPerSecond = "EBS_WRITE_BYTES_PER_SECOND" ) // MetricName_Values returns all elements of the MetricName enum @@ -3817,6 +3886,10 @@ func MetricName_Values() []string { return []string{ MetricNameCpu, MetricNameMemory, + MetricNameEbsReadOpsPerSecond, + MetricNameEbsWriteOpsPerSecond, + MetricNameEbsReadBytesPerSecond, + MetricNameEbsWriteBytesPerSecond, } } diff --git a/service/costexplorer/api.go b/service/costexplorer/api.go index 7ba4f1f59d7..ffd4832b8b1 100644 --- a/service/costexplorer/api.go +++ b/service/costexplorer/api.go @@ -901,7 +901,7 @@ func (c *CostExplorer) GetCostAndUsageRequest(input *GetCostAndUsageInput) (req // you want the request to return. You can also filter and group your data by // various dimensions, such as SERVICE or AZ, in a specific time range. For // a complete list of valid dimensions, see the GetDimensionValues (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_GetDimensionValues.html) -// operation. Master accounts in an organization in AWS Organizations have access +// operation. Master account in an organization in AWS Organizations have access // to all member accounts. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -999,7 +999,7 @@ func (c *CostExplorer) GetCostAndUsageWithResourcesRequest(input *GetCostAndUsag // that you want the request to return. You can also filter and group your data // by various dimensions, such as SERVICE or AZ, in a specific time range. For // a complete list of valid dimensions, see the GetDimensionValues (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_GetDimensionValues.html) -// operation. Master accounts in an organization in AWS Organizations have access +// operation. Master account in an organization in AWS Organizations have access // to all member accounts. This API is currently available for the Amazon Elastic // Compute Cloud – Compute service only. // @@ -1493,7 +1493,7 @@ func (c *CostExplorer) GetReservationUtilizationRequest(input *GetReservationUti // GetReservationUtilization API operation for AWS Cost Explorer Service. // -// Retrieves the reservation utilization for your account. Master accounts in +// Retrieves the reservation utilization for your account. Master account in // an organization have access to member accounts. You can filter data by dimensions // in a time period. You can use GetDimensionValues to determine the possible // dimension values. Currently, you can group only by SUBSCRIPTION_ID. @@ -1910,7 +1910,7 @@ func (c *CostExplorer) GetSavingsPlansUtilizationRequest(input *GetSavingsPlansU // GetSavingsPlansUtilization API operation for AWS Cost Explorer Service. // // Retrieves the Savings Plans utilization for your account across date ranges -// with daily or monthly granularity. Master accounts in an organization have +// with daily or monthly granularity. Master account in an organization have // access to member accounts. You can use GetDimensionValues in SAVINGS_PLANS // to determine the possible dimension values. // @@ -2947,11 +2947,13 @@ type AnomalyMonitor struct { // // * Simple dimension values - You can set the dimension name and values // for the filters that you plan to use. For example, you can filter for - // REGION==us-east-1 OR REGION==us-west-1. The Expression for that looks - // like this: { "Dimensions": { "Key": "REGION", "Values": [ "us-east-1", - // “us-west-1” ] } } The list of dimension values are OR'd together to - // retrieve cost or usage data. You can create Expression and DimensionValues - // objects using either with* methods or set* methods in multiple lines. + // REGION==us-east-1 OR REGION==us-west-1. For GetRightsizingRecommendation, + // the Region is a full name (for example, REGION==US East (N. Virginia). + // The Expression example looks like: { "Dimensions": { "Key": "REGION", + // "Values": [ "us-east-1", “us-west-1” ] } } The list of dimension values + // are OR'd together to retrieve cost or usage data. You can create Expression + // and DimensionValues objects using either with* methods or set* methods + // in multiple lines. // // * Compound dimension values with logical operations - You can use multiple // Expression types and the logical operators AND/OR/NOT to create a list @@ -4588,6 +4590,58 @@ func (s *DimensionValuesWithAttributes) SetValue(v string) *DimensionValuesWithA return s } +// The EBS field that contains a list of EBS metrics associated with the current +// instance. +type EBSResourceUtilization struct { + _ struct{} `type:"structure"` + + // The maximum size of read operations per second + EbsReadBytesPerSecond *string `type:"string"` + + // The maximum number of read operations per second. + EbsReadOpsPerSecond *string `type:"string"` + + // The maximum size of write operations per second. + EbsWriteBytesPerSecond *string `type:"string"` + + // The maximum number of write operations per second. + EbsWriteOpsPerSecond *string `type:"string"` +} + +// String returns the string representation +func (s EBSResourceUtilization) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s EBSResourceUtilization) GoString() string { + return s.String() +} + +// SetEbsReadBytesPerSecond sets the EbsReadBytesPerSecond field's value. +func (s *EBSResourceUtilization) SetEbsReadBytesPerSecond(v string) *EBSResourceUtilization { + s.EbsReadBytesPerSecond = &v + return s +} + +// SetEbsReadOpsPerSecond sets the EbsReadOpsPerSecond field's value. +func (s *EBSResourceUtilization) SetEbsReadOpsPerSecond(v string) *EBSResourceUtilization { + s.EbsReadOpsPerSecond = &v + return s +} + +// SetEbsWriteBytesPerSecond sets the EbsWriteBytesPerSecond field's value. +func (s *EBSResourceUtilization) SetEbsWriteBytesPerSecond(v string) *EBSResourceUtilization { + s.EbsWriteBytesPerSecond = &v + return s +} + +// SetEbsWriteOpsPerSecond sets the EbsWriteOpsPerSecond field's value. +func (s *EBSResourceUtilization) SetEbsWriteOpsPerSecond(v string) *EBSResourceUtilization { + s.EbsWriteOpsPerSecond = &v + return s +} + // Details about the Amazon EC2 instances that AWS recommends that you purchase. type EC2InstanceDetails struct { _ struct{} `type:"structure"` @@ -4777,6 +4831,10 @@ func (s *EC2ResourceDetails) SetVcpu(v string) *EC2ResourceDetails { type EC2ResourceUtilization struct { _ struct{} `type:"structure"` + // The EBS field that contains a list of EBS metrics associated with the current + // instance. + EBSResourceUtilization *EBSResourceUtilization `type:"structure"` + // Maximum observed or expected CPU utilization of the instance. MaxCpuUtilizationPercentage *string `type:"string"` @@ -4798,6 +4856,12 @@ func (s EC2ResourceUtilization) GoString() string { return s.String() } +// SetEBSResourceUtilization sets the EBSResourceUtilization field's value. +func (s *EC2ResourceUtilization) SetEBSResourceUtilization(v *EBSResourceUtilization) *EC2ResourceUtilization { + s.EBSResourceUtilization = v + return s +} + // SetMaxCpuUtilizationPercentage sets the MaxCpuUtilizationPercentage field's value. func (s *EC2ResourceUtilization) SetMaxCpuUtilizationPercentage(v string) *EC2ResourceUtilization { s.MaxCpuUtilizationPercentage = &v @@ -4975,11 +5039,13 @@ func (s *ElastiCacheInstanceDetails) SetSizeFlexEligible(v bool) *ElastiCacheIns // // * Simple dimension values - You can set the dimension name and values // for the filters that you plan to use. For example, you can filter for -// REGION==us-east-1 OR REGION==us-west-1. The Expression for that looks -// like this: { "Dimensions": { "Key": "REGION", "Values": [ "us-east-1", -// “us-west-1” ] } } The list of dimension values are OR'd together to -// retrieve cost or usage data. You can create Expression and DimensionValues -// objects using either with* methods or set* methods in multiple lines. +// REGION==us-east-1 OR REGION==us-west-1. For GetRightsizingRecommendation, +// the Region is a full name (for example, REGION==US East (N. Virginia). +// The Expression example looks like: { "Dimensions": { "Key": "REGION", +// "Values": [ "us-east-1", “us-west-1” ] } } The list of dimension values +// are OR'd together to retrieve cost or usage data. You can create Expression +// and DimensionValues objects using either with* methods or set* methods +// in multiple lines. // // * Compound dimension values with logical operations - You can use multiple // Expression types and the logical operators AND/OR/NOT to create a list @@ -6505,9 +6571,9 @@ type GetReservationPurchaseRecommendationInput struct { AccountId *string `type:"string"` // The account scope that you want your recommendations for. Amazon Web Services - // calculates recommendations including the payer account and linked accounts + // calculates recommendations including the master account and member accounts // if the value is set to PAYER. If the value is LINKED, recommendations are - // calculated for individual linked accounts only. + // calculated for individual member accounts only. AccountScope *string `type:"string" enum:"AccountScope"` // The number of previous days that you want AWS to consider when it calculates @@ -6837,11 +6903,13 @@ type GetRightsizingRecommendationInput struct { // // * Simple dimension values - You can set the dimension name and values // for the filters that you plan to use. For example, you can filter for - // REGION==us-east-1 OR REGION==us-west-1. The Expression for that looks - // like this: { "Dimensions": { "Key": "REGION", "Values": [ "us-east-1", - // “us-west-1” ] } } The list of dimension values are OR'd together to - // retrieve cost or usage data. You can create Expression and DimensionValues - // objects using either with* methods or set* methods in multiple lines. + // REGION==us-east-1 OR REGION==us-west-1. For GetRightsizingRecommendation, + // the Region is a full name (for example, REGION==US East (N. Virginia). + // The Expression example looks like: { "Dimensions": { "Key": "REGION", + // "Values": [ "us-east-1", “us-west-1” ] } } The list of dimension values + // are OR'd together to retrieve cost or usage data. You can create Expression + // and DimensionValues objects using either with* methods or set* methods + // in multiple lines. // // * Compound dimension values with logical operations - You can use multiple // Expression types and the logical operators AND/OR/NOT to create a list @@ -7173,9 +7241,9 @@ type GetSavingsPlansPurchaseRecommendationInput struct { _ struct{} `type:"structure"` // The account scope that you want your recommendations for. Amazon Web Services - // calculates recommendations including the payer account and linked accounts + // calculates recommendations including the master account and member accounts // if the value is set to PAYER. If the value is LINKED, recommendations are - // calculated for individual linked accounts only. + // calculated for individual member accounts only. AccountScope *string `type:"string" enum:"AccountScope"` // You can filter your recommendations by Account ID with the LINKED_ACCOUNT @@ -9832,10 +9900,10 @@ func (s *SavingsPlansDetails) SetRegion(v string) *SavingsPlansDetails { type SavingsPlansPurchaseRecommendation struct { _ struct{} `type:"structure"` - // The account scope that you want your recommendations for. AWS calculates - // recommendations including the payer account and linked accounts if the value - // is set to PAYER. If the value is LINKED, recommendations are calculated for - // individual linked accounts only. + // The account scope that you want your recommendations for. Amazon Web Services + // calculates recommendations including the master account and member accounts + // if the value is set to PAYER. If the value is LINKED, recommendations are + // calculated for individual member accounts only. AccountScope *string `type:"string" enum:"AccountScope"` // The lookback period in days, used to generate the recommendation. @@ -10440,7 +10508,7 @@ func (s *SavingsPlansUtilizationByTime) SetUtilization(v *SavingsPlansUtilizatio } // A single daily or monthly Savings Plans utilization rate, and details for -// your account. Master accounts in an organization have access to member accounts. +// your account. A master account in an organization have access to member accounts. // You can use GetDimensionValues to determine the possible dimension values. type SavingsPlansUtilizationDetail struct { _ struct{} `type:"structure"` diff --git a/service/elasticache/api.go b/service/elasticache/api.go index a2767843498..bb9e651e4b3 100644 --- a/service/elasticache/api.go +++ b/service/elasticache/api.go @@ -1017,6 +1017,12 @@ func (c *ElastiCache) CreateCacheSubnetGroupRequest(input *CreateCacheSubnetGrou // * ErrCodeInvalidSubnet "InvalidSubnet" // An invalid subnet identifier was specified. // +// * ErrCodeSubnetNotAllowedFault "SubnetNotAllowedFault" +// At least one subnet ID does not match the other subnet IDs. This mismatch +// typically occurs when a user sets one subnet ID to a regional Availability +// Zone and a different one to an outpost. Or when a user sets the subnet ID +// to an Outpost when not subscribed on this service. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CreateCacheSubnetGroup func (c *ElastiCache) CreateCacheSubnetGroup(input *CreateCacheSubnetGroupInput) (*CreateCacheSubnetGroupOutput, error) { req, out := c.CreateCacheSubnetGroupRequest(input) @@ -1225,6 +1231,12 @@ func (c *ElastiCache) CreateReplicationGroupRequest(input *CreateReplicationGrou // * ErrCodeReplicationGroupAlreadyExistsFault "ReplicationGroupAlreadyExists" // The specified replication group already exists. // +// * ErrCodeInvalidUserGroupStateFault "InvalidUserGroupState" +// The user group is not in an active state. +// +// * ErrCodeUserGroupNotFoundFault "UserGroupNotFound" +// The user group was not found or does not exist +// // * ErrCodeInsufficientCacheClusterCapacityFault "InsufficientCacheClusterCapacity" // The requested cache node type is not available in the specified Availability // Zone. For more information, see InsufficientCacheClusterCapacity (http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/ErrorMessages.html#ErrorMessages.INSUFFICIENT_CACHE_CLUSTER_CAPACITY) @@ -1416,6 +1428,193 @@ func (c *ElastiCache) CreateSnapshotWithContext(ctx aws.Context, input *CreateSn return out, req.Send() } +const opCreateUser = "CreateUser" + +// CreateUserRequest generates a "aws/request.Request" representing the +// client's request for the CreateUser operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See CreateUser for more information on using the CreateUser +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the CreateUserRequest method. +// req, resp := client.CreateUserRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CreateUser +func (c *ElastiCache) CreateUserRequest(input *CreateUserInput) (req *request.Request, output *CreateUserOutput) { + op := &request.Operation{ + Name: opCreateUser, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateUserInput{} + } + + output = &CreateUserOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateUser API operation for Amazon ElastiCache. +// +// For Redis engine version 6.04 onwards: Creates a Redis user. For more information, +// see Using Role Based Access Control (RBAC) (http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Clusters.RBAC.html). +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon ElastiCache's +// API operation CreateUser for usage and error information. +// +// Returned Error Codes: +// * ErrCodeUserAlreadyExistsFault "UserAlreadyExists" +// A user with this ID already exists. +// +// * ErrCodeUserQuotaExceededFault "UserQuotaExceeded" +// The quota of users has been exceeded. +// +// * ErrCodeDuplicateUserNameFault "DuplicateUserName" +// A user with this username already exists. +// +// * ErrCodeInvalidParameterValueException "InvalidParameterValue" +// The value for a parameter is invalid. +// +// * ErrCodeInvalidParameterCombinationException "InvalidParameterCombination" +// Two or more incompatible parameters were specified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CreateUser +func (c *ElastiCache) CreateUser(input *CreateUserInput) (*CreateUserOutput, error) { + req, out := c.CreateUserRequest(input) + return out, req.Send() +} + +// CreateUserWithContext is the same as CreateUser with the addition of +// the ability to pass a context and additional request options. +// +// See CreateUser for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ElastiCache) CreateUserWithContext(ctx aws.Context, input *CreateUserInput, opts ...request.Option) (*CreateUserOutput, error) { + req, out := c.CreateUserRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateUserGroup = "CreateUserGroup" + +// CreateUserGroupRequest generates a "aws/request.Request" representing the +// client's request for the CreateUserGroup operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See CreateUserGroup for more information on using the CreateUserGroup +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the CreateUserGroupRequest method. +// req, resp := client.CreateUserGroupRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CreateUserGroup +func (c *ElastiCache) CreateUserGroupRequest(input *CreateUserGroupInput) (req *request.Request, output *CreateUserGroupOutput) { + op := &request.Operation{ + Name: opCreateUserGroup, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateUserGroupInput{} + } + + output = &CreateUserGroupOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateUserGroup API operation for Amazon ElastiCache. +// +// For Redis engine version 6.04 onwards: Creates a Redis user group. For more +// information, see Using Role Based Access Control (RBAC) (http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Clusters.RBAC.html) +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon ElastiCache's +// API operation CreateUserGroup for usage and error information. +// +// Returned Error Codes: +// * ErrCodeUserNotFoundFault "UserNotFound" +// The user does not exist or could not be found. +// +// * ErrCodeDuplicateUserNameFault "DuplicateUserName" +// A user with this username already exists. +// +// * ErrCodeUserGroupAlreadyExistsFault "UserGroupAlreadyExists" +// The user group with this ID already exists. +// +// * ErrCodeDefaultUserRequired "DefaultUserRequired" +// You must add default user to a user group. +// +// * ErrCodeUserGroupQuotaExceededFault "UserGroupQuotaExceeded" +// The number of users exceeds the user group limit. +// +// * ErrCodeInvalidParameterValueException "InvalidParameterValue" +// The value for a parameter is invalid. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CreateUserGroup +func (c *ElastiCache) CreateUserGroup(input *CreateUserGroupInput) (*CreateUserGroupOutput, error) { + req, out := c.CreateUserGroupRequest(input) + return out, req.Send() +} + +// CreateUserGroupWithContext is the same as CreateUserGroup with the addition of +// the ability to pass a context and additional request options. +// +// See CreateUserGroup for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ElastiCache) CreateUserGroupWithContext(ctx aws.Context, input *CreateUserGroupInput, opts ...request.Option) (*CreateUserGroupOutput, error) { + req, out := c.CreateUserGroupRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDecreaseNodeGroupsInGlobalReplicationGroup = "DecreaseNodeGroupsInGlobalReplicationGroup" // DecreaseNodeGroupsInGlobalReplicationGroupRequest generates a "aws/request.Request" representing the @@ -2324,6 +2523,182 @@ func (c *ElastiCache) DeleteSnapshotWithContext(ctx aws.Context, input *DeleteSn return out, req.Send() } +const opDeleteUser = "DeleteUser" + +// DeleteUserRequest generates a "aws/request.Request" representing the +// client's request for the DeleteUser operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DeleteUser for more information on using the DeleteUser +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the DeleteUserRequest method. +// req, resp := client.DeleteUserRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DeleteUser +func (c *ElastiCache) DeleteUserRequest(input *DeleteUserInput) (req *request.Request, output *DeleteUserOutput) { + op := &request.Operation{ + Name: opDeleteUser, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteUserInput{} + } + + output = &DeleteUserOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteUser API operation for Amazon ElastiCache. +// +// For Redis engine version 6.04 onwards: Deletes a user. The user will be removed +// from all user groups and in turn removed from all replication groups. For +// more information, see Using Role Based Access Control (RBAC) (http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Clusters.RBAC.html). +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon ElastiCache's +// API operation DeleteUser for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInvalidUserStateFault "InvalidUserState" +// The user is not in active state. +// +// * ErrCodeUserNotFoundFault "UserNotFound" +// The user does not exist or could not be found. +// +// * ErrCodeInvalidParameterValueException "InvalidParameterValue" +// The value for a parameter is invalid. +// +// * ErrCodeDefaultUserAssociatedToUserGroupFault "DefaultUserAssociatedToUserGroup" +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DeleteUser +func (c *ElastiCache) DeleteUser(input *DeleteUserInput) (*DeleteUserOutput, error) { + req, out := c.DeleteUserRequest(input) + return out, req.Send() +} + +// DeleteUserWithContext is the same as DeleteUser with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteUser for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ElastiCache) DeleteUserWithContext(ctx aws.Context, input *DeleteUserInput, opts ...request.Option) (*DeleteUserOutput, error) { + req, out := c.DeleteUserRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteUserGroup = "DeleteUserGroup" + +// DeleteUserGroupRequest generates a "aws/request.Request" representing the +// client's request for the DeleteUserGroup operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DeleteUserGroup for more information on using the DeleteUserGroup +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the DeleteUserGroupRequest method. +// req, resp := client.DeleteUserGroupRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DeleteUserGroup +func (c *ElastiCache) DeleteUserGroupRequest(input *DeleteUserGroupInput) (req *request.Request, output *DeleteUserGroupOutput) { + op := &request.Operation{ + Name: opDeleteUserGroup, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteUserGroupInput{} + } + + output = &DeleteUserGroupOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteUserGroup API operation for Amazon ElastiCache. +// +// For Redis engine version 6.04 onwards: Deletes a ser group. The user group +// must first be disassociated from the replcation group before it can be deleted. +// For more information, see Using Role Based Access Control (RBAC) (http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Clusters.RBAC.html). +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon ElastiCache's +// API operation DeleteUserGroup for usage and error information. +// +// Returned Error Codes: +// * ErrCodeUserGroupNotFoundFault "UserGroupNotFound" +// The user group was not found or does not exist +// +// * ErrCodeInvalidUserGroupStateFault "InvalidUserGroupState" +// The user group is not in an active state. +// +// * ErrCodeInvalidParameterValueException "InvalidParameterValue" +// The value for a parameter is invalid. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DeleteUserGroup +func (c *ElastiCache) DeleteUserGroup(input *DeleteUserGroupInput) (*DeleteUserGroupOutput, error) { + req, out := c.DeleteUserGroupRequest(input) + return out, req.Send() +} + +// DeleteUserGroupWithContext is the same as DeleteUserGroup with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteUserGroup for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ElastiCache) DeleteUserGroupWithContext(ctx aws.Context, input *DeleteUserGroupInput, opts ...request.Option) (*DeleteUserGroupOutput, error) { + req, out := c.DeleteUserGroupRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDescribeCacheClusters = "DescribeCacheClusters" // DescribeCacheClustersRequest generates a "aws/request.Request" representing the @@ -4495,24 +4870,304 @@ func (c *ElastiCache) DescribeUpdateActionsPagesWithContext(ctx aws.Context, inp return p.Err() } -const opDisassociateGlobalReplicationGroup = "DisassociateGlobalReplicationGroup" +const opDescribeUserGroups = "DescribeUserGroups" -// DisassociateGlobalReplicationGroupRequest generates a "aws/request.Request" representing the -// client's request for the DisassociateGlobalReplicationGroup operation. The "output" return +// DescribeUserGroupsRequest generates a "aws/request.Request" representing the +// client's request for the DescribeUserGroups operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // -// See DisassociateGlobalReplicationGroup for more information on using the DisassociateGlobalReplicationGroup +// See DescribeUserGroups for more information on using the DescribeUserGroups // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // -// // Example sending a request using the DisassociateGlobalReplicationGroupRequest method. +// // Example sending a request using the DescribeUserGroupsRequest method. +// req, resp := client.DescribeUserGroupsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DescribeUserGroups +func (c *ElastiCache) DescribeUserGroupsRequest(input *DescribeUserGroupsInput) (req *request.Request, output *DescribeUserGroupsOutput) { + op := &request.Operation{ + Name: opDescribeUserGroups, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"Marker"}, + OutputTokens: []string{"Marker"}, + LimitToken: "MaxRecords", + TruncationToken: "", + }, + } + + if input == nil { + input = &DescribeUserGroupsInput{} + } + + output = &DescribeUserGroupsOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeUserGroups API operation for Amazon ElastiCache. +// +// Returns a list of user groups. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon ElastiCache's +// API operation DescribeUserGroups for usage and error information. +// +// Returned Error Codes: +// * ErrCodeUserGroupNotFoundFault "UserGroupNotFound" +// The user group was not found or does not exist +// +// * ErrCodeInvalidParameterCombinationException "InvalidParameterCombination" +// Two or more incompatible parameters were specified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DescribeUserGroups +func (c *ElastiCache) DescribeUserGroups(input *DescribeUserGroupsInput) (*DescribeUserGroupsOutput, error) { + req, out := c.DescribeUserGroupsRequest(input) + return out, req.Send() +} + +// DescribeUserGroupsWithContext is the same as DescribeUserGroups with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeUserGroups for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ElastiCache) DescribeUserGroupsWithContext(ctx aws.Context, input *DescribeUserGroupsInput, opts ...request.Option) (*DescribeUserGroupsOutput, error) { + req, out := c.DescribeUserGroupsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// DescribeUserGroupsPages iterates over the pages of a DescribeUserGroups operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See DescribeUserGroups method for more information on how to use this operation. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over at most 3 pages of a DescribeUserGroups operation. +// pageNum := 0 +// err := client.DescribeUserGroupsPages(params, +// func(page *elasticache.DescribeUserGroupsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +// +func (c *ElastiCache) DescribeUserGroupsPages(input *DescribeUserGroupsInput, fn func(*DescribeUserGroupsOutput, bool) bool) error { + return c.DescribeUserGroupsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// DescribeUserGroupsPagesWithContext same as DescribeUserGroupsPages except +// it takes a Context and allows setting request options on the pages. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ElastiCache) DescribeUserGroupsPagesWithContext(ctx aws.Context, input *DescribeUserGroupsInput, fn func(*DescribeUserGroupsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *DescribeUserGroupsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.DescribeUserGroupsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*DescribeUserGroupsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opDescribeUsers = "DescribeUsers" + +// DescribeUsersRequest generates a "aws/request.Request" representing the +// client's request for the DescribeUsers operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DescribeUsers for more information on using the DescribeUsers +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the DescribeUsersRequest method. +// req, resp := client.DescribeUsersRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DescribeUsers +func (c *ElastiCache) DescribeUsersRequest(input *DescribeUsersInput) (req *request.Request, output *DescribeUsersOutput) { + op := &request.Operation{ + Name: opDescribeUsers, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"Marker"}, + OutputTokens: []string{"Marker"}, + LimitToken: "MaxRecords", + TruncationToken: "", + }, + } + + if input == nil { + input = &DescribeUsersInput{} + } + + output = &DescribeUsersOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeUsers API operation for Amazon ElastiCache. +// +// Returns a list of users. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon ElastiCache's +// API operation DescribeUsers for usage and error information. +// +// Returned Error Codes: +// * ErrCodeUserNotFoundFault "UserNotFound" +// The user does not exist or could not be found. +// +// * ErrCodeInvalidParameterCombinationException "InvalidParameterCombination" +// Two or more incompatible parameters were specified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DescribeUsers +func (c *ElastiCache) DescribeUsers(input *DescribeUsersInput) (*DescribeUsersOutput, error) { + req, out := c.DescribeUsersRequest(input) + return out, req.Send() +} + +// DescribeUsersWithContext is the same as DescribeUsers with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeUsers for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ElastiCache) DescribeUsersWithContext(ctx aws.Context, input *DescribeUsersInput, opts ...request.Option) (*DescribeUsersOutput, error) { + req, out := c.DescribeUsersRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// DescribeUsersPages iterates over the pages of a DescribeUsers operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See DescribeUsers method for more information on how to use this operation. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over at most 3 pages of a DescribeUsers operation. +// pageNum := 0 +// err := client.DescribeUsersPages(params, +// func(page *elasticache.DescribeUsersOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +// +func (c *ElastiCache) DescribeUsersPages(input *DescribeUsersInput, fn func(*DescribeUsersOutput, bool) bool) error { + return c.DescribeUsersPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// DescribeUsersPagesWithContext same as DescribeUsersPages except +// it takes a Context and allows setting request options on the pages. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ElastiCache) DescribeUsersPagesWithContext(ctx aws.Context, input *DescribeUsersInput, fn func(*DescribeUsersOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *DescribeUsersInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.DescribeUsersRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*DescribeUsersOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opDisassociateGlobalReplicationGroup = "DisassociateGlobalReplicationGroup" + +// DisassociateGlobalReplicationGroupRequest generates a "aws/request.Request" representing the +// client's request for the DisassociateGlobalReplicationGroup operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DisassociateGlobalReplicationGroup for more information on using the DisassociateGlobalReplicationGroup +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the DisassociateGlobalReplicationGroupRequest method. // req, resp := client.DisassociateGlobalReplicationGroupRequest(params) // // err := req.Send() @@ -5348,6 +6003,12 @@ func (c *ElastiCache) ModifyCacheSubnetGroupRequest(input *ModifyCacheSubnetGrou // * ErrCodeInvalidSubnet "InvalidSubnet" // An invalid subnet identifier was specified. // +// * ErrCodeSubnetNotAllowedFault "SubnetNotAllowedFault" +// At least one subnet ID does not match the other subnet IDs. This mismatch +// typically occurs when a user sets one subnet ID to a regional Availability +// Zone and a different one to an outpost. Or when a user sets the subnet ID +// to an Outpost when not subscribed on this service. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/ModifyCacheSubnetGroup func (c *ElastiCache) ModifyCacheSubnetGroup(input *ModifyCacheSubnetGroupInput) (*ModifyCacheSubnetGroupOutput, error) { req, out := c.ModifyCacheSubnetGroupRequest(input) @@ -5523,6 +6184,12 @@ func (c *ElastiCache) ModifyReplicationGroupRequest(input *ModifyReplicationGrou // * ErrCodeInvalidReplicationGroupStateFault "InvalidReplicationGroupState" // The requested replication group is not in the available state. // +// * ErrCodeInvalidUserGroupStateFault "InvalidUserGroupState" +// The user group is not in an active state. +// +// * ErrCodeUserGroupNotFoundFault "UserGroupNotFound" +// The user group was not found or does not exist +// // * ErrCodeInvalidCacheClusterStateFault "InvalidCacheClusterState" // The requested cluster is not in the available state. // @@ -5699,69 +6366,65 @@ func (c *ElastiCache) ModifyReplicationGroupShardConfigurationWithContext(ctx aw return out, req.Send() } -const opPurchaseReservedCacheNodesOffering = "PurchaseReservedCacheNodesOffering" +const opModifyUser = "ModifyUser" -// PurchaseReservedCacheNodesOfferingRequest generates a "aws/request.Request" representing the -// client's request for the PurchaseReservedCacheNodesOffering operation. The "output" return +// ModifyUserRequest generates a "aws/request.Request" representing the +// client's request for the ModifyUser operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // -// See PurchaseReservedCacheNodesOffering for more information on using the PurchaseReservedCacheNodesOffering +// See ModifyUser for more information on using the ModifyUser // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // -// // Example sending a request using the PurchaseReservedCacheNodesOfferingRequest method. -// req, resp := client.PurchaseReservedCacheNodesOfferingRequest(params) +// // Example sending a request using the ModifyUserRequest method. +// req, resp := client.ModifyUserRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/PurchaseReservedCacheNodesOffering -func (c *ElastiCache) PurchaseReservedCacheNodesOfferingRequest(input *PurchaseReservedCacheNodesOfferingInput) (req *request.Request, output *PurchaseReservedCacheNodesOfferingOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/ModifyUser +func (c *ElastiCache) ModifyUserRequest(input *ModifyUserInput) (req *request.Request, output *ModifyUserOutput) { op := &request.Operation{ - Name: opPurchaseReservedCacheNodesOffering, + Name: opModifyUser, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { - input = &PurchaseReservedCacheNodesOfferingInput{} + input = &ModifyUserInput{} } - output = &PurchaseReservedCacheNodesOfferingOutput{} + output = &ModifyUserOutput{} req = c.newRequest(op, input, output) return } -// PurchaseReservedCacheNodesOffering API operation for Amazon ElastiCache. +// ModifyUser API operation for Amazon ElastiCache. // -// Allows you to purchase a reserved cache node offering. +// Changes user password(s) and/or access string. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Amazon ElastiCache's -// API operation PurchaseReservedCacheNodesOffering for usage and error information. +// API operation ModifyUser for usage and error information. // // Returned Error Codes: -// * ErrCodeReservedCacheNodesOfferingNotFoundFault "ReservedCacheNodesOfferingNotFound" -// The requested cache node offering does not exist. -// -// * ErrCodeReservedCacheNodeAlreadyExistsFault "ReservedCacheNodeAlreadyExists" -// You already have a reservation with the given identifier. +// * ErrCodeUserNotFoundFault "UserNotFound" +// The user does not exist or could not be found. // -// * ErrCodeReservedCacheNodeQuotaExceededFault "ReservedCacheNodeQuotaExceeded" -// The request cannot be processed because it would exceed the user's cache -// node quota. +// * ErrCodeInvalidUserStateFault "InvalidUserState" +// The user is not in active state. // // * ErrCodeInvalidParameterValueException "InvalidParameterValue" // The value for a parameter is invalid. @@ -5769,57 +6432,246 @@ func (c *ElastiCache) PurchaseReservedCacheNodesOfferingRequest(input *PurchaseR // * ErrCodeInvalidParameterCombinationException "InvalidParameterCombination" // Two or more incompatible parameters were specified. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/PurchaseReservedCacheNodesOffering -func (c *ElastiCache) PurchaseReservedCacheNodesOffering(input *PurchaseReservedCacheNodesOfferingInput) (*PurchaseReservedCacheNodesOfferingOutput, error) { - req, out := c.PurchaseReservedCacheNodesOfferingRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/ModifyUser +func (c *ElastiCache) ModifyUser(input *ModifyUserInput) (*ModifyUserOutput, error) { + req, out := c.ModifyUserRequest(input) return out, req.Send() } -// PurchaseReservedCacheNodesOfferingWithContext is the same as PurchaseReservedCacheNodesOffering with the addition of +// ModifyUserWithContext is the same as ModifyUser with the addition of // the ability to pass a context and additional request options. // -// See PurchaseReservedCacheNodesOffering for details on how to use this API operation. +// See ModifyUser for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *ElastiCache) PurchaseReservedCacheNodesOfferingWithContext(ctx aws.Context, input *PurchaseReservedCacheNodesOfferingInput, opts ...request.Option) (*PurchaseReservedCacheNodesOfferingOutput, error) { - req, out := c.PurchaseReservedCacheNodesOfferingRequest(input) +func (c *ElastiCache) ModifyUserWithContext(ctx aws.Context, input *ModifyUserInput, opts ...request.Option) (*ModifyUserOutput, error) { + req, out := c.ModifyUserRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opRebalanceSlotsInGlobalReplicationGroup = "RebalanceSlotsInGlobalReplicationGroup" +const opModifyUserGroup = "ModifyUserGroup" -// RebalanceSlotsInGlobalReplicationGroupRequest generates a "aws/request.Request" representing the -// client's request for the RebalanceSlotsInGlobalReplicationGroup operation. The "output" return +// ModifyUserGroupRequest generates a "aws/request.Request" representing the +// client's request for the ModifyUserGroup operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // -// See RebalanceSlotsInGlobalReplicationGroup for more information on using the RebalanceSlotsInGlobalReplicationGroup +// See ModifyUserGroup for more information on using the ModifyUserGroup // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // -// // Example sending a request using the RebalanceSlotsInGlobalReplicationGroupRequest method. -// req, resp := client.RebalanceSlotsInGlobalReplicationGroupRequest(params) +// // Example sending a request using the ModifyUserGroupRequest method. +// req, resp := client.ModifyUserGroupRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/RebalanceSlotsInGlobalReplicationGroup -func (c *ElastiCache) RebalanceSlotsInGlobalReplicationGroupRequest(input *RebalanceSlotsInGlobalReplicationGroupInput) (req *request.Request, output *RebalanceSlotsInGlobalReplicationGroupOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/ModifyUserGroup +func (c *ElastiCache) ModifyUserGroupRequest(input *ModifyUserGroupInput) (req *request.Request, output *ModifyUserGroupOutput) { op := &request.Operation{ - Name: opRebalanceSlotsInGlobalReplicationGroup, + Name: opModifyUserGroup, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ModifyUserGroupInput{} + } + + output = &ModifyUserGroupOutput{} + req = c.newRequest(op, input, output) + return +} + +// ModifyUserGroup API operation for Amazon ElastiCache. +// +// Changes the list of users that belong to the user group. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon ElastiCache's +// API operation ModifyUserGroup for usage and error information. +// +// Returned Error Codes: +// * ErrCodeUserGroupNotFoundFault "UserGroupNotFound" +// The user group was not found or does not exist +// +// * ErrCodeUserNotFoundFault "UserNotFound" +// The user does not exist or could not be found. +// +// * ErrCodeDuplicateUserNameFault "DuplicateUserName" +// A user with this username already exists. +// +// * ErrCodeDefaultUserRequired "DefaultUserRequired" +// You must add default user to a user group. +// +// * ErrCodeInvalidUserGroupStateFault "InvalidUserGroupState" +// The user group is not in an active state. +// +// * ErrCodeInvalidParameterValueException "InvalidParameterValue" +// The value for a parameter is invalid. +// +// * ErrCodeInvalidParameterCombinationException "InvalidParameterCombination" +// Two or more incompatible parameters were specified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/ModifyUserGroup +func (c *ElastiCache) ModifyUserGroup(input *ModifyUserGroupInput) (*ModifyUserGroupOutput, error) { + req, out := c.ModifyUserGroupRequest(input) + return out, req.Send() +} + +// ModifyUserGroupWithContext is the same as ModifyUserGroup with the addition of +// the ability to pass a context and additional request options. +// +// See ModifyUserGroup for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ElastiCache) ModifyUserGroupWithContext(ctx aws.Context, input *ModifyUserGroupInput, opts ...request.Option) (*ModifyUserGroupOutput, error) { + req, out := c.ModifyUserGroupRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opPurchaseReservedCacheNodesOffering = "PurchaseReservedCacheNodesOffering" + +// PurchaseReservedCacheNodesOfferingRequest generates a "aws/request.Request" representing the +// client's request for the PurchaseReservedCacheNodesOffering operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See PurchaseReservedCacheNodesOffering for more information on using the PurchaseReservedCacheNodesOffering +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the PurchaseReservedCacheNodesOfferingRequest method. +// req, resp := client.PurchaseReservedCacheNodesOfferingRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/PurchaseReservedCacheNodesOffering +func (c *ElastiCache) PurchaseReservedCacheNodesOfferingRequest(input *PurchaseReservedCacheNodesOfferingInput) (req *request.Request, output *PurchaseReservedCacheNodesOfferingOutput) { + op := &request.Operation{ + Name: opPurchaseReservedCacheNodesOffering, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &PurchaseReservedCacheNodesOfferingInput{} + } + + output = &PurchaseReservedCacheNodesOfferingOutput{} + req = c.newRequest(op, input, output) + return +} + +// PurchaseReservedCacheNodesOffering API operation for Amazon ElastiCache. +// +// Allows you to purchase a reserved cache node offering. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon ElastiCache's +// API operation PurchaseReservedCacheNodesOffering for usage and error information. +// +// Returned Error Codes: +// * ErrCodeReservedCacheNodesOfferingNotFoundFault "ReservedCacheNodesOfferingNotFound" +// The requested cache node offering does not exist. +// +// * ErrCodeReservedCacheNodeAlreadyExistsFault "ReservedCacheNodeAlreadyExists" +// You already have a reservation with the given identifier. +// +// * ErrCodeReservedCacheNodeQuotaExceededFault "ReservedCacheNodeQuotaExceeded" +// The request cannot be processed because it would exceed the user's cache +// node quota. +// +// * ErrCodeInvalidParameterValueException "InvalidParameterValue" +// The value for a parameter is invalid. +// +// * ErrCodeInvalidParameterCombinationException "InvalidParameterCombination" +// Two or more incompatible parameters were specified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/PurchaseReservedCacheNodesOffering +func (c *ElastiCache) PurchaseReservedCacheNodesOffering(input *PurchaseReservedCacheNodesOfferingInput) (*PurchaseReservedCacheNodesOfferingOutput, error) { + req, out := c.PurchaseReservedCacheNodesOfferingRequest(input) + return out, req.Send() +} + +// PurchaseReservedCacheNodesOfferingWithContext is the same as PurchaseReservedCacheNodesOffering with the addition of +// the ability to pass a context and additional request options. +// +// See PurchaseReservedCacheNodesOffering for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ElastiCache) PurchaseReservedCacheNodesOfferingWithContext(ctx aws.Context, input *PurchaseReservedCacheNodesOfferingInput, opts ...request.Option) (*PurchaseReservedCacheNodesOfferingOutput, error) { + req, out := c.PurchaseReservedCacheNodesOfferingRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opRebalanceSlotsInGlobalReplicationGroup = "RebalanceSlotsInGlobalReplicationGroup" + +// RebalanceSlotsInGlobalReplicationGroupRequest generates a "aws/request.Request" representing the +// client's request for the RebalanceSlotsInGlobalReplicationGroup operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See RebalanceSlotsInGlobalReplicationGroup for more information on using the RebalanceSlotsInGlobalReplicationGroup +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the RebalanceSlotsInGlobalReplicationGroupRequest method. +// req, resp := client.RebalanceSlotsInGlobalReplicationGroupRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/RebalanceSlotsInGlobalReplicationGroup +func (c *ElastiCache) RebalanceSlotsInGlobalReplicationGroupRequest(input *RebalanceSlotsInGlobalReplicationGroupInput) (req *request.Request, output *RebalanceSlotsInGlobalReplicationGroupOutput) { + op := &request.Operation{ + Name: opRebalanceSlotsInGlobalReplicationGroup, HTTPMethod: "POST", HTTPPath: "/", } @@ -6537,6 +7389,39 @@ func (s *AddTagsToResourceInput) SetTags(v []*Tag) *AddTagsToResourceInput { return s } +// Indicates whether the user requires a password to authenticate. +type Authentication struct { + _ struct{} `type:"structure"` + + // The number of passwords belonging to the user. The maximum is two. + PasswordCount *int64 `type:"integer"` + + // Indicates whether the user requires a password to authenticate. + Type *string `type:"string" enum:"AuthenticationType"` +} + +// String returns the string representation +func (s Authentication) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Authentication) GoString() string { + return s.String() +} + +// SetPasswordCount sets the PasswordCount field's value. +func (s *Authentication) SetPasswordCount(v int64) *Authentication { + s.PasswordCount = &v + return s +} + +// SetType sets the Type field's value. +func (s *Authentication) SetType(v string) *Authentication { + s.Type = &v + return s +} + // Represents the input of an AuthorizeCacheSecurityGroupIngress operation. type AuthorizeCacheSecurityGroupIngressInput struct { _ struct{} `type:"structure"` @@ -6987,6 +7872,9 @@ type CacheCluster struct { // Example: sun:23:00-mon:01:30 PreferredMaintenanceWindow *string `type:"string"` + // The outpost ARN in which the cache cluster is created. + PreferredOutpostArn *string `type:"string"` + // The replication group to which this cluster belongs. If this field is empty, // the cluster is not associated with any replication group. ReplicationGroupId *string `type:"string"` @@ -7163,6 +8051,12 @@ func (s *CacheCluster) SetPreferredMaintenanceWindow(v string) *CacheCluster { return s } +// SetPreferredOutpostArn sets the PreferredOutpostArn field's value. +func (s *CacheCluster) SetPreferredOutpostArn(v string) *CacheCluster { + s.PreferredOutpostArn = &v + return s +} + // SetReplicationGroupId sets the ReplicationGroupId field's value. func (s *CacheCluster) SetReplicationGroupId(v string) *CacheCluster { s.ReplicationGroupId = &v @@ -7312,6 +8206,9 @@ type CacheNode struct { // The Availability Zone where this node was created and now resides. CustomerAvailabilityZone *string `type:"string"` + // The customer outpost ARN of the cache node. + CustomerOutpostArn *string `type:"string"` + // The hostname for connecting to this cache node. Endpoint *Endpoint `type:"structure"` @@ -7357,6 +8254,12 @@ func (s *CacheNode) SetCustomerAvailabilityZone(v string) *CacheNode { return s } +// SetCustomerOutpostArn sets the CustomerOutpostArn field's value. +func (s *CacheNode) SetCustomerOutpostArn(v string) *CacheNode { + s.CustomerOutpostArn = &v + return s +} + // SetEndpoint sets the Endpoint field's value. func (s *CacheNode) SetEndpoint(v *Endpoint) *CacheNode { s.Endpoint = v @@ -7744,7 +8647,7 @@ func (s *CacheParameterGroupStatus) SetParameterApplyStatus(v string) *CachePara type CacheSecurityGroup struct { _ struct{} `type:"structure"` - // The ARN (Amazon Resource Name) of the cache security group. + // The ARN of the cache security group, ARN *string `type:"string"` // The name of the cache security group. @@ -8007,6 +8910,9 @@ type ConfigureShard struct { // primary node. If this member of ReplicaConfiguration is omitted, ElastiCache // for Redis selects the availability zone for each of the replicas. PreferredAvailabilityZones []*string `locationNameList:"PreferredAvailabilityZone" type:"list"` + + // The outpost ARNs in which the cache cluster is created. + PreferredOutpostArns []*string `locationNameList:"PreferredOutpostArn" type:"list"` } // String returns the string representation @@ -8056,6 +8962,12 @@ func (s *ConfigureShard) SetPreferredAvailabilityZones(v []*string) *ConfigureSh return s } +// SetPreferredOutpostArns sets the PreferredOutpostArns field's value. +func (s *ConfigureShard) SetPreferredOutpostArns(v []*string) *ConfigureShard { + s.PreferredOutpostArns = v + return s +} + // Represents the input of a CopySnapshotMessage operation. type CopySnapshotInput struct { _ struct{} `type:"structure"` @@ -8301,6 +9213,10 @@ type CreateCacheClusterInput struct { // (http://aws.amazon.com/contact-us/elasticache-node-limit-request/). NumCacheNodes *int64 `type:"integer"` + // Specifies whether the nodes in the cluster are created in a single outpost + // or across multiple outposts. + OutpostMode *string `type:"string" enum:"OutpostMode"` + // The port number on which each of the cache nodes accepts connections. Port *int64 `type:"integer"` @@ -8358,6 +9274,12 @@ type CreateCacheClusterInput struct { // Example: sun:23:00-mon:01:30 PreferredMaintenanceWindow *string `type:"string"` + // The outpost ARN in which the cache cluster is created. + PreferredOutpostArn *string `type:"string"` + + // The outpost ARNs in which the cache cluster is created. + PreferredOutpostArns []*string `locationNameList:"PreferredOutpostArn" type:"list"` + // The ID of the replication group to which this cluster should belong. If this // parameter is specified, the cluster is added to the specified replication // group as a read replica; otherwise, the cluster is a standalone primary that @@ -8512,6 +9434,12 @@ func (s *CreateCacheClusterInput) SetNumCacheNodes(v int64) *CreateCacheClusterI return s } +// SetOutpostMode sets the OutpostMode field's value. +func (s *CreateCacheClusterInput) SetOutpostMode(v string) *CreateCacheClusterInput { + s.OutpostMode = &v + return s +} + // SetPort sets the Port field's value. func (s *CreateCacheClusterInput) SetPort(v int64) *CreateCacheClusterInput { s.Port = &v @@ -8536,6 +9464,18 @@ func (s *CreateCacheClusterInput) SetPreferredMaintenanceWindow(v string) *Creat return s } +// SetPreferredOutpostArn sets the PreferredOutpostArn field's value. +func (s *CreateCacheClusterInput) SetPreferredOutpostArn(v string) *CreateCacheClusterInput { + s.PreferredOutpostArn = &v + return s +} + +// SetPreferredOutpostArns sets the PreferredOutpostArns field's value. +func (s *CreateCacheClusterInput) SetPreferredOutpostArns(v []*string) *CreateCacheClusterInput { + s.PreferredOutpostArns = v + return s +} + // SetReplicationGroupId sets the ReplicationGroupId field's value. func (s *CreateCacheClusterInput) SetReplicationGroupId(v string) *CreateCacheClusterInput { s.ReplicationGroupId = &v @@ -8887,9 +9827,16 @@ type CreateGlobalReplicationGroupInput struct { // Provides details of the Global Datastore GlobalReplicationGroupDescription *string `type:"string"` - // The suffix name of a Global Datastore. The suffix guarantees uniqueness of + // The suffix name of a Global Datastore. Amazon ElastiCache automatically applies + // a prefix to the Global Datastore ID when it is created. Each AWS Region has + // its own prefix. For instance, a Global Datastore ID created in the US-West-1 + // region will begin with "dsdfu" along with the suffix name you provide. The + // suffix, combined with the auto-generated prefix, guarantees uniqueness of // the Global Datastore name across multiple regions. // + // For a full list of AWS Regions and their respective Global Datastore iD prefixes, + // see Using the AWS CLI with Global Datastores (http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Redis-Global-Clusters-CLI.html). + // // GlobalReplicationGroupIdSuffix is a required field GlobalReplicationGroupIdSuffix *string `type:"string" required:"true"` @@ -9293,6 +10240,9 @@ type CreateReplicationGroupInput struct { // For HIPAA compliance, you must specify TransitEncryptionEnabled as true, // an AuthToken, and a CacheSubnetGroup. TransitEncryptionEnabled *bool `type:"boolean"` + + // The list of user groups to associate with the replication group. + UserGroupIds []*string `min:"1" type:"list"` } // String returns the string representation @@ -9314,6 +10264,9 @@ func (s *CreateReplicationGroupInput) Validate() error { if s.ReplicationGroupId == nil { invalidParams.Add(request.NewErrParamRequired("ReplicationGroupId")) } + if s.UserGroupIds != nil && len(s.UserGroupIds) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserGroupIds", 1)) + } if s.NodeGroupConfiguration != nil { for i, v := range s.NodeGroupConfiguration { if v == nil { @@ -9517,6 +10470,12 @@ func (s *CreateReplicationGroupInput) SetTransitEncryptionEnabled(v bool) *Creat return s } +// SetUserGroupIds sets the UserGroupIds field's value. +func (s *CreateReplicationGroupInput) SetUserGroupIds(v []*string) *CreateReplicationGroupInput { + s.UserGroupIds = v + return s +} + type CreateReplicationGroupOutput struct { _ struct{} `type:"structure"` @@ -9632,47 +10591,382 @@ func (s *CreateSnapshotOutput) SetSnapshot(v *Snapshot) *CreateSnapshotOutput { return s } -// The endpoint from which data should be migrated. -type CustomerNodeEndpoint struct { +type CreateUserGroupInput struct { _ struct{} `type:"structure"` - // The address of the node endpoint - Address *string `type:"string"` + // Must be Redis. + // + // Engine is a required field + Engine *string `type:"string" required:"true"` - // The port of the node endpoint - Port *int64 `type:"integer"` + // The ID of the user group. + // + // UserGroupId is a required field + UserGroupId *string `type:"string" required:"true"` + + // The list of user IDs that belong to the user group. + UserIds []*string `min:"1" type:"list"` } // String returns the string representation -func (s CustomerNodeEndpoint) String() string { +func (s CreateUserGroupInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s CustomerNodeEndpoint) GoString() string { +func (s CreateUserGroupInput) GoString() string { return s.String() } -// SetAddress sets the Address field's value. -func (s *CustomerNodeEndpoint) SetAddress(v string) *CustomerNodeEndpoint { - s.Address = &v +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateUserGroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateUserGroupInput"} + if s.Engine == nil { + invalidParams.Add(request.NewErrParamRequired("Engine")) + } + if s.UserGroupId == nil { + invalidParams.Add(request.NewErrParamRequired("UserGroupId")) + } + if s.UserIds != nil && len(s.UserIds) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserIds", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEngine sets the Engine field's value. +func (s *CreateUserGroupInput) SetEngine(v string) *CreateUserGroupInput { + s.Engine = &v return s } -// SetPort sets the Port field's value. -func (s *CustomerNodeEndpoint) SetPort(v int64) *CustomerNodeEndpoint { - s.Port = &v +// SetUserGroupId sets the UserGroupId field's value. +func (s *CreateUserGroupInput) SetUserGroupId(v string) *CreateUserGroupInput { + s.UserGroupId = &v return s } -type DecreaseNodeGroupsInGlobalReplicationGroupInput struct { +// SetUserIds sets the UserIds field's value. +func (s *CreateUserGroupInput) SetUserIds(v []*string) *CreateUserGroupInput { + s.UserIds = v + return s +} + +type CreateUserGroupOutput struct { _ struct{} `type:"structure"` - // Indicates that the shard reconfiguration process begins immediately. At present, - // the only permitted value for this parameter is true. - // - // ApplyImmediately is a required field - ApplyImmediately *bool `type:"boolean" required:"true"` + // The Amazon Resource Name (ARN) of the user group. + ARN *string `type:"string"` + + // Must be Redis. + Engine *string `type:"string"` + + // A list of updates being applied to the user groups. + PendingChanges *UserGroupPendingChanges `type:"structure"` + + // A list of replication groups that the user group can access. + ReplicationGroups []*string `type:"list"` + + // Indicates user group status. Can be "creating", "active", "modifying", "deleting". + Status *string `type:"string"` + + // The ID of the user group. + UserGroupId *string `type:"string"` + + // The list of user IDs that belong to the user group. + UserIds []*string `type:"list"` +} + +// String returns the string representation +func (s CreateUserGroupOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateUserGroupOutput) GoString() string { + return s.String() +} + +// SetARN sets the ARN field's value. +func (s *CreateUserGroupOutput) SetARN(v string) *CreateUserGroupOutput { + s.ARN = &v + return s +} + +// SetEngine sets the Engine field's value. +func (s *CreateUserGroupOutput) SetEngine(v string) *CreateUserGroupOutput { + s.Engine = &v + return s +} + +// SetPendingChanges sets the PendingChanges field's value. +func (s *CreateUserGroupOutput) SetPendingChanges(v *UserGroupPendingChanges) *CreateUserGroupOutput { + s.PendingChanges = v + return s +} + +// SetReplicationGroups sets the ReplicationGroups field's value. +func (s *CreateUserGroupOutput) SetReplicationGroups(v []*string) *CreateUserGroupOutput { + s.ReplicationGroups = v + return s +} + +// SetStatus sets the Status field's value. +func (s *CreateUserGroupOutput) SetStatus(v string) *CreateUserGroupOutput { + s.Status = &v + return s +} + +// SetUserGroupId sets the UserGroupId field's value. +func (s *CreateUserGroupOutput) SetUserGroupId(v string) *CreateUserGroupOutput { + s.UserGroupId = &v + return s +} + +// SetUserIds sets the UserIds field's value. +func (s *CreateUserGroupOutput) SetUserIds(v []*string) *CreateUserGroupOutput { + s.UserIds = v + return s +} + +type CreateUserInput struct { + _ struct{} `type:"structure"` + + // Access permissions string used for this user account. + // + // AccessString is a required field + AccessString *string `type:"string" required:"true"` + + // Must be Redis. + // + // Engine is a required field + Engine *string `type:"string" required:"true"` + + // Indicates a password is not required for this user account. + NoPasswordRequired *bool `type:"boolean"` + + // Passwords used for this user account. You can create up to two passwords + // for each user. + Passwords []*string `min:"1" type:"list"` + + // The ID of the user. + // + // UserId is a required field + UserId *string `min:"1" type:"string" required:"true"` + + // The username of the user. + // + // UserName is a required field + UserName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateUserInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateUserInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateUserInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateUserInput"} + if s.AccessString == nil { + invalidParams.Add(request.NewErrParamRequired("AccessString")) + } + if s.Engine == nil { + invalidParams.Add(request.NewErrParamRequired("Engine")) + } + if s.Passwords != nil && len(s.Passwords) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Passwords", 1)) + } + if s.UserId == nil { + invalidParams.Add(request.NewErrParamRequired("UserId")) + } + if s.UserId != nil && len(*s.UserId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserId", 1)) + } + if s.UserName == nil { + invalidParams.Add(request.NewErrParamRequired("UserName")) + } + if s.UserName != nil && len(*s.UserName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccessString sets the AccessString field's value. +func (s *CreateUserInput) SetAccessString(v string) *CreateUserInput { + s.AccessString = &v + return s +} + +// SetEngine sets the Engine field's value. +func (s *CreateUserInput) SetEngine(v string) *CreateUserInput { + s.Engine = &v + return s +} + +// SetNoPasswordRequired sets the NoPasswordRequired field's value. +func (s *CreateUserInput) SetNoPasswordRequired(v bool) *CreateUserInput { + s.NoPasswordRequired = &v + return s +} + +// SetPasswords sets the Passwords field's value. +func (s *CreateUserInput) SetPasswords(v []*string) *CreateUserInput { + s.Passwords = v + return s +} + +// SetUserId sets the UserId field's value. +func (s *CreateUserInput) SetUserId(v string) *CreateUserInput { + s.UserId = &v + return s +} + +// SetUserName sets the UserName field's value. +func (s *CreateUserInput) SetUserName(v string) *CreateUserInput { + s.UserName = &v + return s +} + +type CreateUserOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the user account. + ARN *string `type:"string"` + + // Access permissions string used for this user account. + AccessString *string `type:"string"` + + // Denotes whether the user requires a password to authenticate. + Authentication *Authentication `type:"structure"` + + // Must be Redis. + Engine *string `type:"string"` + + // Indicates the user status. Can be "active", "modifying" or "deleting". + Status *string `type:"string"` + + // Returns a list of the user group IDs the user belongs to. + UserGroupIds []*string `type:"list"` + + // The ID of the user. + UserId *string `type:"string"` + + // The username of the user. + UserName *string `type:"string"` +} + +// String returns the string representation +func (s CreateUserOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateUserOutput) GoString() string { + return s.String() +} + +// SetARN sets the ARN field's value. +func (s *CreateUserOutput) SetARN(v string) *CreateUserOutput { + s.ARN = &v + return s +} + +// SetAccessString sets the AccessString field's value. +func (s *CreateUserOutput) SetAccessString(v string) *CreateUserOutput { + s.AccessString = &v + return s +} + +// SetAuthentication sets the Authentication field's value. +func (s *CreateUserOutput) SetAuthentication(v *Authentication) *CreateUserOutput { + s.Authentication = v + return s +} + +// SetEngine sets the Engine field's value. +func (s *CreateUserOutput) SetEngine(v string) *CreateUserOutput { + s.Engine = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *CreateUserOutput) SetStatus(v string) *CreateUserOutput { + s.Status = &v + return s +} + +// SetUserGroupIds sets the UserGroupIds field's value. +func (s *CreateUserOutput) SetUserGroupIds(v []*string) *CreateUserOutput { + s.UserGroupIds = v + return s +} + +// SetUserId sets the UserId field's value. +func (s *CreateUserOutput) SetUserId(v string) *CreateUserOutput { + s.UserId = &v + return s +} + +// SetUserName sets the UserName field's value. +func (s *CreateUserOutput) SetUserName(v string) *CreateUserOutput { + s.UserName = &v + return s +} + +// The endpoint from which data should be migrated. +type CustomerNodeEndpoint struct { + _ struct{} `type:"structure"` + + // The address of the node endpoint + Address *string `type:"string"` + + // The port of the node endpoint + Port *int64 `type:"integer"` +} + +// String returns the string representation +func (s CustomerNodeEndpoint) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CustomerNodeEndpoint) GoString() string { + return s.String() +} + +// SetAddress sets the Address field's value. +func (s *CustomerNodeEndpoint) SetAddress(v string) *CustomerNodeEndpoint { + s.Address = &v + return s +} + +// SetPort sets the Port field's value. +func (s *CustomerNodeEndpoint) SetPort(v int64) *CustomerNodeEndpoint { + s.Port = &v + return s +} + +type DecreaseNodeGroupsInGlobalReplicationGroupInput struct { + _ struct{} `type:"structure"` + + // Indicates that the shard reconfiguration process begins immediately. At present, + // the only permitted value for this parameter is true. + // + // ApplyImmediately is a required field + ApplyImmediately *bool `type:"boolean" required:"true"` // If the value of NodeGroupCount is less than the current number of node groups // (shards), then either NodeGroupsToRemove or NodeGroupsToRetain is required. @@ -10280,72 +11574,252 @@ func (s *DeleteReplicationGroupInput) Validate() error { return nil } -// SetFinalSnapshotIdentifier sets the FinalSnapshotIdentifier field's value. -func (s *DeleteReplicationGroupInput) SetFinalSnapshotIdentifier(v string) *DeleteReplicationGroupInput { - s.FinalSnapshotIdentifier = &v - return s +// SetFinalSnapshotIdentifier sets the FinalSnapshotIdentifier field's value. +func (s *DeleteReplicationGroupInput) SetFinalSnapshotIdentifier(v string) *DeleteReplicationGroupInput { + s.FinalSnapshotIdentifier = &v + return s +} + +// SetReplicationGroupId sets the ReplicationGroupId field's value. +func (s *DeleteReplicationGroupInput) SetReplicationGroupId(v string) *DeleteReplicationGroupInput { + s.ReplicationGroupId = &v + return s +} + +// SetRetainPrimaryCluster sets the RetainPrimaryCluster field's value. +func (s *DeleteReplicationGroupInput) SetRetainPrimaryCluster(v bool) *DeleteReplicationGroupInput { + s.RetainPrimaryCluster = &v + return s +} + +type DeleteReplicationGroupOutput struct { + _ struct{} `type:"structure"` + + // Contains all of the attributes of a specific Redis replication group. + ReplicationGroup *ReplicationGroup `type:"structure"` +} + +// String returns the string representation +func (s DeleteReplicationGroupOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteReplicationGroupOutput) GoString() string { + return s.String() +} + +// SetReplicationGroup sets the ReplicationGroup field's value. +func (s *DeleteReplicationGroupOutput) SetReplicationGroup(v *ReplicationGroup) *DeleteReplicationGroupOutput { + s.ReplicationGroup = v + return s +} + +// Represents the input of a DeleteSnapshot operation. +type DeleteSnapshotInput struct { + _ struct{} `type:"structure"` + + // The name of the snapshot to be deleted. + // + // SnapshotName is a required field + SnapshotName *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteSnapshotInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteSnapshotInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteSnapshotInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteSnapshotInput"} + if s.SnapshotName == nil { + invalidParams.Add(request.NewErrParamRequired("SnapshotName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetSnapshotName sets the SnapshotName field's value. +func (s *DeleteSnapshotInput) SetSnapshotName(v string) *DeleteSnapshotInput { + s.SnapshotName = &v + return s +} + +type DeleteSnapshotOutput struct { + _ struct{} `type:"structure"` + + // Represents a copy of an entire Redis cluster as of the time when the snapshot + // was taken. + Snapshot *Snapshot `type:"structure"` +} + +// String returns the string representation +func (s DeleteSnapshotOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteSnapshotOutput) GoString() string { + return s.String() +} + +// SetSnapshot sets the Snapshot field's value. +func (s *DeleteSnapshotOutput) SetSnapshot(v *Snapshot) *DeleteSnapshotOutput { + s.Snapshot = v + return s +} + +type DeleteUserGroupInput struct { + _ struct{} `type:"structure"` + + // The ID of the user group. + // + // UserGroupId is a required field + UserGroupId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteUserGroupInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteUserGroupInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteUserGroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteUserGroupInput"} + if s.UserGroupId == nil { + invalidParams.Add(request.NewErrParamRequired("UserGroupId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetUserGroupId sets the UserGroupId field's value. +func (s *DeleteUserGroupInput) SetUserGroupId(v string) *DeleteUserGroupInput { + s.UserGroupId = &v + return s +} + +type DeleteUserGroupOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the user group. + ARN *string `type:"string"` + + // Must be Redis. + Engine *string `type:"string"` + + // A list of updates being applied to the user groups. + PendingChanges *UserGroupPendingChanges `type:"structure"` + + // A list of replication groups that the user group can access. + ReplicationGroups []*string `type:"list"` + + // Indicates user group status. Can be "creating", "active", "modifying", "deleting". + Status *string `type:"string"` + + // The ID of the user group. + UserGroupId *string `type:"string"` + + // The list of user IDs that belong to the user group. + UserIds []*string `type:"list"` +} + +// String returns the string representation +func (s DeleteUserGroupOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteUserGroupOutput) GoString() string { + return s.String() } -// SetReplicationGroupId sets the ReplicationGroupId field's value. -func (s *DeleteReplicationGroupInput) SetReplicationGroupId(v string) *DeleteReplicationGroupInput { - s.ReplicationGroupId = &v +// SetARN sets the ARN field's value. +func (s *DeleteUserGroupOutput) SetARN(v string) *DeleteUserGroupOutput { + s.ARN = &v return s } -// SetRetainPrimaryCluster sets the RetainPrimaryCluster field's value. -func (s *DeleteReplicationGroupInput) SetRetainPrimaryCluster(v bool) *DeleteReplicationGroupInput { - s.RetainPrimaryCluster = &v +// SetEngine sets the Engine field's value. +func (s *DeleteUserGroupOutput) SetEngine(v string) *DeleteUserGroupOutput { + s.Engine = &v return s } -type DeleteReplicationGroupOutput struct { - _ struct{} `type:"structure"` +// SetPendingChanges sets the PendingChanges field's value. +func (s *DeleteUserGroupOutput) SetPendingChanges(v *UserGroupPendingChanges) *DeleteUserGroupOutput { + s.PendingChanges = v + return s +} - // Contains all of the attributes of a specific Redis replication group. - ReplicationGroup *ReplicationGroup `type:"structure"` +// SetReplicationGroups sets the ReplicationGroups field's value. +func (s *DeleteUserGroupOutput) SetReplicationGroups(v []*string) *DeleteUserGroupOutput { + s.ReplicationGroups = v + return s } -// String returns the string representation -func (s DeleteReplicationGroupOutput) String() string { - return awsutil.Prettify(s) +// SetStatus sets the Status field's value. +func (s *DeleteUserGroupOutput) SetStatus(v string) *DeleteUserGroupOutput { + s.Status = &v + return s } -// GoString returns the string representation -func (s DeleteReplicationGroupOutput) GoString() string { - return s.String() +// SetUserGroupId sets the UserGroupId field's value. +func (s *DeleteUserGroupOutput) SetUserGroupId(v string) *DeleteUserGroupOutput { + s.UserGroupId = &v + return s } -// SetReplicationGroup sets the ReplicationGroup field's value. -func (s *DeleteReplicationGroupOutput) SetReplicationGroup(v *ReplicationGroup) *DeleteReplicationGroupOutput { - s.ReplicationGroup = v +// SetUserIds sets the UserIds field's value. +func (s *DeleteUserGroupOutput) SetUserIds(v []*string) *DeleteUserGroupOutput { + s.UserIds = v return s } -// Represents the input of a DeleteSnapshot operation. -type DeleteSnapshotInput struct { +type DeleteUserInput struct { _ struct{} `type:"structure"` - // The name of the snapshot to be deleted. + // The ID of the user. // - // SnapshotName is a required field - SnapshotName *string `type:"string" required:"true"` + // UserId is a required field + UserId *string `min:"1" type:"string" required:"true"` } // String returns the string representation -func (s DeleteSnapshotInput) String() string { +func (s DeleteUserInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DeleteSnapshotInput) GoString() string { +func (s DeleteUserInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteSnapshotInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteSnapshotInput"} - if s.SnapshotName == nil { - invalidParams.Add(request.NewErrParamRequired("SnapshotName")) +func (s *DeleteUserInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteUserInput"} + if s.UserId == nil { + invalidParams.Add(request.NewErrParamRequired("UserId")) + } + if s.UserId != nil && len(*s.UserId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserId", 1)) } if invalidParams.Len() > 0 { @@ -10354,33 +11828,95 @@ func (s *DeleteSnapshotInput) Validate() error { return nil } -// SetSnapshotName sets the SnapshotName field's value. -func (s *DeleteSnapshotInput) SetSnapshotName(v string) *DeleteSnapshotInput { - s.SnapshotName = &v +// SetUserId sets the UserId field's value. +func (s *DeleteUserInput) SetUserId(v string) *DeleteUserInput { + s.UserId = &v return s } -type DeleteSnapshotOutput struct { +type DeleteUserOutput struct { _ struct{} `type:"structure"` - // Represents a copy of an entire Redis cluster as of the time when the snapshot - // was taken. - Snapshot *Snapshot `type:"structure"` + // The Amazon Resource Name (ARN) of the user account. + ARN *string `type:"string"` + + // Access permissions string used for this user account. + AccessString *string `type:"string"` + + // Denotes whether the user requires a password to authenticate. + Authentication *Authentication `type:"structure"` + + // Must be Redis. + Engine *string `type:"string"` + + // Indicates the user status. Can be "active", "modifying" or "deleting". + Status *string `type:"string"` + + // Returns a list of the user group IDs the user belongs to. + UserGroupIds []*string `type:"list"` + + // The ID of the user. + UserId *string `type:"string"` + + // The username of the user. + UserName *string `type:"string"` } // String returns the string representation -func (s DeleteSnapshotOutput) String() string { +func (s DeleteUserOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DeleteSnapshotOutput) GoString() string { +func (s DeleteUserOutput) GoString() string { return s.String() } -// SetSnapshot sets the Snapshot field's value. -func (s *DeleteSnapshotOutput) SetSnapshot(v *Snapshot) *DeleteSnapshotOutput { - s.Snapshot = v +// SetARN sets the ARN field's value. +func (s *DeleteUserOutput) SetARN(v string) *DeleteUserOutput { + s.ARN = &v + return s +} + +// SetAccessString sets the AccessString field's value. +func (s *DeleteUserOutput) SetAccessString(v string) *DeleteUserOutput { + s.AccessString = &v + return s +} + +// SetAuthentication sets the Authentication field's value. +func (s *DeleteUserOutput) SetAuthentication(v *Authentication) *DeleteUserOutput { + s.Authentication = v + return s +} + +// SetEngine sets the Engine field's value. +func (s *DeleteUserOutput) SetEngine(v string) *DeleteUserOutput { + s.Engine = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *DeleteUserOutput) SetStatus(v string) *DeleteUserOutput { + s.Status = &v + return s +} + +// SetUserGroupIds sets the UserGroupIds field's value. +func (s *DeleteUserOutput) SetUserGroupIds(v []*string) *DeleteUserOutput { + s.UserGroupIds = v + return s +} + +// SetUserId sets the UserId field's value. +func (s *DeleteUserOutput) SetUserId(v string) *DeleteUserOutput { + s.UserId = &v + return s +} + +// SetUserName sets the UserName field's value. +func (s *DeleteUserOutput) SetUserName(v string) *DeleteUserOutput { + s.UserName = &v return s } @@ -12045,37 +13581,240 @@ func (s *DescribeUpdateActionsInput) SetUpdateActionStatus(v []*string) *Describ return s } -type DescribeUpdateActionsOutput struct { +type DescribeUpdateActionsOutput struct { + _ struct{} `type:"structure"` + + // An optional marker returned from a prior request. Use this marker for pagination + // of results from this operation. If this parameter is specified, the response + // includes only records beyond the marker, up to the value specified by MaxRecords. + Marker *string `type:"string"` + + // Returns a list of update actions + UpdateActions []*UpdateAction `locationNameList:"UpdateAction" type:"list"` +} + +// String returns the string representation +func (s DescribeUpdateActionsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeUpdateActionsOutput) GoString() string { + return s.String() +} + +// SetMarker sets the Marker field's value. +func (s *DescribeUpdateActionsOutput) SetMarker(v string) *DescribeUpdateActionsOutput { + s.Marker = &v + return s +} + +// SetUpdateActions sets the UpdateActions field's value. +func (s *DescribeUpdateActionsOutput) SetUpdateActions(v []*UpdateAction) *DescribeUpdateActionsOutput { + s.UpdateActions = v + return s +} + +type DescribeUserGroupsInput struct { + _ struct{} `type:"structure"` + + // An optional marker returned from a prior request. Use this marker for pagination + // of results from this operation. If this parameter is specified, the response + // includes only records beyond the marker, up to the value specified by MaxRecords. + // > + Marker *string `type:"string"` + + // The maximum number of records to include in the response. If more records + // exist than the specified MaxRecords value, a marker is included in the response + // so that the remaining results can be retrieved. + MaxRecords *int64 `type:"integer"` + + // The ID of the user group. + UserGroupId *string `type:"string"` +} + +// String returns the string representation +func (s DescribeUserGroupsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeUserGroupsInput) GoString() string { + return s.String() +} + +// SetMarker sets the Marker field's value. +func (s *DescribeUserGroupsInput) SetMarker(v string) *DescribeUserGroupsInput { + s.Marker = &v + return s +} + +// SetMaxRecords sets the MaxRecords field's value. +func (s *DescribeUserGroupsInput) SetMaxRecords(v int64) *DescribeUserGroupsInput { + s.MaxRecords = &v + return s +} + +// SetUserGroupId sets the UserGroupId field's value. +func (s *DescribeUserGroupsInput) SetUserGroupId(v string) *DescribeUserGroupsInput { + s.UserGroupId = &v + return s +} + +type DescribeUserGroupsOutput struct { + _ struct{} `type:"structure"` + + // An optional marker returned from a prior request. Use this marker for pagination + // of results from this operation. If this parameter is specified, the response + // includes only records beyond the marker, up to the value specified by MaxRecords. + // > + Marker *string `type:"string"` + + // Returns a list of user groups. + UserGroups []*UserGroup `type:"list"` +} + +// String returns the string representation +func (s DescribeUserGroupsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeUserGroupsOutput) GoString() string { + return s.String() +} + +// SetMarker sets the Marker field's value. +func (s *DescribeUserGroupsOutput) SetMarker(v string) *DescribeUserGroupsOutput { + s.Marker = &v + return s +} + +// SetUserGroups sets the UserGroups field's value. +func (s *DescribeUserGroupsOutput) SetUserGroups(v []*UserGroup) *DescribeUserGroupsOutput { + s.UserGroups = v + return s +} + +type DescribeUsersInput struct { + _ struct{} `type:"structure"` + + // The Redis engine. + Engine *string `type:"string"` + + // Filter to determine the list of User IDs to return. + Filters []*Filter `type:"list"` + + // An optional marker returned from a prior request. Use this marker for pagination + // of results from this operation. If this parameter is specified, the response + // includes only records beyond the marker, up to the value specified by MaxRecords. + // > + Marker *string `type:"string"` + + // The maximum number of records to include in the response. If more records + // exist than the specified MaxRecords value, a marker is included in the response + // so that the remaining results can be retrieved. + MaxRecords *int64 `type:"integer"` + + // The ID of the user. + UserId *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s DescribeUsersInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeUsersInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeUsersInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeUsersInput"} + if s.UserId != nil && len(*s.UserId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserId", 1)) + } + if s.Filters != nil { + for i, v := range s.Filters { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEngine sets the Engine field's value. +func (s *DescribeUsersInput) SetEngine(v string) *DescribeUsersInput { + s.Engine = &v + return s +} + +// SetFilters sets the Filters field's value. +func (s *DescribeUsersInput) SetFilters(v []*Filter) *DescribeUsersInput { + s.Filters = v + return s +} + +// SetMarker sets the Marker field's value. +func (s *DescribeUsersInput) SetMarker(v string) *DescribeUsersInput { + s.Marker = &v + return s +} + +// SetMaxRecords sets the MaxRecords field's value. +func (s *DescribeUsersInput) SetMaxRecords(v int64) *DescribeUsersInput { + s.MaxRecords = &v + return s +} + +// SetUserId sets the UserId field's value. +func (s *DescribeUsersInput) SetUserId(v string) *DescribeUsersInput { + s.UserId = &v + return s +} + +type DescribeUsersOutput struct { _ struct{} `type:"structure"` // An optional marker returned from a prior request. Use this marker for pagination // of results from this operation. If this parameter is specified, the response // includes only records beyond the marker, up to the value specified by MaxRecords. + // > Marker *string `type:"string"` - // Returns a list of update actions - UpdateActions []*UpdateAction `locationNameList:"UpdateAction" type:"list"` + // A list of users. + Users []*User `type:"list"` } // String returns the string representation -func (s DescribeUpdateActionsOutput) String() string { +func (s DescribeUsersOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DescribeUpdateActionsOutput) GoString() string { +func (s DescribeUsersOutput) GoString() string { return s.String() } // SetMarker sets the Marker field's value. -func (s *DescribeUpdateActionsOutput) SetMarker(v string) *DescribeUpdateActionsOutput { +func (s *DescribeUsersOutput) SetMarker(v string) *DescribeUsersOutput { s.Marker = &v return s } -// SetUpdateActions sets the UpdateActions field's value. -func (s *DescribeUpdateActionsOutput) SetUpdateActions(v []*UpdateAction) *DescribeUpdateActionsOutput { - s.UpdateActions = v +// SetUsers sets the Users field's value. +func (s *DescribeUsersOutput) SetUsers(v []*User) *DescribeUsersOutput { + s.Users = v return s } @@ -12456,6 +14195,62 @@ func (s *FailoverGlobalReplicationGroupOutput) SetGlobalReplicationGroup(v *Glob return s } +// Used to streamline results of a search based on the property being filtered. +type Filter struct { + _ struct{} `type:"structure"` + + // The property being filtered. For example, UserId. + // + // Name is a required field + Name *string `type:"string" required:"true"` + + // The property values to filter on. For example, "user-123". + // + // Values is a required field + Values []*string `min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s Filter) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Filter) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Filter) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "Filter"} + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.Values == nil { + invalidParams.Add(request.NewErrParamRequired("Values")) + } + if s.Values != nil && len(s.Values) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Values", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetName sets the Name field's value. +func (s *Filter) SetName(v string) *Filter { + s.Name = &v + return s +} + +// SetValues sets the Values field's value. +func (s *Filter) SetValues(v []*string) *Filter { + s.Values = v + return s +} + // Indicates the slot configuration and global identifier for a slice group. type GlobalNodeGroup struct { _ struct{} `type:"structure"` @@ -13884,6 +15679,9 @@ type ModifyReplicationGroupInput struct { // are read replicas. PrimaryClusterId *string `type:"string"` + // Removes the user groups that can access this replication group. + RemoveUserGroups *bool `type:"boolean"` + // A description for the replication group. Maximum length is 255 characters. ReplicationGroupDescription *string `type:"string"` @@ -13921,6 +15719,13 @@ type ModifyReplicationGroupInput struct { // group. This parameter cannot be set for Redis (cluster mode enabled) replication // groups. SnapshottingClusterId *string `type:"string"` + + // A list of user group IDs. + UserGroupIdsToAdd []*string `type:"list"` + + // A list of users groups to remove, meaning the users in the group no longer + // can access thereplication group. + UserGroupIdsToRemove []*string `type:"list"` } // String returns the string representation @@ -14036,6 +15841,12 @@ func (s *ModifyReplicationGroupInput) SetPrimaryClusterId(v string) *ModifyRepli return s } +// SetRemoveUserGroups sets the RemoveUserGroups field's value. +func (s *ModifyReplicationGroupInput) SetRemoveUserGroups(v bool) *ModifyReplicationGroupInput { + s.RemoveUserGroups = &v + return s +} + // SetReplicationGroupDescription sets the ReplicationGroupDescription field's value. func (s *ModifyReplicationGroupInput) SetReplicationGroupDescription(v string) *ModifyReplicationGroupInput { s.ReplicationGroupDescription = &v @@ -14072,6 +15883,18 @@ func (s *ModifyReplicationGroupInput) SetSnapshottingClusterId(v string) *Modify return s } +// SetUserGroupIdsToAdd sets the UserGroupIdsToAdd field's value. +func (s *ModifyReplicationGroupInput) SetUserGroupIdsToAdd(v []*string) *ModifyReplicationGroupInput { + s.UserGroupIdsToAdd = v + return s +} + +// SetUserGroupIdsToRemove sets the UserGroupIdsToRemove field's value. +func (s *ModifyReplicationGroupInput) SetUserGroupIdsToRemove(v []*string) *ModifyReplicationGroupInput { + s.UserGroupIdsToRemove = v + return s +} + type ModifyReplicationGroupOutput struct { _ struct{} `type:"structure"` @@ -14185,62 +16008,367 @@ func (s *ModifyReplicationGroupShardConfigurationInput) Validate() error { return nil } -// SetApplyImmediately sets the ApplyImmediately field's value. -func (s *ModifyReplicationGroupShardConfigurationInput) SetApplyImmediately(v bool) *ModifyReplicationGroupShardConfigurationInput { - s.ApplyImmediately = &v - return s +// SetApplyImmediately sets the ApplyImmediately field's value. +func (s *ModifyReplicationGroupShardConfigurationInput) SetApplyImmediately(v bool) *ModifyReplicationGroupShardConfigurationInput { + s.ApplyImmediately = &v + return s +} + +// SetNodeGroupCount sets the NodeGroupCount field's value. +func (s *ModifyReplicationGroupShardConfigurationInput) SetNodeGroupCount(v int64) *ModifyReplicationGroupShardConfigurationInput { + s.NodeGroupCount = &v + return s +} + +// SetNodeGroupsToRemove sets the NodeGroupsToRemove field's value. +func (s *ModifyReplicationGroupShardConfigurationInput) SetNodeGroupsToRemove(v []*string) *ModifyReplicationGroupShardConfigurationInput { + s.NodeGroupsToRemove = v + return s +} + +// SetNodeGroupsToRetain sets the NodeGroupsToRetain field's value. +func (s *ModifyReplicationGroupShardConfigurationInput) SetNodeGroupsToRetain(v []*string) *ModifyReplicationGroupShardConfigurationInput { + s.NodeGroupsToRetain = v + return s +} + +// SetReplicationGroupId sets the ReplicationGroupId field's value. +func (s *ModifyReplicationGroupShardConfigurationInput) SetReplicationGroupId(v string) *ModifyReplicationGroupShardConfigurationInput { + s.ReplicationGroupId = &v + return s +} + +// SetReshardingConfiguration sets the ReshardingConfiguration field's value. +func (s *ModifyReplicationGroupShardConfigurationInput) SetReshardingConfiguration(v []*ReshardingConfiguration) *ModifyReplicationGroupShardConfigurationInput { + s.ReshardingConfiguration = v + return s +} + +type ModifyReplicationGroupShardConfigurationOutput struct { + _ struct{} `type:"structure"` + + // Contains all of the attributes of a specific Redis replication group. + ReplicationGroup *ReplicationGroup `type:"structure"` +} + +// String returns the string representation +func (s ModifyReplicationGroupShardConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ModifyReplicationGroupShardConfigurationOutput) GoString() string { + return s.String() +} + +// SetReplicationGroup sets the ReplicationGroup field's value. +func (s *ModifyReplicationGroupShardConfigurationOutput) SetReplicationGroup(v *ReplicationGroup) *ModifyReplicationGroupShardConfigurationOutput { + s.ReplicationGroup = v + return s +} + +type ModifyUserGroupInput struct { + _ struct{} `type:"structure"` + + // The ID of the user group. + // + // UserGroupId is a required field + UserGroupId *string `type:"string" required:"true"` + + // The list of user IDs to add to the user group. + UserIdsToAdd []*string `min:"1" type:"list"` + + // The list of user IDs to remove from the user group. + UserIdsToRemove []*string `min:"1" type:"list"` +} + +// String returns the string representation +func (s ModifyUserGroupInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ModifyUserGroupInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ModifyUserGroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ModifyUserGroupInput"} + if s.UserGroupId == nil { + invalidParams.Add(request.NewErrParamRequired("UserGroupId")) + } + if s.UserIdsToAdd != nil && len(s.UserIdsToAdd) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserIdsToAdd", 1)) + } + if s.UserIdsToRemove != nil && len(s.UserIdsToRemove) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserIdsToRemove", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetUserGroupId sets the UserGroupId field's value. +func (s *ModifyUserGroupInput) SetUserGroupId(v string) *ModifyUserGroupInput { + s.UserGroupId = &v + return s +} + +// SetUserIdsToAdd sets the UserIdsToAdd field's value. +func (s *ModifyUserGroupInput) SetUserIdsToAdd(v []*string) *ModifyUserGroupInput { + s.UserIdsToAdd = v + return s +} + +// SetUserIdsToRemove sets the UserIdsToRemove field's value. +func (s *ModifyUserGroupInput) SetUserIdsToRemove(v []*string) *ModifyUserGroupInput { + s.UserIdsToRemove = v + return s +} + +type ModifyUserGroupOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the user group. + ARN *string `type:"string"` + + // Must be Redis. + Engine *string `type:"string"` + + // A list of updates being applied to the user groups. + PendingChanges *UserGroupPendingChanges `type:"structure"` + + // A list of replication groups that the user group can access. + ReplicationGroups []*string `type:"list"` + + // Indicates user group status. Can be "creating", "active", "modifying", "deleting". + Status *string `type:"string"` + + // The ID of the user group. + UserGroupId *string `type:"string"` + + // The list of user IDs that belong to the user group. + UserIds []*string `type:"list"` +} + +// String returns the string representation +func (s ModifyUserGroupOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ModifyUserGroupOutput) GoString() string { + return s.String() +} + +// SetARN sets the ARN field's value. +func (s *ModifyUserGroupOutput) SetARN(v string) *ModifyUserGroupOutput { + s.ARN = &v + return s +} + +// SetEngine sets the Engine field's value. +func (s *ModifyUserGroupOutput) SetEngine(v string) *ModifyUserGroupOutput { + s.Engine = &v + return s +} + +// SetPendingChanges sets the PendingChanges field's value. +func (s *ModifyUserGroupOutput) SetPendingChanges(v *UserGroupPendingChanges) *ModifyUserGroupOutput { + s.PendingChanges = v + return s +} + +// SetReplicationGroups sets the ReplicationGroups field's value. +func (s *ModifyUserGroupOutput) SetReplicationGroups(v []*string) *ModifyUserGroupOutput { + s.ReplicationGroups = v + return s +} + +// SetStatus sets the Status field's value. +func (s *ModifyUserGroupOutput) SetStatus(v string) *ModifyUserGroupOutput { + s.Status = &v + return s +} + +// SetUserGroupId sets the UserGroupId field's value. +func (s *ModifyUserGroupOutput) SetUserGroupId(v string) *ModifyUserGroupOutput { + s.UserGroupId = &v + return s +} + +// SetUserIds sets the UserIds field's value. +func (s *ModifyUserGroupOutput) SetUserIds(v []*string) *ModifyUserGroupOutput { + s.UserIds = v + return s +} + +type ModifyUserInput struct { + _ struct{} `type:"structure"` + + // Access permissions string used for this user account. + AccessString *string `type:"string"` + + // Adds additional user permissions to the access string. + AppendAccessString *string `type:"string"` + + // Indicates no password is required for the user account. + NoPasswordRequired *bool `type:"boolean"` + + // The passwords belonging to the user account. You are allowed up to two. + Passwords []*string `min:"1" type:"list"` + + // The ID of the user. + // + // UserId is a required field + UserId *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s ModifyUserInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ModifyUserInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ModifyUserInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ModifyUserInput"} + if s.Passwords != nil && len(s.Passwords) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Passwords", 1)) + } + if s.UserId == nil { + invalidParams.Add(request.NewErrParamRequired("UserId")) + } + if s.UserId != nil && len(*s.UserId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccessString sets the AccessString field's value. +func (s *ModifyUserInput) SetAccessString(v string) *ModifyUserInput { + s.AccessString = &v + return s +} + +// SetAppendAccessString sets the AppendAccessString field's value. +func (s *ModifyUserInput) SetAppendAccessString(v string) *ModifyUserInput { + s.AppendAccessString = &v + return s +} + +// SetNoPasswordRequired sets the NoPasswordRequired field's value. +func (s *ModifyUserInput) SetNoPasswordRequired(v bool) *ModifyUserInput { + s.NoPasswordRequired = &v + return s +} + +// SetPasswords sets the Passwords field's value. +func (s *ModifyUserInput) SetPasswords(v []*string) *ModifyUserInput { + s.Passwords = v + return s +} + +// SetUserId sets the UserId field's value. +func (s *ModifyUserInput) SetUserId(v string) *ModifyUserInput { + s.UserId = &v + return s +} + +type ModifyUserOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the user account. + ARN *string `type:"string"` + + // Access permissions string used for this user account. + AccessString *string `type:"string"` + + // Denotes whether the user requires a password to authenticate. + Authentication *Authentication `type:"structure"` + + // Must be Redis. + Engine *string `type:"string"` + + // Indicates the user status. Can be "active", "modifying" or "deleting". + Status *string `type:"string"` + + // Returns a list of the user group IDs the user belongs to. + UserGroupIds []*string `type:"list"` + + // The ID of the user. + UserId *string `type:"string"` + + // The username of the user. + UserName *string `type:"string"` +} + +// String returns the string representation +func (s ModifyUserOutput) String() string { + return awsutil.Prettify(s) } -// SetNodeGroupCount sets the NodeGroupCount field's value. -func (s *ModifyReplicationGroupShardConfigurationInput) SetNodeGroupCount(v int64) *ModifyReplicationGroupShardConfigurationInput { - s.NodeGroupCount = &v - return s +// GoString returns the string representation +func (s ModifyUserOutput) GoString() string { + return s.String() } -// SetNodeGroupsToRemove sets the NodeGroupsToRemove field's value. -func (s *ModifyReplicationGroupShardConfigurationInput) SetNodeGroupsToRemove(v []*string) *ModifyReplicationGroupShardConfigurationInput { - s.NodeGroupsToRemove = v +// SetARN sets the ARN field's value. +func (s *ModifyUserOutput) SetARN(v string) *ModifyUserOutput { + s.ARN = &v return s } -// SetNodeGroupsToRetain sets the NodeGroupsToRetain field's value. -func (s *ModifyReplicationGroupShardConfigurationInput) SetNodeGroupsToRetain(v []*string) *ModifyReplicationGroupShardConfigurationInput { - s.NodeGroupsToRetain = v +// SetAccessString sets the AccessString field's value. +func (s *ModifyUserOutput) SetAccessString(v string) *ModifyUserOutput { + s.AccessString = &v return s } -// SetReplicationGroupId sets the ReplicationGroupId field's value. -func (s *ModifyReplicationGroupShardConfigurationInput) SetReplicationGroupId(v string) *ModifyReplicationGroupShardConfigurationInput { - s.ReplicationGroupId = &v +// SetAuthentication sets the Authentication field's value. +func (s *ModifyUserOutput) SetAuthentication(v *Authentication) *ModifyUserOutput { + s.Authentication = v return s } -// SetReshardingConfiguration sets the ReshardingConfiguration field's value. -func (s *ModifyReplicationGroupShardConfigurationInput) SetReshardingConfiguration(v []*ReshardingConfiguration) *ModifyReplicationGroupShardConfigurationInput { - s.ReshardingConfiguration = v +// SetEngine sets the Engine field's value. +func (s *ModifyUserOutput) SetEngine(v string) *ModifyUserOutput { + s.Engine = &v return s } -type ModifyReplicationGroupShardConfigurationOutput struct { - _ struct{} `type:"structure"` - - // Contains all of the attributes of a specific Redis replication group. - ReplicationGroup *ReplicationGroup `type:"structure"` +// SetStatus sets the Status field's value. +func (s *ModifyUserOutput) SetStatus(v string) *ModifyUserOutput { + s.Status = &v + return s } -// String returns the string representation -func (s ModifyReplicationGroupShardConfigurationOutput) String() string { - return awsutil.Prettify(s) +// SetUserGroupIds sets the UserGroupIds field's value. +func (s *ModifyUserOutput) SetUserGroupIds(v []*string) *ModifyUserOutput { + s.UserGroupIds = v + return s } -// GoString returns the string representation -func (s ModifyReplicationGroupShardConfigurationOutput) GoString() string { - return s.String() +// SetUserId sets the UserId field's value. +func (s *ModifyUserOutput) SetUserId(v string) *ModifyUserOutput { + s.UserId = &v + return s } -// SetReplicationGroup sets the ReplicationGroup field's value. -func (s *ModifyReplicationGroupShardConfigurationOutput) SetReplicationGroup(v *ReplicationGroup) *ModifyReplicationGroupShardConfigurationOutput { - s.ReplicationGroup = v +// SetUserName sets the UserName field's value. +func (s *ModifyUserOutput) SetUserName(v string) *ModifyUserOutput { + s.UserName = &v return s } @@ -14335,6 +16463,9 @@ type NodeGroupConfiguration struct { // launched. PrimaryAvailabilityZone *string `type:"string"` + // The output ARN of the primary node. + PrimaryOutpostArn *string `type:"string"` + // A list of Availability Zones to be used for the read replicas. The number // of Availability Zones in this list must match the value of ReplicaCount or // ReplicasPerNodeGroup if not specified. @@ -14343,6 +16474,9 @@ type NodeGroupConfiguration struct { // The number of read replica nodes in this node group (shard). ReplicaCount *int64 `type:"integer"` + // The outpost ARN of the node replicas. + ReplicaOutpostArns []*string `locationNameList:"OutpostArn" type:"list"` + // A string that specifies the keyspace for a particular node group. Keyspaces // range from 0 to 16,383. The string is in the format startkey-endkey. // @@ -14385,6 +16519,12 @@ func (s *NodeGroupConfiguration) SetPrimaryAvailabilityZone(v string) *NodeGroup return s } +// SetPrimaryOutpostArn sets the PrimaryOutpostArn field's value. +func (s *NodeGroupConfiguration) SetPrimaryOutpostArn(v string) *NodeGroupConfiguration { + s.PrimaryOutpostArn = &v + return s +} + // SetReplicaAvailabilityZones sets the ReplicaAvailabilityZones field's value. func (s *NodeGroupConfiguration) SetReplicaAvailabilityZones(v []*string) *NodeGroupConfiguration { s.ReplicaAvailabilityZones = v @@ -14397,6 +16537,12 @@ func (s *NodeGroupConfiguration) SetReplicaCount(v int64) *NodeGroupConfiguratio return s } +// SetReplicaOutpostArns sets the ReplicaOutpostArns field's value. +func (s *NodeGroupConfiguration) SetReplicaOutpostArns(v []*string) *NodeGroupConfiguration { + s.ReplicaOutpostArns = v + return s +} + // SetSlots sets the Slots field's value. func (s *NodeGroupConfiguration) SetSlots(v string) *NodeGroupConfiguration { s.Slots = &v @@ -14421,6 +16567,9 @@ type NodeGroupMember struct { // The name of the Availability Zone in which the node is located. PreferredAvailabilityZone *string `type:"string"` + // The outpost ARN of the node group member. + PreferredOutpostArn *string `type:"string"` + // The information required for client programs to connect to a node for read // operations. The read endpoint is only applicable on Redis (cluster mode disabled) // clusters. @@ -14461,6 +16610,12 @@ func (s *NodeGroupMember) SetPreferredAvailabilityZone(v string) *NodeGroupMembe return s } +// SetPreferredOutpostArn sets the PreferredOutpostArn field's value. +func (s *NodeGroupMember) SetPreferredOutpostArn(v string) *NodeGroupMember { + s.PreferredOutpostArn = &v + return s +} + // SetReadEndpoint sets the ReadEndpoint field's value. func (s *NodeGroupMember) SetReadEndpoint(v *Endpoint) *NodeGroupMember { s.ReadEndpoint = v @@ -15438,6 +17593,9 @@ type ReplicationGroup struct { // The names of all the cache clusters that are part of this replication group. MemberClusters []*string `locationNameList:"ClusterId" type:"list"` + // The outpost ARNs of the replication group's member clusters. + MemberClustersOutpostArns []*string `locationNameList:"ReplicationGroupOutpostArn" type:"list"` + // A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. // For more information, see Minimizing Downtime: Multi-AZ (http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/AutoFailover.html) MultiAZ *string `type:"string" enum:"MultiAZStatus"` @@ -15493,6 +17651,9 @@ type ReplicationGroup struct { // // Default: false TransitEncryptionEnabled *bool `type:"boolean"` + + // The list of user group IDs that have access to the replication group. + UserGroupIds []*string `type:"list"` } // String returns the string representation @@ -15577,6 +17738,12 @@ func (s *ReplicationGroup) SetMemberClusters(v []*string) *ReplicationGroup { return s } +// SetMemberClustersOutpostArns sets the MemberClustersOutpostArns field's value. +func (s *ReplicationGroup) SetMemberClustersOutpostArns(v []*string) *ReplicationGroup { + s.MemberClustersOutpostArns = v + return s +} + // SetMultiAZ sets the MultiAZ field's value. func (s *ReplicationGroup) SetMultiAZ(v string) *ReplicationGroup { s.MultiAZ = &v @@ -15631,6 +17798,12 @@ func (s *ReplicationGroup) SetTransitEncryptionEnabled(v bool) *ReplicationGroup return s } +// SetUserGroupIds sets the UserGroupIds field's value. +func (s *ReplicationGroup) SetUserGroupIds(v []*string) *ReplicationGroup { + s.UserGroupIds = v + return s +} + // The settings to be applied to the Redis replication group, either immediately // or during the next maintenance window. type ReplicationGroupPendingModifiedValues struct { @@ -15648,6 +17821,9 @@ type ReplicationGroupPendingModifiedValues struct { // The status of an online resharding operation. Resharding *ReshardingStatus `type:"structure"` + + // The user groups being modified. + UserGroups *UserGroupsUpdateStatus `type:"structure"` } // String returns the string representation @@ -15684,6 +17860,12 @@ func (s *ReplicationGroupPendingModifiedValues) SetResharding(v *ReshardingStatu return s } +// SetUserGroups sets the UserGroups field's value. +func (s *ReplicationGroupPendingModifiedValues) SetUserGroups(v *UserGroupsUpdateStatus) *ReplicationGroupPendingModifiedValues { + s.UserGroups = v + return s +} + // Represents the output of a PurchaseReservedCacheNodesOffering operation. type ReservedCacheNode struct { _ struct{} `type:"structure"` @@ -16511,6 +18693,9 @@ type Snapshot struct { // Example: sun:23:00-mon:01:30 PreferredMaintenanceWindow *string `type:"string"` + // The ARN (Amazon Resource Name) of the preferred outpost. + PreferredOutpostArn *string `type:"string"` + // A description of the source replication group. ReplicationGroupDescription *string `type:"string"` @@ -16666,6 +18851,12 @@ func (s *Snapshot) SetPreferredMaintenanceWindow(v string) *Snapshot { return s } +// SetPreferredOutpostArn sets the PreferredOutpostArn field's value. +func (s *Snapshot) SetPreferredOutpostArn(v string) *Snapshot { + s.PreferredOutpostArn = &v + return s +} + // SetReplicationGroupDescription sets the ReplicationGroupDescription field's value. func (s *Snapshot) SetReplicationGroupDescription(v string) *Snapshot { s.ReplicationGroupDescription = &v @@ -16807,6 +18998,9 @@ type Subnet struct { // The unique identifier for the subnet. SubnetIdentifier *string `type:"string"` + + // The outpost ARN of the subnet. + SubnetOutpost *SubnetOutpost `type:"structure"` } // String returns the string representation @@ -16831,6 +19025,36 @@ func (s *Subnet) SetSubnetIdentifier(v string) *Subnet { return s } +// SetSubnetOutpost sets the SubnetOutpost field's value. +func (s *Subnet) SetSubnetOutpost(v *SubnetOutpost) *Subnet { + s.SubnetOutpost = v + return s +} + +// The ID of the outpost subnet. +type SubnetOutpost struct { + _ struct{} `type:"structure"` + + // The outpost ARN of the subnet. + SubnetOutpostArn *string `type:"string"` +} + +// String returns the string representation +func (s SubnetOutpost) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s SubnetOutpost) GoString() string { + return s.String() +} + +// SetSubnetOutpostArn sets the SubnetOutpostArn field's value. +func (s *SubnetOutpost) SetSubnetOutpostArn(v string) *SubnetOutpost { + s.SubnetOutpostArn = &v + return s +} + // A cost allocation Tag that can be added to an ElastiCache cluster or replication // group. Tags are composed of a Key/Value pair. A tag with a null Value is // permitted. @@ -17240,6 +19464,235 @@ func (s *UpdateAction) SetUpdateActionStatusModifiedDate(v time.Time) *UpdateAct return s } +type User struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the user account. + ARN *string `type:"string"` + + // Access permissions string used for this user account. + AccessString *string `type:"string"` + + // Denotes whether the user requires a password to authenticate. + Authentication *Authentication `type:"structure"` + + // Must be Redis. + Engine *string `type:"string"` + + // Indicates the user status. Can be "active", "modifying" or "deleting". + Status *string `type:"string"` + + // Returns a list of the user group IDs the user belongs to. + UserGroupIds []*string `type:"list"` + + // The ID of the user. + UserId *string `type:"string"` + + // The username of the user. + UserName *string `type:"string"` +} + +// String returns the string representation +func (s User) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s User) GoString() string { + return s.String() +} + +// SetARN sets the ARN field's value. +func (s *User) SetARN(v string) *User { + s.ARN = &v + return s +} + +// SetAccessString sets the AccessString field's value. +func (s *User) SetAccessString(v string) *User { + s.AccessString = &v + return s +} + +// SetAuthentication sets the Authentication field's value. +func (s *User) SetAuthentication(v *Authentication) *User { + s.Authentication = v + return s +} + +// SetEngine sets the Engine field's value. +func (s *User) SetEngine(v string) *User { + s.Engine = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *User) SetStatus(v string) *User { + s.Status = &v + return s +} + +// SetUserGroupIds sets the UserGroupIds field's value. +func (s *User) SetUserGroupIds(v []*string) *User { + s.UserGroupIds = v + return s +} + +// SetUserId sets the UserId field's value. +func (s *User) SetUserId(v string) *User { + s.UserId = &v + return s +} + +// SetUserName sets the UserName field's value. +func (s *User) SetUserName(v string) *User { + s.UserName = &v + return s +} + +type UserGroup struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the user group. + ARN *string `type:"string"` + + // Must be Redis. + Engine *string `type:"string"` + + // A list of updates being applied to the user groups. + PendingChanges *UserGroupPendingChanges `type:"structure"` + + // A list of replication groups that the user group can access. + ReplicationGroups []*string `type:"list"` + + // Indicates user group status. Can be "creating", "active", "modifying", "deleting". + Status *string `type:"string"` + + // The ID of the user group. + UserGroupId *string `type:"string"` + + // The list of user IDs that belong to the user group. + UserIds []*string `type:"list"` +} + +// String returns the string representation +func (s UserGroup) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UserGroup) GoString() string { + return s.String() +} + +// SetARN sets the ARN field's value. +func (s *UserGroup) SetARN(v string) *UserGroup { + s.ARN = &v + return s +} + +// SetEngine sets the Engine field's value. +func (s *UserGroup) SetEngine(v string) *UserGroup { + s.Engine = &v + return s +} + +// SetPendingChanges sets the PendingChanges field's value. +func (s *UserGroup) SetPendingChanges(v *UserGroupPendingChanges) *UserGroup { + s.PendingChanges = v + return s +} + +// SetReplicationGroups sets the ReplicationGroups field's value. +func (s *UserGroup) SetReplicationGroups(v []*string) *UserGroup { + s.ReplicationGroups = v + return s +} + +// SetStatus sets the Status field's value. +func (s *UserGroup) SetStatus(v string) *UserGroup { + s.Status = &v + return s +} + +// SetUserGroupId sets the UserGroupId field's value. +func (s *UserGroup) SetUserGroupId(v string) *UserGroup { + s.UserGroupId = &v + return s +} + +// SetUserIds sets the UserIds field's value. +func (s *UserGroup) SetUserIds(v []*string) *UserGroup { + s.UserIds = v + return s +} + +// Returns the updates being applied to the user group. +type UserGroupPendingChanges struct { + _ struct{} `type:"structure"` + + // The list of user IDs to add. + UserIdsToAdd []*string `type:"list"` + + // The list of user group IDs ro remove. + UserIdsToRemove []*string `type:"list"` +} + +// String returns the string representation +func (s UserGroupPendingChanges) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UserGroupPendingChanges) GoString() string { + return s.String() +} + +// SetUserIdsToAdd sets the UserIdsToAdd field's value. +func (s *UserGroupPendingChanges) SetUserIdsToAdd(v []*string) *UserGroupPendingChanges { + s.UserIdsToAdd = v + return s +} + +// SetUserIdsToRemove sets the UserIdsToRemove field's value. +func (s *UserGroupPendingChanges) SetUserIdsToRemove(v []*string) *UserGroupPendingChanges { + s.UserIdsToRemove = v + return s +} + +// The status of the user group update. +type UserGroupsUpdateStatus struct { + _ struct{} `type:"structure"` + + // The list of user group IDs to add. + UserGroupIdsToAdd []*string `type:"list"` + + // The list of user group IDs to remove. + UserGroupIdsToRemove []*string `type:"list"` +} + +// String returns the string representation +func (s UserGroupsUpdateStatus) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UserGroupsUpdateStatus) GoString() string { + return s.String() +} + +// SetUserGroupIdsToAdd sets the UserGroupIdsToAdd field's value. +func (s *UserGroupsUpdateStatus) SetUserGroupIdsToAdd(v []*string) *UserGroupsUpdateStatus { + s.UserGroupIdsToAdd = v + return s +} + +// SetUserGroupIdsToRemove sets the UserGroupIdsToRemove field's value. +func (s *UserGroupsUpdateStatus) SetUserGroupIdsToRemove(v []*string) *UserGroupsUpdateStatus { + s.UserGroupIdsToRemove = v + return s +} + const ( // AZModeSingleAz is a AZMode enum value AZModeSingleAz = "single-az" @@ -17278,6 +19731,9 @@ const ( // AuthTokenUpdateStrategyTypeRotate is a AuthTokenUpdateStrategyType enum value AuthTokenUpdateStrategyTypeRotate = "ROTATE" + + // AuthTokenUpdateStrategyTypeDelete is a AuthTokenUpdateStrategyType enum value + AuthTokenUpdateStrategyTypeDelete = "DELETE" ) // AuthTokenUpdateStrategyType_Values returns all elements of the AuthTokenUpdateStrategyType enum @@ -17285,6 +19741,23 @@ func AuthTokenUpdateStrategyType_Values() []string { return []string{ AuthTokenUpdateStrategyTypeSet, AuthTokenUpdateStrategyTypeRotate, + AuthTokenUpdateStrategyTypeDelete, + } +} + +const ( + // AuthenticationTypePassword is a AuthenticationType enum value + AuthenticationTypePassword = "password" + + // AuthenticationTypeNoPassword is a AuthenticationType enum value + AuthenticationTypeNoPassword = "no-password" +) + +// AuthenticationType_Values returns all elements of the AuthenticationType enum +func AuthenticationType_Values() []string { + return []string{ + AuthenticationTypePassword, + AuthenticationTypeNoPassword, } } @@ -17392,6 +19865,22 @@ func NodeUpdateStatus_Values() []string { } } +const ( + // OutpostModeSingleOutpost is a OutpostMode enum value + OutpostModeSingleOutpost = "single-outpost" + + // OutpostModeCrossOutpost is a OutpostMode enum value + OutpostModeCrossOutpost = "cross-outpost" +) + +// OutpostMode_Values returns all elements of the OutpostMode enum +func OutpostMode_Values() []string { + return []string{ + OutpostModeSingleOutpost, + OutpostModeCrossOutpost, + } +} + const ( // PendingAutomaticFailoverStatusEnabled is a PendingAutomaticFailoverStatus enum value PendingAutomaticFailoverStatusEnabled = "enabled" @@ -17499,6 +19988,12 @@ const ( // SourceTypeReplicationGroup is a SourceType enum value SourceTypeReplicationGroup = "replication-group" + + // SourceTypeUser is a SourceType enum value + SourceTypeUser = "user" + + // SourceTypeUserGroup is a SourceType enum value + SourceTypeUserGroup = "user-group" ) // SourceType_Values returns all elements of the SourceType enum @@ -17509,6 +20004,8 @@ func SourceType_Values() []string { SourceTypeCacheSecurityGroup, SourceTypeCacheSubnetGroup, SourceTypeReplicationGroup, + SourceTypeUser, + SourceTypeUserGroup, } } diff --git a/service/elasticache/elasticacheiface/interface.go b/service/elasticache/elasticacheiface/interface.go index a67864f3768..c798553d838 100644 --- a/service/elasticache/elasticacheiface/interface.go +++ b/service/elasticache/elasticacheiface/interface.go @@ -112,6 +112,14 @@ type ElastiCacheAPI interface { CreateSnapshotWithContext(aws.Context, *elasticache.CreateSnapshotInput, ...request.Option) (*elasticache.CreateSnapshotOutput, error) CreateSnapshotRequest(*elasticache.CreateSnapshotInput) (*request.Request, *elasticache.CreateSnapshotOutput) + CreateUser(*elasticache.CreateUserInput) (*elasticache.CreateUserOutput, error) + CreateUserWithContext(aws.Context, *elasticache.CreateUserInput, ...request.Option) (*elasticache.CreateUserOutput, error) + CreateUserRequest(*elasticache.CreateUserInput) (*request.Request, *elasticache.CreateUserOutput) + + CreateUserGroup(*elasticache.CreateUserGroupInput) (*elasticache.CreateUserGroupOutput, error) + CreateUserGroupWithContext(aws.Context, *elasticache.CreateUserGroupInput, ...request.Option) (*elasticache.CreateUserGroupOutput, error) + CreateUserGroupRequest(*elasticache.CreateUserGroupInput) (*request.Request, *elasticache.CreateUserGroupOutput) + DecreaseNodeGroupsInGlobalReplicationGroup(*elasticache.DecreaseNodeGroupsInGlobalReplicationGroupInput) (*elasticache.DecreaseNodeGroupsInGlobalReplicationGroupOutput, error) DecreaseNodeGroupsInGlobalReplicationGroupWithContext(aws.Context, *elasticache.DecreaseNodeGroupsInGlobalReplicationGroupInput, ...request.Option) (*elasticache.DecreaseNodeGroupsInGlobalReplicationGroupOutput, error) DecreaseNodeGroupsInGlobalReplicationGroupRequest(*elasticache.DecreaseNodeGroupsInGlobalReplicationGroupInput) (*request.Request, *elasticache.DecreaseNodeGroupsInGlobalReplicationGroupOutput) @@ -148,6 +156,14 @@ type ElastiCacheAPI interface { DeleteSnapshotWithContext(aws.Context, *elasticache.DeleteSnapshotInput, ...request.Option) (*elasticache.DeleteSnapshotOutput, error) DeleteSnapshotRequest(*elasticache.DeleteSnapshotInput) (*request.Request, *elasticache.DeleteSnapshotOutput) + DeleteUser(*elasticache.DeleteUserInput) (*elasticache.DeleteUserOutput, error) + DeleteUserWithContext(aws.Context, *elasticache.DeleteUserInput, ...request.Option) (*elasticache.DeleteUserOutput, error) + DeleteUserRequest(*elasticache.DeleteUserInput) (*request.Request, *elasticache.DeleteUserOutput) + + DeleteUserGroup(*elasticache.DeleteUserGroupInput) (*elasticache.DeleteUserGroupOutput, error) + DeleteUserGroupWithContext(aws.Context, *elasticache.DeleteUserGroupInput, ...request.Option) (*elasticache.DeleteUserGroupOutput, error) + DeleteUserGroupRequest(*elasticache.DeleteUserGroupInput) (*request.Request, *elasticache.DeleteUserGroupOutput) + DescribeCacheClusters(*elasticache.DescribeCacheClustersInput) (*elasticache.DescribeCacheClustersOutput, error) DescribeCacheClustersWithContext(aws.Context, *elasticache.DescribeCacheClustersInput, ...request.Option) (*elasticache.DescribeCacheClustersOutput, error) DescribeCacheClustersRequest(*elasticache.DescribeCacheClustersInput) (*request.Request, *elasticache.DescribeCacheClustersOutput) @@ -253,6 +269,20 @@ type ElastiCacheAPI interface { DescribeUpdateActionsPages(*elasticache.DescribeUpdateActionsInput, func(*elasticache.DescribeUpdateActionsOutput, bool) bool) error DescribeUpdateActionsPagesWithContext(aws.Context, *elasticache.DescribeUpdateActionsInput, func(*elasticache.DescribeUpdateActionsOutput, bool) bool, ...request.Option) error + DescribeUserGroups(*elasticache.DescribeUserGroupsInput) (*elasticache.DescribeUserGroupsOutput, error) + DescribeUserGroupsWithContext(aws.Context, *elasticache.DescribeUserGroupsInput, ...request.Option) (*elasticache.DescribeUserGroupsOutput, error) + DescribeUserGroupsRequest(*elasticache.DescribeUserGroupsInput) (*request.Request, *elasticache.DescribeUserGroupsOutput) + + DescribeUserGroupsPages(*elasticache.DescribeUserGroupsInput, func(*elasticache.DescribeUserGroupsOutput, bool) bool) error + DescribeUserGroupsPagesWithContext(aws.Context, *elasticache.DescribeUserGroupsInput, func(*elasticache.DescribeUserGroupsOutput, bool) bool, ...request.Option) error + + DescribeUsers(*elasticache.DescribeUsersInput) (*elasticache.DescribeUsersOutput, error) + DescribeUsersWithContext(aws.Context, *elasticache.DescribeUsersInput, ...request.Option) (*elasticache.DescribeUsersOutput, error) + DescribeUsersRequest(*elasticache.DescribeUsersInput) (*request.Request, *elasticache.DescribeUsersOutput) + + DescribeUsersPages(*elasticache.DescribeUsersInput, func(*elasticache.DescribeUsersOutput, bool) bool) error + DescribeUsersPagesWithContext(aws.Context, *elasticache.DescribeUsersInput, func(*elasticache.DescribeUsersOutput, bool) bool, ...request.Option) error + DisassociateGlobalReplicationGroup(*elasticache.DisassociateGlobalReplicationGroupInput) (*elasticache.DisassociateGlobalReplicationGroupOutput, error) DisassociateGlobalReplicationGroupWithContext(aws.Context, *elasticache.DisassociateGlobalReplicationGroupInput, ...request.Option) (*elasticache.DisassociateGlobalReplicationGroupOutput, error) DisassociateGlobalReplicationGroupRequest(*elasticache.DisassociateGlobalReplicationGroupInput) (*request.Request, *elasticache.DisassociateGlobalReplicationGroupOutput) @@ -301,6 +331,14 @@ type ElastiCacheAPI interface { ModifyReplicationGroupShardConfigurationWithContext(aws.Context, *elasticache.ModifyReplicationGroupShardConfigurationInput, ...request.Option) (*elasticache.ModifyReplicationGroupShardConfigurationOutput, error) ModifyReplicationGroupShardConfigurationRequest(*elasticache.ModifyReplicationGroupShardConfigurationInput) (*request.Request, *elasticache.ModifyReplicationGroupShardConfigurationOutput) + ModifyUser(*elasticache.ModifyUserInput) (*elasticache.ModifyUserOutput, error) + ModifyUserWithContext(aws.Context, *elasticache.ModifyUserInput, ...request.Option) (*elasticache.ModifyUserOutput, error) + ModifyUserRequest(*elasticache.ModifyUserInput) (*request.Request, *elasticache.ModifyUserOutput) + + ModifyUserGroup(*elasticache.ModifyUserGroupInput) (*elasticache.ModifyUserGroupOutput, error) + ModifyUserGroupWithContext(aws.Context, *elasticache.ModifyUserGroupInput, ...request.Option) (*elasticache.ModifyUserGroupOutput, error) + ModifyUserGroupRequest(*elasticache.ModifyUserGroupInput) (*request.Request, *elasticache.ModifyUserGroupOutput) + PurchaseReservedCacheNodesOffering(*elasticache.PurchaseReservedCacheNodesOfferingInput) (*elasticache.PurchaseReservedCacheNodesOfferingOutput, error) PurchaseReservedCacheNodesOfferingWithContext(aws.Context, *elasticache.PurchaseReservedCacheNodesOfferingInput, ...request.Option) (*elasticache.PurchaseReservedCacheNodesOfferingOutput, error) PurchaseReservedCacheNodesOfferingRequest(*elasticache.PurchaseReservedCacheNodesOfferingInput) (*request.Request, *elasticache.PurchaseReservedCacheNodesOfferingOutput) diff --git a/service/elasticache/errors.go b/service/elasticache/errors.go index 4e78aa9320e..22b5e4e4c38 100644 --- a/service/elasticache/errors.go +++ b/service/elasticache/errors.go @@ -117,6 +117,22 @@ const ( // of clusters per customer. ErrCodeClusterQuotaForCustomerExceededFault = "ClusterQuotaForCustomerExceeded" + // ErrCodeDefaultUserAssociatedToUserGroupFault for service response error code + // "DefaultUserAssociatedToUserGroup". + ErrCodeDefaultUserAssociatedToUserGroupFault = "DefaultUserAssociatedToUserGroup" + + // ErrCodeDefaultUserRequired for service response error code + // "DefaultUserRequired". + // + // You must add default user to a user group. + ErrCodeDefaultUserRequired = "DefaultUserRequired" + + // ErrCodeDuplicateUserNameFault for service response error code + // "DuplicateUserName". + // + // A user with this username already exists. + ErrCodeDuplicateUserNameFault = "DuplicateUserName" + // ErrCodeGlobalReplicationGroupAlreadyExistsFault for service response error code // "GlobalReplicationGroupAlreadyExistsFault". // @@ -205,6 +221,18 @@ const ( // An invalid subnet identifier was specified. ErrCodeInvalidSubnet = "InvalidSubnet" + // ErrCodeInvalidUserGroupStateFault for service response error code + // "InvalidUserGroupState". + // + // The user group is not in an active state. + ErrCodeInvalidUserGroupStateFault = "InvalidUserGroupState" + + // ErrCodeInvalidUserStateFault for service response error code + // "InvalidUserState". + // + // The user is not in active state. + ErrCodeInvalidUserStateFault = "InvalidUserState" + // ErrCodeInvalidVPCNetworkStateFault for service response error code // "InvalidVPCNetworkStateFault". // @@ -347,6 +375,15 @@ const ( // The requested subnet is being used by another cache subnet group. ErrCodeSubnetInUse = "SubnetInUse" + // ErrCodeSubnetNotAllowedFault for service response error code + // "SubnetNotAllowedFault". + // + // At least one subnet ID does not match the other subnet IDs. This mismatch + // typically occurs when a user sets one subnet ID to a regional Availability + // Zone and a different one to an outpost. Or when a user sets the subnet ID + // to an Outpost when not subscribed on this service. + ErrCodeSubnetNotAllowedFault = "SubnetNotAllowedFault" + // ErrCodeTagNotFoundFault for service response error code // "TagNotFound". // @@ -366,4 +403,40 @@ const ( // // The TestFailover action is not available. ErrCodeTestFailoverNotAvailableFault = "TestFailoverNotAvailableFault" + + // ErrCodeUserAlreadyExistsFault for service response error code + // "UserAlreadyExists". + // + // A user with this ID already exists. + ErrCodeUserAlreadyExistsFault = "UserAlreadyExists" + + // ErrCodeUserGroupAlreadyExistsFault for service response error code + // "UserGroupAlreadyExists". + // + // The user group with this ID already exists. + ErrCodeUserGroupAlreadyExistsFault = "UserGroupAlreadyExists" + + // ErrCodeUserGroupNotFoundFault for service response error code + // "UserGroupNotFound". + // + // The user group was not found or does not exist + ErrCodeUserGroupNotFoundFault = "UserGroupNotFound" + + // ErrCodeUserGroupQuotaExceededFault for service response error code + // "UserGroupQuotaExceeded". + // + // The number of users exceeds the user group limit. + ErrCodeUserGroupQuotaExceededFault = "UserGroupQuotaExceeded" + + // ErrCodeUserNotFoundFault for service response error code + // "UserNotFound". + // + // The user does not exist or could not be found. + ErrCodeUserNotFoundFault = "UserNotFound" + + // ErrCodeUserQuotaExceededFault for service response error code + // "UserQuotaExceeded". + // + // The quota of users has been exceeded. + ErrCodeUserQuotaExceededFault = "UserQuotaExceeded" ) diff --git a/service/elasticache/examples_test.go b/service/elasticache/examples_test.go index b58bc78a36a..b7872079c89 100644 --- a/service/elasticache/examples_test.go +++ b/service/elasticache/examples_test.go @@ -381,6 +381,8 @@ func ExampleElastiCache_CreateCacheSubnetGroup_shared00() { fmt.Println(elasticache.ErrCodeCacheSubnetQuotaExceededFault, aerr.Error()) case elasticache.ErrCodeInvalidSubnet: fmt.Println(elasticache.ErrCodeInvalidSubnet, aerr.Error()) + case elasticache.ErrCodeSubnetNotAllowedFault: + fmt.Println(elasticache.ErrCodeSubnetNotAllowedFault, aerr.Error()) default: fmt.Println(aerr.Error()) } @@ -421,6 +423,10 @@ func ExampleElastiCache_CreateReplicationGroup_shared00() { fmt.Println(elasticache.ErrCodeInvalidCacheClusterStateFault, aerr.Error()) case elasticache.ErrCodeReplicationGroupAlreadyExistsFault: fmt.Println(elasticache.ErrCodeReplicationGroupAlreadyExistsFault, aerr.Error()) + case elasticache.ErrCodeInvalidUserGroupStateFault: + fmt.Println(elasticache.ErrCodeInvalidUserGroupStateFault, aerr.Error()) + case elasticache.ErrCodeUserGroupNotFoundFault: + fmt.Println(elasticache.ErrCodeUserGroupNotFoundFault, aerr.Error()) case elasticache.ErrCodeInsufficientCacheClusterCapacityFault: fmt.Println(elasticache.ErrCodeInsufficientCacheClusterCapacityFault, aerr.Error()) case elasticache.ErrCodeCacheSecurityGroupNotFoundFault: @@ -510,6 +516,10 @@ func ExampleElastiCache_CreateReplicationGroup_shared01() { fmt.Println(elasticache.ErrCodeInvalidCacheClusterStateFault, aerr.Error()) case elasticache.ErrCodeReplicationGroupAlreadyExistsFault: fmt.Println(elasticache.ErrCodeReplicationGroupAlreadyExistsFault, aerr.Error()) + case elasticache.ErrCodeInvalidUserGroupStateFault: + fmt.Println(elasticache.ErrCodeInvalidUserGroupStateFault, aerr.Error()) + case elasticache.ErrCodeUserGroupNotFoundFault: + fmt.Println(elasticache.ErrCodeUserGroupNotFoundFault, aerr.Error()) case elasticache.ErrCodeInsufficientCacheClusterCapacityFault: fmt.Println(elasticache.ErrCodeInsufficientCacheClusterCapacityFault, aerr.Error()) case elasticache.ErrCodeCacheSecurityGroupNotFoundFault: @@ -1701,6 +1711,8 @@ func ExampleElastiCache_ModifyCacheSubnetGroup_shared00() { fmt.Println(elasticache.ErrCodeSubnetInUse, aerr.Error()) case elasticache.ErrCodeInvalidSubnet: fmt.Println(elasticache.ErrCodeInvalidSubnet, aerr.Error()) + case elasticache.ErrCodeSubnetNotAllowedFault: + fmt.Println(elasticache.ErrCodeSubnetNotAllowedFault, aerr.Error()) default: fmt.Println(aerr.Error()) } @@ -1736,6 +1748,10 @@ func ExampleElastiCache_ModifyReplicationGroup_shared00() { fmt.Println(elasticache.ErrCodeReplicationGroupNotFoundFault, aerr.Error()) case elasticache.ErrCodeInvalidReplicationGroupStateFault: fmt.Println(elasticache.ErrCodeInvalidReplicationGroupStateFault, aerr.Error()) + case elasticache.ErrCodeInvalidUserGroupStateFault: + fmt.Println(elasticache.ErrCodeInvalidUserGroupStateFault, aerr.Error()) + case elasticache.ErrCodeUserGroupNotFoundFault: + fmt.Println(elasticache.ErrCodeUserGroupNotFoundFault, aerr.Error()) case elasticache.ErrCodeInvalidCacheClusterStateFault: fmt.Println(elasticache.ErrCodeInvalidCacheClusterStateFault, aerr.Error()) case elasticache.ErrCodeInvalidCacheSecurityGroupStateFault: diff --git a/service/mediapackage/api.go b/service/mediapackage/api.go index 911563bfee5..bb818fd16f9 100644 --- a/service/mediapackage/api.go +++ b/service/mediapackage/api.go @@ -12,6 +12,94 @@ import ( "github.com/aws/aws-sdk-go/private/protocol/restjson" ) +const opConfigureLogs = "ConfigureLogs" + +// ConfigureLogsRequest generates a "aws/request.Request" representing the +// client's request for the ConfigureLogs operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ConfigureLogs for more information on using the ConfigureLogs +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the ConfigureLogsRequest method. +// req, resp := client.ConfigureLogsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/mediapackage-2017-10-12/ConfigureLogs +func (c *MediaPackage) ConfigureLogsRequest(input *ConfigureLogsInput) (req *request.Request, output *ConfigureLogsOutput) { + op := &request.Operation{ + Name: opConfigureLogs, + HTTPMethod: "PUT", + HTTPPath: "/channels/{id}/configure_logs", + } + + if input == nil { + input = &ConfigureLogsInput{} + } + + output = &ConfigureLogsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ConfigureLogs API operation for AWS Elemental MediaPackage. +// +// Changes the Channel's properities to configure log subscription +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Elemental MediaPackage's +// API operation ConfigureLogs for usage and error information. +// +// Returned Error Types: +// * UnprocessableEntityException +// +// * InternalServerErrorException +// +// * ForbiddenException +// +// * NotFoundException +// +// * ServiceUnavailableException +// +// * TooManyRequestsException +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/mediapackage-2017-10-12/ConfigureLogs +func (c *MediaPackage) ConfigureLogs(input *ConfigureLogsInput) (*ConfigureLogsOutput, error) { + req, out := c.ConfigureLogsRequest(input) + return out, req.Send() +} + +// ConfigureLogsWithContext is the same as ConfigureLogs with the addition of +// the ability to pass a context and additional request options. +// +// See ConfigureLogs for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *MediaPackage) ConfigureLogsWithContext(ctx aws.Context, input *ConfigureLogsInput, opts ...request.Option) (*ConfigureLogsOutput, error) { + req, out := c.ConfigureLogsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opCreateChannel = "CreateChannel" // CreateChannelRequest generates a "aws/request.Request" representing the @@ -1803,12 +1891,18 @@ type Channel struct { // A short text description of the Channel. Description *string `locationName:"description" type:"string"` + // Configure egress access logging. + EgressAccessLogs *EgressAccessLogs `locationName:"egressAccessLogs" type:"structure"` + // An HTTP Live Streaming (HLS) ingest resource configuration. HlsIngest *HlsIngest `locationName:"hlsIngest" type:"structure"` // The ID of the Channel. Id *string `locationName:"id" type:"string"` + // Configure ingress access logging. + IngressAccessLogs *IngressAccessLogs `locationName:"ingressAccessLogs" type:"structure"` + // A collection of tags associated with a resource Tags map[string]*string `locationName:"tags" type:"map"` } @@ -1835,6 +1929,12 @@ func (s *Channel) SetDescription(v string) *Channel { return s } +// SetEgressAccessLogs sets the EgressAccessLogs field's value. +func (s *Channel) SetEgressAccessLogs(v *EgressAccessLogs) *Channel { + s.EgressAccessLogs = v + return s +} + // SetHlsIngest sets the HlsIngest field's value. func (s *Channel) SetHlsIngest(v *HlsIngest) *Channel { s.HlsIngest = v @@ -1847,6 +1947,12 @@ func (s *Channel) SetId(v string) *Channel { return s } +// SetIngressAccessLogs sets the IngressAccessLogs field's value. +func (s *Channel) SetIngressAccessLogs(v *IngressAccessLogs) *Channel { + s.IngressAccessLogs = v + return s +} + // SetTags sets the Tags field's value. func (s *Channel) SetTags(v map[string]*string) *Channel { s.Tags = v @@ -2056,6 +2162,137 @@ func (s *CmafPackageCreateOrUpdateParameters) SetStreamSelection(v *StreamSelect return s } +type ConfigureLogsInput struct { + _ struct{} `type:"structure"` + + // Configure egress access logging. + EgressAccessLogs *EgressAccessLogs `locationName:"egressAccessLogs" type:"structure"` + + // Id is a required field + Id *string `location:"uri" locationName:"id" type:"string" required:"true"` + + // Configure ingress access logging. + IngressAccessLogs *IngressAccessLogs `locationName:"ingressAccessLogs" type:"structure"` +} + +// String returns the string representation +func (s ConfigureLogsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ConfigureLogsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ConfigureLogsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ConfigureLogsInput"} + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Id", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEgressAccessLogs sets the EgressAccessLogs field's value. +func (s *ConfigureLogsInput) SetEgressAccessLogs(v *EgressAccessLogs) *ConfigureLogsInput { + s.EgressAccessLogs = v + return s +} + +// SetId sets the Id field's value. +func (s *ConfigureLogsInput) SetId(v string) *ConfigureLogsInput { + s.Id = &v + return s +} + +// SetIngressAccessLogs sets the IngressAccessLogs field's value. +func (s *ConfigureLogsInput) SetIngressAccessLogs(v *IngressAccessLogs) *ConfigureLogsInput { + s.IngressAccessLogs = v + return s +} + +type ConfigureLogsOutput struct { + _ struct{} `type:"structure"` + + Arn *string `locationName:"arn" type:"string"` + + Description *string `locationName:"description" type:"string"` + + // Configure egress access logging. + EgressAccessLogs *EgressAccessLogs `locationName:"egressAccessLogs" type:"structure"` + + // An HTTP Live Streaming (HLS) ingest resource configuration. + HlsIngest *HlsIngest `locationName:"hlsIngest" type:"structure"` + + Id *string `locationName:"id" type:"string"` + + // Configure ingress access logging. + IngressAccessLogs *IngressAccessLogs `locationName:"ingressAccessLogs" type:"structure"` + + // A collection of tags associated with a resource + Tags map[string]*string `locationName:"tags" type:"map"` +} + +// String returns the string representation +func (s ConfigureLogsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ConfigureLogsOutput) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *ConfigureLogsOutput) SetArn(v string) *ConfigureLogsOutput { + s.Arn = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *ConfigureLogsOutput) SetDescription(v string) *ConfigureLogsOutput { + s.Description = &v + return s +} + +// SetEgressAccessLogs sets the EgressAccessLogs field's value. +func (s *ConfigureLogsOutput) SetEgressAccessLogs(v *EgressAccessLogs) *ConfigureLogsOutput { + s.EgressAccessLogs = v + return s +} + +// SetHlsIngest sets the HlsIngest field's value. +func (s *ConfigureLogsOutput) SetHlsIngest(v *HlsIngest) *ConfigureLogsOutput { + s.HlsIngest = v + return s +} + +// SetId sets the Id field's value. +func (s *ConfigureLogsOutput) SetId(v string) *ConfigureLogsOutput { + s.Id = &v + return s +} + +// SetIngressAccessLogs sets the IngressAccessLogs field's value. +func (s *ConfigureLogsOutput) SetIngressAccessLogs(v *IngressAccessLogs) *ConfigureLogsOutput { + s.IngressAccessLogs = v + return s +} + +// SetTags sets the Tags field's value. +func (s *ConfigureLogsOutput) SetTags(v map[string]*string) *ConfigureLogsOutput { + s.Tags = v + return s +} + type CreateChannelInput struct { _ struct{} `type:"structure"` @@ -2116,11 +2353,17 @@ type CreateChannelOutput struct { Description *string `locationName:"description" type:"string"` + // Configure egress access logging. + EgressAccessLogs *EgressAccessLogs `locationName:"egressAccessLogs" type:"structure"` + // An HTTP Live Streaming (HLS) ingest resource configuration. HlsIngest *HlsIngest `locationName:"hlsIngest" type:"structure"` Id *string `locationName:"id" type:"string"` + // Configure ingress access logging. + IngressAccessLogs *IngressAccessLogs `locationName:"ingressAccessLogs" type:"structure"` + // A collection of tags associated with a resource Tags map[string]*string `locationName:"tags" type:"map"` } @@ -2147,6 +2390,12 @@ func (s *CreateChannelOutput) SetDescription(v string) *CreateChannelOutput { return s } +// SetEgressAccessLogs sets the EgressAccessLogs field's value. +func (s *CreateChannelOutput) SetEgressAccessLogs(v *EgressAccessLogs) *CreateChannelOutput { + s.EgressAccessLogs = v + return s +} + // SetHlsIngest sets the HlsIngest field's value. func (s *CreateChannelOutput) SetHlsIngest(v *HlsIngest) *CreateChannelOutput { s.HlsIngest = v @@ -2159,6 +2408,12 @@ func (s *CreateChannelOutput) SetId(v string) *CreateChannelOutput { return s } +// SetIngressAccessLogs sets the IngressAccessLogs field's value. +func (s *CreateChannelOutput) SetIngressAccessLogs(v *IngressAccessLogs) *CreateChannelOutput { + s.IngressAccessLogs = v + return s +} + // SetTags sets the Tags field's value. func (s *CreateChannelOutput) SetTags(v map[string]*string) *CreateChannelOutput { s.Tags = v @@ -3068,11 +3323,17 @@ type DescribeChannelOutput struct { Description *string `locationName:"description" type:"string"` + // Configure egress access logging. + EgressAccessLogs *EgressAccessLogs `locationName:"egressAccessLogs" type:"structure"` + // An HTTP Live Streaming (HLS) ingest resource configuration. HlsIngest *HlsIngest `locationName:"hlsIngest" type:"structure"` Id *string `locationName:"id" type:"string"` + // Configure ingress access logging. + IngressAccessLogs *IngressAccessLogs `locationName:"ingressAccessLogs" type:"structure"` + // A collection of tags associated with a resource Tags map[string]*string `locationName:"tags" type:"map"` } @@ -3099,6 +3360,12 @@ func (s *DescribeChannelOutput) SetDescription(v string) *DescribeChannelOutput return s } +// SetEgressAccessLogs sets the EgressAccessLogs field's value. +func (s *DescribeChannelOutput) SetEgressAccessLogs(v *EgressAccessLogs) *DescribeChannelOutput { + s.EgressAccessLogs = v + return s +} + // SetHlsIngest sets the HlsIngest field's value. func (s *DescribeChannelOutput) SetHlsIngest(v *HlsIngest) *DescribeChannelOutput { s.HlsIngest = v @@ -3111,6 +3378,12 @@ func (s *DescribeChannelOutput) SetId(v string) *DescribeChannelOutput { return s } +// SetIngressAccessLogs sets the IngressAccessLogs field's value. +func (s *DescribeChannelOutput) SetIngressAccessLogs(v *IngressAccessLogs) *DescribeChannelOutput { + s.IngressAccessLogs = v + return s +} + // SetTags sets the Tags field's value. func (s *DescribeChannelOutput) SetTags(v map[string]*string) *DescribeChannelOutput { s.Tags = v @@ -3431,6 +3704,30 @@ func (s *DescribeOriginEndpointOutput) SetWhitelist(v []*string) *DescribeOrigin return s } +// Configure egress access logging. +type EgressAccessLogs struct { + _ struct{} `type:"structure"` + + // Customize the log group name. + LogGroupName *string `locationName:"logGroupName" type:"string"` +} + +// String returns the string representation +func (s EgressAccessLogs) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s EgressAccessLogs) GoString() string { + return s.String() +} + +// SetLogGroupName sets the LogGroupName field's value. +func (s *EgressAccessLogs) SetLogGroupName(v string) *EgressAccessLogs { + s.LogGroupName = &v + return s +} + type ForbiddenException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -4148,6 +4445,30 @@ func (s *IngestEndpoint) SetUsername(v string) *IngestEndpoint { return s } +// Configure ingress access logging. +type IngressAccessLogs struct { + _ struct{} `type:"structure"` + + // Customize the log group name. + LogGroupName *string `locationName:"logGroupName" type:"string"` +} + +// String returns the string representation +func (s IngressAccessLogs) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s IngressAccessLogs) GoString() string { + return s.String() +} + +// SetLogGroupName sets the LogGroupName field's value. +func (s *IngressAccessLogs) SetLogGroupName(v string) *IngressAccessLogs { + s.LogGroupName = &v + return s +} + type InternalServerErrorException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -4886,11 +5207,17 @@ type RotateChannelCredentialsOutput struct { Description *string `locationName:"description" type:"string"` + // Configure egress access logging. + EgressAccessLogs *EgressAccessLogs `locationName:"egressAccessLogs" type:"structure"` + // An HTTP Live Streaming (HLS) ingest resource configuration. HlsIngest *HlsIngest `locationName:"hlsIngest" type:"structure"` Id *string `locationName:"id" type:"string"` + // Configure ingress access logging. + IngressAccessLogs *IngressAccessLogs `locationName:"ingressAccessLogs" type:"structure"` + // A collection of tags associated with a resource Tags map[string]*string `locationName:"tags" type:"map"` } @@ -4917,6 +5244,12 @@ func (s *RotateChannelCredentialsOutput) SetDescription(v string) *RotateChannel return s } +// SetEgressAccessLogs sets the EgressAccessLogs field's value. +func (s *RotateChannelCredentialsOutput) SetEgressAccessLogs(v *EgressAccessLogs) *RotateChannelCredentialsOutput { + s.EgressAccessLogs = v + return s +} + // SetHlsIngest sets the HlsIngest field's value. func (s *RotateChannelCredentialsOutput) SetHlsIngest(v *HlsIngest) *RotateChannelCredentialsOutput { s.HlsIngest = v @@ -4929,6 +5262,12 @@ func (s *RotateChannelCredentialsOutput) SetId(v string) *RotateChannelCredentia return s } +// SetIngressAccessLogs sets the IngressAccessLogs field's value. +func (s *RotateChannelCredentialsOutput) SetIngressAccessLogs(v *IngressAccessLogs) *RotateChannelCredentialsOutput { + s.IngressAccessLogs = v + return s +} + // SetTags sets the Tags field's value. func (s *RotateChannelCredentialsOutput) SetTags(v map[string]*string) *RotateChannelCredentialsOutput { s.Tags = v @@ -4996,11 +5335,17 @@ type RotateIngestEndpointCredentialsOutput struct { Description *string `locationName:"description" type:"string"` + // Configure egress access logging. + EgressAccessLogs *EgressAccessLogs `locationName:"egressAccessLogs" type:"structure"` + // An HTTP Live Streaming (HLS) ingest resource configuration. HlsIngest *HlsIngest `locationName:"hlsIngest" type:"structure"` Id *string `locationName:"id" type:"string"` + // Configure ingress access logging. + IngressAccessLogs *IngressAccessLogs `locationName:"ingressAccessLogs" type:"structure"` + // A collection of tags associated with a resource Tags map[string]*string `locationName:"tags" type:"map"` } @@ -5027,6 +5372,12 @@ func (s *RotateIngestEndpointCredentialsOutput) SetDescription(v string) *Rotate return s } +// SetEgressAccessLogs sets the EgressAccessLogs field's value. +func (s *RotateIngestEndpointCredentialsOutput) SetEgressAccessLogs(v *EgressAccessLogs) *RotateIngestEndpointCredentialsOutput { + s.EgressAccessLogs = v + return s +} + // SetHlsIngest sets the HlsIngest field's value. func (s *RotateIngestEndpointCredentialsOutput) SetHlsIngest(v *HlsIngest) *RotateIngestEndpointCredentialsOutput { s.HlsIngest = v @@ -5039,6 +5390,12 @@ func (s *RotateIngestEndpointCredentialsOutput) SetId(v string) *RotateIngestEnd return s } +// SetIngressAccessLogs sets the IngressAccessLogs field's value. +func (s *RotateIngestEndpointCredentialsOutput) SetIngressAccessLogs(v *IngressAccessLogs) *RotateIngestEndpointCredentialsOutput { + s.IngressAccessLogs = v + return s +} + // SetTags sets the Tags field's value. func (s *RotateIngestEndpointCredentialsOutput) SetTags(v map[string]*string) *RotateIngestEndpointCredentialsOutput { s.Tags = v @@ -5599,11 +5956,17 @@ type UpdateChannelOutput struct { Description *string `locationName:"description" type:"string"` + // Configure egress access logging. + EgressAccessLogs *EgressAccessLogs `locationName:"egressAccessLogs" type:"structure"` + // An HTTP Live Streaming (HLS) ingest resource configuration. HlsIngest *HlsIngest `locationName:"hlsIngest" type:"structure"` Id *string `locationName:"id" type:"string"` + // Configure ingress access logging. + IngressAccessLogs *IngressAccessLogs `locationName:"ingressAccessLogs" type:"structure"` + // A collection of tags associated with a resource Tags map[string]*string `locationName:"tags" type:"map"` } @@ -5630,6 +5993,12 @@ func (s *UpdateChannelOutput) SetDescription(v string) *UpdateChannelOutput { return s } +// SetEgressAccessLogs sets the EgressAccessLogs field's value. +func (s *UpdateChannelOutput) SetEgressAccessLogs(v *EgressAccessLogs) *UpdateChannelOutput { + s.EgressAccessLogs = v + return s +} + // SetHlsIngest sets the HlsIngest field's value. func (s *UpdateChannelOutput) SetHlsIngest(v *HlsIngest) *UpdateChannelOutput { s.HlsIngest = v @@ -5642,6 +6011,12 @@ func (s *UpdateChannelOutput) SetId(v string) *UpdateChannelOutput { return s } +// SetIngressAccessLogs sets the IngressAccessLogs field's value. +func (s *UpdateChannelOutput) SetIngressAccessLogs(v *IngressAccessLogs) *UpdateChannelOutput { + s.IngressAccessLogs = v + return s +} + // SetTags sets the Tags field's value. func (s *UpdateChannelOutput) SetTags(v map[string]*string) *UpdateChannelOutput { s.Tags = v diff --git a/service/mediapackage/mediapackageiface/interface.go b/service/mediapackage/mediapackageiface/interface.go index 21f4a632cbc..8ae2146808a 100644 --- a/service/mediapackage/mediapackageiface/interface.go +++ b/service/mediapackage/mediapackageiface/interface.go @@ -26,7 +26,7 @@ import ( // // myFunc uses an SDK service client to make a request to // // AWS Elemental MediaPackage. // func myFunc(svc mediapackageiface.MediaPackageAPI) bool { -// // Make svc.CreateChannel request +// // Make svc.ConfigureLogs request // } // // func main() { @@ -42,7 +42,7 @@ import ( // type mockMediaPackageClient struct { // mediapackageiface.MediaPackageAPI // } -// func (m *mockMediaPackageClient) CreateChannel(input *mediapackage.CreateChannelInput) (*mediapackage.CreateChannelOutput, error) { +// func (m *mockMediaPackageClient) ConfigureLogs(input *mediapackage.ConfigureLogsInput) (*mediapackage.ConfigureLogsOutput, error) { // // mock response/functionality // } // @@ -60,6 +60,10 @@ import ( // and waiters. Its suggested to use the pattern above for testing, or using // tooling to generate mocks to satisfy the interfaces. type MediaPackageAPI interface { + ConfigureLogs(*mediapackage.ConfigureLogsInput) (*mediapackage.ConfigureLogsOutput, error) + ConfigureLogsWithContext(aws.Context, *mediapackage.ConfigureLogsInput, ...request.Option) (*mediapackage.ConfigureLogsOutput, error) + ConfigureLogsRequest(*mediapackage.ConfigureLogsInput) (*request.Request, *mediapackage.ConfigureLogsOutput) + CreateChannel(*mediapackage.CreateChannelInput) (*mediapackage.CreateChannelOutput, error) CreateChannelWithContext(aws.Context, *mediapackage.CreateChannelInput, ...request.Option) (*mediapackage.CreateChannelOutput, error) CreateChannelRequest(*mediapackage.CreateChannelInput) (*request.Request, *mediapackage.CreateChannelOutput)