diff --git a/CHANGELOG.md b/CHANGELOG.md index fc6ac80ddf8..454464c5e43 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,19 @@ +Release v1.49.9 (2023-12-22) +=== + +### Service Client Updates +* `service/bedrock-agent`: Updates service API +* `service/glue`: Updates service API and documentation + * This release adds additional configurations for Query Session Context on the following APIs: GetUnfilteredTableMetadata, GetUnfilteredPartitionMetadata, GetUnfilteredPartitionsMetadata. +* `service/lakeformation`: Updates service API and documentation +* `service/mediaconnect`: Updates service API and documentation +* `service/networkmonitor`: Adds new service +* `service/omics`: Updates service documentation +* `service/s3`: Updates service examples + * Added additional examples for some operations. +* `service/secretsmanager`: Adds new service + * Update endpoint rules and examples. + Release v1.49.8 (2023-12-21) === diff --git a/aws/endpoints/defaults.go b/aws/endpoints/defaults.go index cd565b4d3ba..7b06009d856 100644 --- a/aws/endpoints/defaults.go +++ b/aws/endpoints/defaults.go @@ -3586,6 +3586,9 @@ var awsPartition = partition{ endpointKey{ Region: "ca-central-1", }: endpoint{}, + endpointKey{ + Region: "ca-west-1", + }: endpoint{}, endpointKey{ Region: "eu-central-1", }: endpoint{}, @@ -37222,6 +37225,13 @@ var awsusgovPartition = partition{ }, }, }, + "bedrock": service{ + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "us-gov-west-1", + }: endpoint{}, + }, + }, "cassandra": service{ Endpoints: serviceEndpoints{ endpointKey{ diff --git a/aws/version.go b/aws/version.go index 7cb4128775a..f30fd4d512a 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.49.8" +const SDKVersion = "1.49.9" diff --git a/models/apis/bedrock-agent/2023-06-05/api-2.json b/models/apis/bedrock-agent/2023-06-05/api-2.json index 41d16c87bd1..a0667439664 100644 --- a/models/apis/bedrock-agent/2023-06-05/api-2.json +++ b/models/apis/bedrock-agent/2023-06-05/api-2.json @@ -2372,7 +2372,7 @@ "type":"string", "max":2048, "min":1, - "pattern":".*(^[a-zA-Z0-9-_.]+$)|(^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}))$)|(^([0-9a-zA-Z][_-]?)+$)|^([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63})" + "pattern":"arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)" }, "Name":{ "type":"string", diff --git a/models/apis/glue/2017-03-31/api-2.json b/models/apis/glue/2017-03-31/api-2.json index 8519569cd99..4e9a44e6072 100644 --- a/models/apis/glue/2017-03-31/api-2.json +++ b/models/apis/glue/2017-03-31/api-2.json @@ -3353,6 +3353,11 @@ "type":"list", "member":{"shape":"Action"} }, + "AdditionalContextMap":{ + "type":"map", + "key":{"shape":"ContextKey"}, + "value":{"shape":"ContextValue"} + }, "AdditionalOptionKeys":{ "type":"string", "enum":[ @@ -4981,6 +4986,16 @@ "key":{"shape":"GenericString"}, "value":{"shape":"GenericString"} }, + "ContextKey":{ + "type":"string", + "max":128, + "min":1 + }, + "ContextValue":{ + "type":"string", + "max":256, + "min":0 + }, "ContextWords":{ "type":"list", "member":{"shape":"NameString"}, @@ -8347,12 +8362,14 @@ "SupportedPermissionTypes" ], "members":{ + "Region":{"shape":"ValueString"}, "CatalogId":{"shape":"CatalogIdString"}, "DatabaseName":{"shape":"NameString"}, "TableName":{"shape":"NameString"}, "PartitionValues":{"shape":"ValueStringList"}, "AuditContext":{"shape":"AuditContext"}, - "SupportedPermissionTypes":{"shape":"PermissionTypeList"} + "SupportedPermissionTypes":{"shape":"PermissionTypeList"}, + "QuerySessionContext":{"shape":"QuerySessionContext"} } }, "GetUnfilteredPartitionMetadataResponse":{ @@ -8372,6 +8389,7 @@ "SupportedPermissionTypes" ], "members":{ + "Region":{"shape":"ValueString"}, "CatalogId":{"shape":"CatalogIdString"}, "DatabaseName":{"shape":"NameString"}, "TableName":{"shape":"NameString"}, @@ -8380,7 +8398,8 @@ "SupportedPermissionTypes":{"shape":"PermissionTypeList"}, "NextToken":{"shape":"Token"}, "Segment":{"shape":"Segment"}, - "MaxResults":{"shape":"PageSize"} + "MaxResults":{"shape":"PageSize"}, + "QuerySessionContext":{"shape":"QuerySessionContext"} } }, "GetUnfilteredPartitionsMetadataResponse":{ @@ -8399,11 +8418,15 @@ "SupportedPermissionTypes" ], "members":{ + "Region":{"shape":"ValueString"}, "CatalogId":{"shape":"CatalogIdString"}, "DatabaseName":{"shape":"NameString"}, "Name":{"shape":"NameString"}, "AuditContext":{"shape":"AuditContext"}, - "SupportedPermissionTypes":{"shape":"PermissionTypeList"} + "SupportedPermissionTypes":{"shape":"PermissionTypeList"}, + "SupportedDialect":{"shape":"SupportedDialect"}, + "Permissions":{"shape":"PermissionList"}, + "QuerySessionContext":{"shape":"QuerySessionContext"} } }, "GetUnfilteredTableMetadataResponse":{ @@ -8412,7 +8435,10 @@ "Table":{"shape":"Table"}, "AuthorizedColumns":{"shape":"NameStringList"}, "IsRegisteredWithLakeFormation":{"shape":"Boolean"}, - "CellFilters":{"shape":"ColumnRowFilterList"} + "CellFilters":{"shape":"ColumnRowFilterList"}, + "QueryAuthorizationId":{"shape":"HashString"}, + "ResourceArn":{"shape":"ArnString"}, + "Permissions":{"shape":"PermissionList"} } }, "GetUserDefinedFunctionRequest":{ @@ -10063,6 +10089,10 @@ "type":"integer", "box":true }, + "NullableString":{ + "type":"string", + "box":true + }, "OneInput":{ "type":"list", "member":{"shape":"NodeId"}, @@ -10619,6 +10649,16 @@ "NextToken":{"shape":"SchemaRegistryTokenString"} } }, + "QuerySessionContext":{ + "type":"structure", + "members":{ + "QueryId":{"shape":"HashString"}, + "QueryStartTime":{"shape":"Timestamp"}, + "ClusterId":{"shape":"NullableString"}, + "QueryAuthorizationId":{"shape":"HashString"}, + "AdditionalContext":{"shape":"AdditionalContextMap"} + } + }, "QuoteChar":{ "type":"string", "enum":[ @@ -12215,6 +12255,13 @@ "type":"list", "member":{"shape":"GenericString"} }, + "SupportedDialect":{ + "type":"structure", + "members":{ + "Dialect":{"shape":"ViewDialect"}, + "DialectVersion":{"shape":"ViewDialectVersionString"} + } + }, "Table":{ "type":"structure", "required":["Name"], @@ -13288,6 +13335,19 @@ "min":1, "pattern":"[1-9][0-9]*|[1-9][0-9]*-[1-9][0-9]*" }, + "ViewDialect":{ + "type":"string", + "enum":[ + "REDSHIFT", + "ATHENA", + "SPARK" + ] + }, + "ViewDialectVersionString":{ + "type":"string", + "max":255, + "min":1 + }, "ViewTextString":{ "type":"string", "max":409600 diff --git a/models/apis/glue/2017-03-31/docs-2.json b/models/apis/glue/2017-03-31/docs-2.json index 924a1ad9b47..0dfab87f600 100644 --- a/models/apis/glue/2017-03-31/docs-2.json +++ b/models/apis/glue/2017-03-31/docs-2.json @@ -26,7 +26,7 @@ "CheckSchemaVersionValidity": "

Validates the supplied schema. This call has no side effects, it simply validates using the supplied schema using DataFormat as the format. Since it does not take a schema set name, no compatibility checks are performed.

", "CreateBlueprint": "

Registers a blueprint with Glue.

", "CreateClassifier": "

Creates a classifier in the user's account. This can be a GrokClassifier, an XMLClassifier, a JsonClassifier, or a CsvClassifier, depending on which field of the request is present.

", - "CreateConnection": "

Creates a connection definition in the Data Catalog.

", + "CreateConnection": "

Creates a connection definition in the Data Catalog.

Connections used for creating federated resources require the IAM glue:PassConnection permission.

", "CreateCrawler": "

Creates a new crawler with specified targets, role, configuration, and optional schedule. At least one crawl target must be specified, in the s3Targets field, the jdbcTargets field, or the DynamoDBTargets field.

", "CreateCustomEntityType": "

Creates a custom pattern that is used to detect sensitive data across the columns and rows of your structured data.

Each custom pattern you create specifies a regular expression and an optional list of context words. If no context words are passed only a regular expression is checked.

", "CreateDataQualityRuleset": "

Creates a data quality ruleset with DQDL rules applied to a specified Glue table.

You create the ruleset using the Data Quality Definition Language (DQDL). For more information, see the Glue developer guide.

", @@ -243,6 +243,12 @@ "TriggerUpdate$Actions": "

The actions initiated by this trigger.

" } }, + "AdditionalContextMap": { + "base": null, + "refs": { + "QuerySessionContext$AdditionalContext": "

An opaque string-string map passed by the query engine.

" + } + }, "AdditionalOptionKeys": { "base": null, "refs": { @@ -343,6 +349,7 @@ "ArnString": { "base": null, "refs": { + "GetUnfilteredTableMetadataResponse$ResourceArn": "

The resource ARN of the parent resource extracted from the request.

", "TableOptimizerConfiguration$roleArn": "

A role passed by the caller which gives the service permission to update the resources associated with the optimizer on the caller's behalf.

" } }, @@ -1592,6 +1599,18 @@ "ConnectorDataTarget$Data": "

A map specifying connection options for the node. You can find standard connection options for the corresponding connection type in the Connection parameters section of the Glue documentation.

" } }, + "ContextKey": { + "base": null, + "refs": { + "AdditionalContextMap$key": null + } + }, + "ContextValue": { + "base": null, + "refs": { + "AdditionalContextMap$value": null + } + }, "ContextWords": { "base": null, "refs": { @@ -3344,7 +3363,7 @@ } }, "FederationSourceRetryableException": { - "base": null, + "base": "

A federation source failed, but the operation may be retried.

", "refs": { } }, @@ -4568,10 +4587,13 @@ "GetMLTransformRequest$TransformId": "

The unique identifier of the transform, generated at the time that the transform was created.

", "GetMLTransformResponse$TransformId": "

The unique identifier of the transform, generated at the time that the transform was created.

", "GetResourcePolicyResponse$PolicyHash": "

Contains the hash value associated with this policy.

", + "GetUnfilteredTableMetadataResponse$QueryAuthorizationId": "

A cryptographically generated query identifier generated by Glue or Lake Formation.

", "GluePolicy$PolicyHash": "

Contains the hash value associated with this policy.

", "MLTransform$TransformId": "

The unique transform ID that is generated for the machine learning transform. The ID is guaranteed to be unique and does not change.

", "PutResourcePolicyRequest$PolicyHashCondition": "

The hash value returned when the previous policy was set using PutResourcePolicy. Its purpose is to prevent concurrent modifications of a policy. Do not use this parameter if no previous policy has been set.

", "PutResourcePolicyResponse$PolicyHash": "

A hash of the policy that has just been set. This must be included in a subsequent call that overwrites or updates this policy.

", + "QuerySessionContext$QueryId": "

A unique identifier generated by the query engine for the query.

", + "QuerySessionContext$QueryAuthorizationId": "

A cryptographically generated query identifier generated by Glue or Lake Formation.

", "StartColumnStatisticsTaskRunResponse$ColumnStatisticsTaskRunId": "

The identifier for the column statistics task run.

", "StartDataQualityRuleRecommendationRunRequest$ClientToken": "

Used for idempotency and is recommended to be set to a random ID (such as a UUID) to avoid creating or starting multiple instances of the same resource.

", "StartDataQualityRuleRecommendationRunResponse$RunId": "

The unique run identifier associated with this run.

", @@ -5502,7 +5524,7 @@ "EntityNotFoundException$Message": "

A message describing the problem.

", "FederatedResourceAlreadyExistsException$Message": "

The message describing the problem.

", "FederationSourceException$Message": "

The message describing the problem.

", - "FederationSourceRetryableException$Message": null, + "FederationSourceRetryableException$Message": "

A message describing the problem.

", "GlueEncryptionException$Message": "

The message describing the problem.

", "IdempotentParameterMismatchException$Message": "

A message describing the problem.

", "IllegalBlueprintStateException$Message": "

A message describing the problem.

", @@ -6296,6 +6318,12 @@ "Workflow$MaxConcurrentRuns": "

You can use this parameter to prevent unwanted multiple updates to data, to control costs, or in some cases, to prevent exceeding the maximum number of concurrent runs of any of the component jobs. If you leave this parameter blank, there is no limit to the number of concurrent workflow runs.

" } }, + "NullableString": { + "base": null, + "refs": { + "QuerySessionContext$ClusterId": "

An identifier string for the consumer cluster.

" + } + }, "OneInput": { "base": null, "refs": { @@ -6699,6 +6727,8 @@ "PermissionList": { "base": null, "refs": { + "GetUnfilteredTableMetadataRequest$Permissions": "

The Lake Formation data permissions of the caller on the table. Used to authorize the call when no view context is found.

", + "GetUnfilteredTableMetadataResponse$Permissions": "

The Lake Formation data permissions of the caller on the table. Used to authorize the call when no view context is found.

", "PrincipalPermissions$Permissions": "

The permissions that are granted to the principal.

" } }, @@ -6912,6 +6942,14 @@ "refs": { } }, + "QuerySessionContext": { + "base": "

A structure used as a protocol between query engines and Lake Formation or Glue. Contains both a Lake Formation generated authorization identifier and information from the request's authorization context.

", + "refs": { + "GetUnfilteredPartitionMetadataRequest$QuerySessionContext": "

A structure used as a protocol between query engines and Lake Formation or Glue. Contains both a Lake Formation generated authorization identifier and information from the request's authorization context.

", + "GetUnfilteredPartitionsMetadataRequest$QuerySessionContext": "

A structure used as a protocol between query engines and Lake Formation or Glue. Contains both a Lake Formation generated authorization identifier and information from the request's authorization context.

", + "GetUnfilteredTableMetadataRequest$QuerySessionContext": "

A structure used as a protocol between query engines and Lake Formation or Glue. Contains both a Lake Formation generated authorization identifier and information from the request's authorization context.

" + } + }, "QuoteChar": { "base": null, "refs": { @@ -8054,6 +8092,12 @@ "UpdateDevEndpointRequest$DeleteArguments": "

The list of argument keys to be deleted from the map of arguments used to configure the DevEndpoint.

" } }, + "SupportedDialect": { + "base": "

A structure specifying the dialect and dialect version used by the query engine.

", + "refs": { + "GetUnfilteredTableMetadataRequest$SupportedDialect": "

A structure specifying the dialect and dialect version used by the query engine.

" + } + }, "Table": { "base": "

Represents a collection of related data organized in columns and rows.

", "refs": { @@ -8410,6 +8454,7 @@ "Partition$LastAnalyzedTime": "

The last time at which column statistics were computed for this partition.

", "PartitionInput$LastAccessTime": "

The last time at which the partition was accessed.

", "PartitionInput$LastAnalyzedTime": "

The last time at which column statistics were computed for this partition.

", + "QuerySessionContext$QueryStartTime": "

A timestamp provided by the query engine for when the query started.

", "Table$CreateTime": "

The time when the table definition was created in the Data Catalog.

", "Table$UpdateTime": "

The last time that the table was updated.

", "Table$LastAccessTime": "

The last time that the table was accessed. This is usually taken from HDFS, and might not be reliable.

", @@ -9035,6 +9080,9 @@ "refs": { "BoundedPartitionValueList$member": null, "ConnectionProperties$value": null, + "GetUnfilteredPartitionMetadataRequest$Region": "

Specified only if the base tables belong to a different Amazon Web Services Region.

", + "GetUnfilteredPartitionsMetadataRequest$Region": "

Specified only if the base tables belong to a different Amazon Web Services Region.

", + "GetUnfilteredTableMetadataRequest$Region": "

Specified only if the base tables belong to a different Amazon Web Services Region.

", "PropertyPredicate$Key": "

The key of the property.

", "PropertyPredicate$Value": "

The value of the property.

", "SearchTablesRequest$SearchText": "

A string used for a text search.

Specifying a value in quotes filters based on an exact match to the value.

", @@ -9108,6 +9156,18 @@ "DeleteSchemaVersionsInput$Versions": "

A version range may be supplied which may be of the format:

" } }, + "ViewDialect": { + "base": null, + "refs": { + "SupportedDialect$Dialect": "

The dialect of the query engine.

" + } + }, + "ViewDialectVersionString": { + "base": null, + "refs": { + "SupportedDialect$DialectVersion": "

The version of the dialect of the query engine. For example, 3.0.0.

" + } + }, "ViewTextString": { "base": null, "refs": { diff --git a/models/apis/lakeformation/2017-03-31/api-2.json b/models/apis/lakeformation/2017-03-31/api-2.json index d0727bd0d30..58ac6ab55ba 100644 --- a/models/apis/lakeformation/2017-03-31/api-2.json +++ b/models/apis/lakeformation/2017-03-31/api-2.json @@ -931,6 +931,11 @@ "PartitionValues":{"shape":"PartitionValuesList"} } }, + "AdditionalContextMap":{ + "type":"map", + "key":{"shape":"ContextKey"}, + "value":{"shape":"ContextValue"} + }, "AllRowsWildcard":{ "type":"structure", "members":{ @@ -1125,6 +1130,16 @@ }, "exception":true }, + "ContextKey":{ + "type":"string", + "max":128, + "min":1 + }, + "ContextValue":{ + "type":"string", + "max":256, + "min":0 + }, "CreateDataCellsFilterRequest":{ "type":"structure", "required":["TableData"], @@ -1715,7 +1730,9 @@ "Permissions":{"shape":"PermissionList"}, "DurationSeconds":{"shape":"CredentialTimeoutDurationSecondInteger"}, "AuditContext":{"shape":"AuditContext"}, - "SupportedPermissionTypes":{"shape":"PermissionTypeList"} + "SupportedPermissionTypes":{"shape":"PermissionTypeList"}, + "S3Path":{"shape":"PathString"}, + "QuerySessionContext":{"shape":"QuerySessionContext"} } }, "GetTemporaryGlueTableCredentialsResponse":{ @@ -1724,7 +1741,8 @@ "AccessKeyId":{"shape":"AccessKeyIdString"}, "SecretAccessKey":{"shape":"SecretAccessKeyString"}, "SessionToken":{"shape":"SessionTokenString"}, - "Expiration":{"shape":"ExpirationTimestamp"} + "Expiration":{"shape":"ExpirationTimestamp"}, + "VendedS3Path":{"shape":"PathStringList"} } }, "GetWorkUnitResultsRequest":{ @@ -1809,6 +1827,12 @@ "members":{ } }, + "HashString":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*" + }, "IAMRoleArn":{ "type":"string", "pattern":"arn:aws:iam::[0-9]*:role/.*" @@ -2073,6 +2097,10 @@ "type":"boolean", "box":true }, + "NullableString":{ + "type":"string", + "box":true + }, "NumberOfBytes":{"type":"long"}, "NumberOfItems":{"type":"long"}, "NumberOfMilliseconds":{"type":"long"}, @@ -2135,6 +2163,11 @@ "type":"list", "member":{"shape":"PartitionObjects"} }, + "PathString":{"type":"string"}, + "PathStringList":{ + "type":"list", + "member":{"shape":"PathString"} + }, "Permission":{ "type":"string", "enum":[ @@ -2256,6 +2289,16 @@ "min":1, "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*" }, + "QuerySessionContext":{ + "type":"structure", + "members":{ + "QueryId":{"shape":"HashString"}, + "QueryStartTime":{"shape":"Timestamp"}, + "ClusterId":{"shape":"NullableString"}, + "QueryAuthorizationId":{"shape":"HashString"}, + "AdditionalContext":{"shape":"AdditionalContextMap"} + } + }, "QueryStateString":{ "type":"string", "enum":[ diff --git a/models/apis/lakeformation/2017-03-31/docs-2.json b/models/apis/lakeformation/2017-03-31/docs-2.json index f2ae734fa2a..95cbabb8baf 100644 --- a/models/apis/lakeformation/2017-03-31/docs-2.json +++ b/models/apis/lakeformation/2017-03-31/docs-2.json @@ -87,6 +87,12 @@ "WriteOperation$AddObject": "

A new object to add to the governed table.

" } }, + "AdditionalContextMap": { + "base": null, + "refs": { + "QuerySessionContext$AdditionalContext": "

An opaque string-string map passed by the query engine.

" + } + }, "AllRowsWildcard": { "base": "

A structure that you pass to indicate you want all rows in a filter.

", "refs": { @@ -306,6 +312,18 @@ "refs": { } }, + "ContextKey": { + "base": null, + "refs": { + "AdditionalContextMap$key": null + } + }, + "ContextValue": { + "base": null, + "refs": { + "AdditionalContextMap$value": null + } + }, "CreateDataCellsFilterRequest": { "base": null, "refs": { @@ -624,7 +642,7 @@ "ExternalFilteringConfiguration": { "base": "

Configuration for enabling external data filtering for third-party applications to access data managed by Lake Formation .

", "refs": { - "CreateLakeFormationIdentityCenterConfigurationRequest$ExternalFiltering": "

A list of the account IDs of Amazon Web Services accounts of third-party applications that are allowed to to access data managed by Lake Formation.

", + "CreateLakeFormationIdentityCenterConfigurationRequest$ExternalFiltering": "

A list of the account IDs of Amazon Web Services accounts of third-party applications that are allowed to access data managed by Lake Formation.

", "DescribeLakeFormationIdentityCenterConfigurationResponse$ExternalFiltering": "

Indicates if external filtering is enabled.

", "UpdateLakeFormationIdentityCenterConfigurationRequest$ExternalFiltering": "

A list of the account IDs of Amazon Web Services accounts of third-party applications that are allowed to access data managed by Lake Formation.

" } @@ -812,6 +830,13 @@ "refs": { } }, + "HashString": { + "base": null, + "refs": { + "QuerySessionContext$QueryId": "

A unique identifier generated by the query engine for the query.

", + "QuerySessionContext$QueryAuthorizationId": "

A cryptographically generated query identifier generated by Glue or Lake Formation.

" + } + }, "IAMRoleArn": { "base": null, "refs": { @@ -1101,6 +1126,12 @@ "UpdateResourceRequest$HybridAccessEnabled": "

Specifies whether the data access of tables pointing to the location can be managed by both Lake Formation permissions as well as Amazon S3 bucket policies.

" } }, + "NullableString": { + "base": null, + "refs": { + "QuerySessionContext$ClusterId": "

An identifier string for the consumer cluster.

" + } + }, "NumberOfBytes": { "base": null, "refs": { @@ -1201,6 +1232,19 @@ "GetTableObjectsResponse$Objects": "

A list of objects organized by partition keys.

" } }, + "PathString": { + "base": null, + "refs": { + "GetTemporaryGlueTableCredentialsRequest$S3Path": "

The Amazon S3 path for the table.

", + "PathStringList$member": null + } + }, + "PathStringList": { + "base": null, + "refs": { + "GetTemporaryGlueTableCredentialsResponse$VendedS3Path": "

The Amazon S3 path for the temporary credentials.

" + } + }, "Permission": { "base": null, "refs": { @@ -1315,6 +1359,12 @@ "QueryPlanningContext$DatabaseName": "

The database containing the table.

" } }, + "QuerySessionContext": { + "base": "

A structure used as a protocol between query engines and Lake Formation or Glue. Contains both a Lake Formation generated authorization identifier and information from the request's authorization context.

", + "refs": { + "GetTemporaryGlueTableCredentialsRequest$QuerySessionContext": "

A structure used as a protocol between query engines and Lake Formation or Glue. Contains both a Lake Formation generated authorization identifier and information from the request's authorization context.

" + } + }, "QueryStateString": { "base": null, "refs": { @@ -1673,6 +1723,7 @@ "refs": { "GetTableObjectsRequest$QueryAsOfTime": "

The time as of when to read the governed table contents. If not set, the most recent transaction commit time is used. Cannot be specified along with TransactionId.

", "QueryPlanningContext$QueryAsOfTime": "

The time as of when to read the table contents. If not set, the most recent transaction commit time will be used. Cannot be specified along with TransactionId.

", + "QuerySessionContext$QueryStartTime": "

A timestamp provided by the query engine for when the query started.

", "TransactionDescription$TransactionStartTime": "

The time when the transaction started.

", "TransactionDescription$TransactionEndTime": "

The time when the transaction committed or aborted, if it is not currently active.

" } diff --git a/models/apis/mediaconnect/2018-11-14/api-2.json b/models/apis/mediaconnect/2018-11-14/api-2.json index 4d58fe996b1..7eb801064a0 100644 --- a/models/apis/mediaconnect/2018-11-14/api-2.json +++ b/models/apis/mediaconnect/2018-11-14/api-2.json @@ -548,6 +548,40 @@ } ] }, + "DescribeFlowSourceMetadata": { + "name": "DescribeFlowSourceMetadata", + "http": { + "method": "GET", + "requestUri": "/v1/flows/{flowArn}/source-metadata", + "responseCode": 200 + }, + "input": { + "shape": "DescribeFlowSourceMetadataRequest" + }, + "output": { + "shape": "DescribeFlowSourceMetadataResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "ServiceUnavailableException" + }, + { + "shape": "TooManyRequestsException" + } + ] + }, "DescribeGateway": { "name": "DescribeGateway", "http": { @@ -2785,6 +2819,40 @@ } } }, + "DescribeFlowSourceMetadataRequest": { + "type": "structure", + "members": { + "FlowArn": { + "shape": "__string", + "location": "uri", + "locationName": "flowArn" + } + }, + "required": [ + "FlowArn" + ] + }, + "DescribeFlowSourceMetadataResponse": { + "type": "structure", + "members": { + "FlowArn": { + "shape": "__string", + "locationName": "flowArn" + }, + "Messages": { + "shape": "__listOfMessageDetail", + "locationName": "messages" + }, + "Timestamp": { + "shape": "__timestampIso8601", + "locationName": "timestamp" + }, + "TransportMediaInfo": { + "shape": "TransportMediaInfo", + "locationName": "transportMediaInfo" + } + } + }, "DescribeGatewayInstanceRequest": { "type": "structure", "members": { @@ -3273,6 +3341,23 @@ "httpStatusCode": 403 } }, + "FrameResolution": { + "type": "structure", + "members": { + "FrameHeight": { + "shape": "__integer", + "locationName": "frameHeight" + }, + "FrameWidth": { + "shape": "__integer", + "locationName": "frameWidth" + } + }, + "required": [ + "FrameWidth", + "FrameHeight" + ] + }, "Gateway": { "type": "structure", "members": { @@ -5153,6 +5238,90 @@ "Protocol" ] }, + "TransportMediaInfo": { + "type": "structure", + "members": { + "Programs": { + "shape": "__listOfTransportStreamProgram", + "locationName": "programs" + } + }, + "required": [ + "Programs" + ] + }, + "TransportStream": { + "type": "structure", + "members": { + "Channels": { + "shape": "__integer", + "locationName": "channels" + }, + "Codec": { + "shape": "__string", + "locationName": "codec" + }, + "FrameRate": { + "shape": "__string", + "locationName": "frameRate" + }, + "FrameResolution": { + "shape": "FrameResolution", + "locationName": "frameResolution" + }, + "Pid": { + "shape": "__integer", + "locationName": "pid" + }, + "SampleRate": { + "shape": "__integer", + "locationName": "sampleRate" + }, + "SampleSize": { + "shape": "__integer", + "locationName": "sampleSize" + }, + "StreamType": { + "shape": "__string", + "locationName": "streamType" + } + }, + "required": [ + "StreamType", + "Pid" + ] + }, + "TransportStreamProgram": { + "type": "structure", + "members": { + "PcrPid": { + "shape": "__integer", + "locationName": "pcrPid" + }, + "ProgramName": { + "shape": "__string", + "locationName": "programName" + }, + "ProgramNumber": { + "shape": "__integer", + "locationName": "programNumber" + }, + "ProgramPid": { + "shape": "__integer", + "locationName": "programPid" + }, + "Streams": { + "shape": "__listOfTransportStream", + "locationName": "streams" + } + }, + "required": [ + "ProgramPid", + "PcrPid", + "ProgramNumber", + "Streams" + ] + }, "UntagResourceRequest": { "type": "structure", "members": { @@ -6118,6 +6287,18 @@ "shape": "Source" } }, + "__listOfTransportStream": { + "type": "list", + "member": { + "shape": "TransportStream" + } + }, + "__listOfTransportStreamProgram": { + "type": "list", + "member": { + "shape": "TransportStreamProgram" + } + }, "__listOfVpcInterface": { "type": "list", "member": { diff --git a/models/apis/mediaconnect/2018-11-14/docs-2.json b/models/apis/mediaconnect/2018-11-14/docs-2.json index 3052e84581c..dea828ce2fb 100644 --- a/models/apis/mediaconnect/2018-11-14/docs-2.json +++ b/models/apis/mediaconnect/2018-11-14/docs-2.json @@ -17,6 +17,7 @@ "DeregisterGatewayInstance" : "Deregisters an instance. Before you deregister an instance, all bridges running on the instance must be stopped. If you want to deregister an instance without stopping the bridges, you must use the --force option.", "DescribeBridge" : "Displays the details of a bridge.", "DescribeFlow" : "Displays the details of a flow. The response includes the flow ARN, name, and Availability Zone, as well as details about the source, outputs, and entitlements.", + "DescribeFlowSourceMetadata" : "Displays details of the flow's source stream. The response contains information about the contents of the stream and its programs.", "DescribeGateway" : "Displays the details of a gateway. The response includes the gateway ARN, name, and CIDR blocks, as well as details about the networks.", "DescribeGatewayInstance" : "Displays the details of an instance.", "DescribeOffering" : "Displays the details of an offering. The response includes the offering description, duration, outbound bandwidth, price, and Amazon Resource Name (ARN).", @@ -311,6 +312,10 @@ "base" : "The result of a successful DescribeFlow request.", "refs" : { } }, + "DescribeFlowSourceMetadataResponse" : { + "base" : "The result of a successful DescribeFlowSourceMetadata request.", + "refs" : { } + }, "DescribeGatewayInstanceResponse" : { "base" : "The result of a successful DescribeGatewayInstance request.", "refs" : { } @@ -453,6 +458,12 @@ "base" : "Exception raised by AWS Elemental MediaConnect. See the error message and documentation for the operation for more information on the cause of this exception.", "refs" : { } }, + "FrameResolution" : { + "base" : "The frame resolution used by the video stream.", + "refs" : { + "TransportStream$FrameResolution" : null + } + }, "Gateway" : { "base" : "The settings for a gateway, including its networks.", "refs" : { @@ -908,6 +919,24 @@ "Source$Transport" : "Attributes related to the transport stream that are used in the source." } }, + "TransportMediaInfo" : { + "base" : "The metadata of the transport stream in the current flow's source.", + "refs" : { + "DescribeFlowSourceMetadataResponse$TransportMediaInfo" : null + } + }, + "TransportStream" : { + "base" : "The metadata of an elementary transport stream.", + "refs" : { + "__listOfTransportStream$member" : null + } + }, + "TransportStreamProgram" : { + "base" : "The metadata of a single transport stream program.", + "refs" : { + "__listOfTransportStreamProgram$member" : null + } + }, "UpdateBridgeFlowSourceRequest" : { "base" : "Update the flow source of the bridge.", "refs" : { @@ -1106,6 +1135,8 @@ "EgressGatewayBridge$MaxBitrate" : "The maximum expected bitrate (in bps) of the egress bridge.", "Entitlement$DataTransferSubscriberFeePercent" : "Percentage from 0-100 of the data transfer cost to be billed to the subscriber.", "FailoverConfig$RecoveryWindow" : "Search window time to look for dash-7 packets", + "FrameResolution$FrameHeight" : "The number of pixels in the height of the video frame.", + "FrameResolution$FrameWidth" : "The number of pixels in the width of the video frame.", "GatewayInstance$RunningBridgeCount" : "The running bridge count.", "GrantEntitlementRequest$DataTransferSubscriberFeePercent" : "Percentage from 0-100 of the data transfer cost to be billed to the subscriber.", "IngressGatewayBridge$MaxBitrate" : "The maximum expected bitrate (in bps) of the ingress bridge.", @@ -1138,6 +1169,13 @@ "Transport$SenderControlPort" : "The port that the flow uses to send outbound requests to initiate connection with the sender.", "Transport$SmoothingLatency": "The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC streams.", "Transport$SourceListenerPort" : "Source port for SRT-caller protocol.", + "TransportStream$Channels" : "The number of channels in the audio stream.", + "TransportStream$Pid" : "The Packet ID (PID) as it is reported in the Program Map Table.", + "TransportStream$SampleRate" : "The sample rate used by the audio stream.", + "TransportStream$SampleSize" : "The sample bit size used by the audio stream.", + "TransportStreamProgram$PcrPid" : "The Program Clock Reference (PCR) Packet ID (PID) as it is reported in the Program Association Table.", + "TransportStreamProgram$ProgramNumber" : "The program number as it is reported in the Program Association Table.", + "TransportStreamProgram$ProgramPid" : "The program Packet ID (PID) as it is reported in the Program Association Table.", "UpdateBridgeNetworkOutputRequest$Port" : "The network output port.", "UpdateBridgeNetworkOutputRequest$Ttl" : "The network output TTL.", "UpdateBridgeNetworkSourceRequest$Port" : "The network source port.", @@ -1315,6 +1353,7 @@ "base" : null, "refs" : { "Bridge$BridgeMessages" : null, + "DescribeFlowSourceMetadataResponse$Messages" : "Provides a status code and message regarding issues found with the flow source metadata.", "Gateway$GatewayMessages" : null, "GatewayInstance$InstanceMessages" : null } @@ -1352,6 +1391,18 @@ "Flow$Sources" : null } }, + "__listOfTransportStream" : { + "base" : null, + "refs" : { + "TransportStreamProgram$Streams" : "The list of elementary transport streams in the program. The list includes video, audio, and data streams." + } + }, + "__listOfTransportStreamProgram" : { + "base" : null, + "refs" : { + "TransportMediaInfo$Programs" : "The list of transport stream programs in the current flow's source." + } + }, "__listOfVpcInterface" : { "base" : null, "refs" : { @@ -1447,6 +1498,7 @@ "DeleteFlowResponse$FlowArn" : "The ARN of the flow that was deleted.", "DeleteGatewayResponse$GatewayArn" : "The Amazon Resource Name (ARN) of the gateway that was deleted.", "DeregisterGatewayInstanceResponse$GatewayInstanceArn" : "The Amazon Resource Name (ARN) of the instance.", + "DescribeFlowSourceMetadataResponse$FlowArn" : "The ARN of the flow that DescribeFlowSourceMetadata was performed on.", "DestinationConfiguration$DestinationIp" : "The IP address where contents of the media stream will be sent.", "DestinationConfiguration$OutboundIp" : "The IP address that the receiver requires in order to establish a connection with the flow. This value is represented by the elastic network interface IP address of the VPC. This field applies only to outputs that use the CDI or ST 2110 JPEG XS protocol.", "DestinationConfigurationRequest$DestinationIp" : "The IP address where you want MediaConnect to send contents of the media stream.", @@ -1585,6 +1637,10 @@ "Transport$SenderIpAddress" : "The IP address that the flow communicates with to initiate connection with the sender.", "Transport$SourceListenerAddress" : "Source IP or domain name for SRT-caller protocol.", "Transport$StreamId" : "The stream ID that you want to use for this transport. This parameter applies only to Zixi and SRT caller-based streams.", + "TransportStream$Codec" : "The codec used by the stream.", + "TransportStream$FrameRate" : "The frame rate used by the video stream.", + "TransportStream$StreamType" : "The Stream Type as it is reported in the Program Map Table.", + "TransportStreamProgram$ProgramName" : "The program name as it is reported in the Program Association Table.", "UpdateBridgeFlowSourceRequest$FlowArn" : "The ARN of the cloud flow to use as a source of this bridge.", "UpdateBridgeNetworkOutputRequest$IpAddress" : "The network output IP Address.", "UpdateBridgeNetworkOutputRequest$NetworkName" : "The network output's gateway network name.", @@ -1633,6 +1689,12 @@ "__listOf__string$member" : null, "__mapOf__string$member" : null } + }, + "__timestampIso8601" : { + "base" : null, + "refs" : { + "DescribeFlowSourceMetadataResponse$Timestamp" : "The timestamp of the most recent change in metadata for this flow’s source." + } } } } \ No newline at end of file diff --git a/models/apis/mediaconnect/2018-11-14/endpoint-rule-set-1.json b/models/apis/mediaconnect/2018-11-14/endpoint-rule-set-1.json index 278e6fff6ec..df2b9dcae72 100644 --- a/models/apis/mediaconnect/2018-11-14/endpoint-rule-set-1.json +++ b/models/apis/mediaconnect/2018-11-14/endpoint-rule-set-1.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -58,293 +57,258 @@ "type": "error" }, { - "conditions": [], - "type": "tree", - "rules": [ + "conditions": [ { - "conditions": [ + "fn": "booleanEquals", + "argv": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" - }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" + "ref": "UseDualStack" }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" + true + ] } - ] + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" } - ] + ], + "type": "tree" }, { - "conditions": [], - "type": "tree", + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], "rules": [ { "conditions": [ { - "fn": "isSet", + "fn": "aws.partition", "argv": [ { "ref": "Region" } - ] + ], + "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ { - "fn": "aws.partition", + "fn": "booleanEquals", "argv": [ { - "ref": "Region" - } - ], - "assign": "PartitionResult" + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseFIPS" - }, - true + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } ] }, { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", + "fn": "getAttr", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://mediaconnect-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } + "ref": "PartitionResult" + }, + "supportsDualStack" ] } ] - }, + } + ], + "rules": [ { "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" + "endpoint": { + "url": "https://mediaconnect-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } - ] + ], + "type": "tree" }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] }, true ] } ], - "type": "tree", "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://mediaconnect-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - } - ] - }, { "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" + "endpoint": { + "url": "https://mediaconnect-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } - ] + ], + "type": "tree" }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", + "fn": "getAttr", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://mediaconnect.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } + "ref": "PartitionResult" + }, + "supportsDualStack" ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } - ] - }, - { - "conditions": [], - "type": "tree", + ], "rules": [ { "conditions": [], "endpoint": { - "url": "https://mediaconnect.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://mediaconnect.{Region}.{PartitionResult#dualStackDnsSuffix}", "properties": {}, "headers": {} }, "type": "endpoint" } - ] + ], + "type": "tree" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } - ] + ], + "type": "tree" + }, + { + "conditions": [], + "endpoint": { + "url": "https://mediaconnect.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } - ] - }, - { - "conditions": [], - "error": "Invalid Configuration: Missing Region", - "type": "error" + ], + "type": "tree" } - ] + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } \ No newline at end of file diff --git a/models/apis/networkmonitor/2023-08-01/api-2.json b/models/apis/networkmonitor/2023-08-01/api-2.json new file mode 100644 index 00000000000..68463333db8 --- /dev/null +++ b/models/apis/networkmonitor/2023-08-01/api-2.json @@ -0,0 +1,867 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2023-08-01", + "endpointPrefix":"networkmonitor", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"Amazon CloudWatch Network Monitor", + "serviceId":"NetworkMonitor", + "signatureVersion":"v4", + "signingName":"networkmonitor", + "uid":"networkmonitor-2023-08-01" + }, + "operations":{ + "CreateMonitor":{ + "name":"CreateMonitor", + "http":{ + "method":"POST", + "requestUri":"/monitors", + "responseCode":200 + }, + "input":{"shape":"CreateMonitorInput"}, + "output":{"shape":"CreateMonitorOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "idempotent":true + }, + "CreateProbe":{ + "name":"CreateProbe", + "http":{ + "method":"POST", + "requestUri":"/monitors/{monitorName}/probes", + "responseCode":200 + }, + "input":{"shape":"CreateProbeInput"}, + "output":{"shape":"CreateProbeOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "idempotent":true + }, + "DeleteMonitor":{ + "name":"DeleteMonitor", + "http":{ + "method":"DELETE", + "requestUri":"/monitors/{monitorName}", + "responseCode":200 + }, + "input":{"shape":"DeleteMonitorInput"}, + "output":{"shape":"DeleteMonitorOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "idempotent":true + }, + "DeleteProbe":{ + "name":"DeleteProbe", + "http":{ + "method":"DELETE", + "requestUri":"/monitors/{monitorName}/probes/{probeId}", + "responseCode":200 + }, + "input":{"shape":"DeleteProbeInput"}, + "output":{"shape":"DeleteProbeOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "idempotent":true + }, + "GetMonitor":{ + "name":"GetMonitor", + "http":{ + "method":"GET", + "requestUri":"/monitors/{monitorName}", + "responseCode":200 + }, + "input":{"shape":"GetMonitorInput"}, + "output":{"shape":"GetMonitorOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, + "GetProbe":{ + "name":"GetProbe", + "http":{ + "method":"GET", + "requestUri":"/monitors/{monitorName}/probes/{probeId}", + "responseCode":200 + }, + "input":{"shape":"GetProbeInput"}, + "output":{"shape":"GetProbeOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, + "ListMonitors":{ + "name":"ListMonitors", + "http":{ + "method":"GET", + "requestUri":"/monitors", + "responseCode":200 + }, + "input":{"shape":"ListMonitorsInput"}, + "output":{"shape":"ListMonitorsOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceInput"}, + "output":{"shape":"ListTagsForResourceOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"} + ] + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"TagResourceInput"}, + "output":{"shape":"TagResourceOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"} + ], + "idempotent":true + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"UntagResourceInput"}, + "output":{"shape":"UntagResourceOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"} + ], + "idempotent":true + }, + "UpdateMonitor":{ + "name":"UpdateMonitor", + "http":{ + "method":"PATCH", + "requestUri":"/monitors/{monitorName}", + "responseCode":200 + }, + "input":{"shape":"UpdateMonitorInput"}, + "output":{"shape":"UpdateMonitorOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "idempotent":true + }, + "UpdateProbe":{ + "name":"UpdateProbe", + "http":{ + "method":"PATCH", + "requestUri":"/monitors/{monitorName}/probes/{probeId}", + "responseCode":200 + }, + "input":{"shape":"UpdateProbeInput"}, + "output":{"shape":"UpdateProbeOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "idempotent":true + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "AddressFamily":{ + "type":"string", + "enum":[ + "IPV4", + "IPV6" + ] + }, + "AggregationPeriod":{ + "type":"long", + "box":true, + "min":30 + }, + "Arn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"arn:.*" + }, + "ConflictException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "CreateMonitorInput":{ + "type":"structure", + "required":["monitorName"], + "members":{ + "monitorName":{"shape":"ResourceName"}, + "probes":{"shape":"CreateMonitorProbeInputList"}, + "aggregationPeriod":{"shape":"AggregationPeriod"}, + "clientToken":{ + "shape":"String", + "idempotencyToken":true + }, + "tags":{"shape":"TagMap"} + } + }, + "CreateMonitorOutput":{ + "type":"structure", + "required":[ + "monitorArn", + "monitorName", + "state" + ], + "members":{ + "monitorArn":{"shape":"MonitorArn"}, + "monitorName":{"shape":"ResourceName"}, + "state":{"shape":"MonitorState"}, + "aggregationPeriod":{"shape":"AggregationPeriod"}, + "tags":{"shape":"TagMap"} + } + }, + "CreateMonitorProbeInput":{ + "type":"structure", + "required":[ + "sourceArn", + "destination", + "protocol" + ], + "members":{ + "sourceArn":{"shape":"Arn"}, + "destination":{"shape":"Destination"}, + "destinationPort":{"shape":"Port"}, + "protocol":{"shape":"Protocol"}, + "packetSize":{"shape":"PacketSize"}, + "probeTags":{"shape":"TagMap"} + } + }, + "CreateMonitorProbeInputList":{ + "type":"list", + "member":{"shape":"CreateMonitorProbeInput"} + }, + "CreateProbeInput":{ + "type":"structure", + "required":[ + "monitorName", + "probe" + ], + "members":{ + "monitorName":{ + "shape":"ResourceName", + "location":"uri", + "locationName":"monitorName" + }, + "probe":{"shape":"ProbeInput"}, + "clientToken":{ + "shape":"String", + "idempotencyToken":true + }, + "tags":{"shape":"TagMap"} + } + }, + "CreateProbeOutput":{ + "type":"structure", + "required":[ + "sourceArn", + "destination", + "protocol" + ], + "members":{ + "probeId":{"shape":"ProbeId"}, + "probeArn":{"shape":"Arn"}, + "sourceArn":{"shape":"Arn"}, + "destination":{"shape":"Destination"}, + "destinationPort":{"shape":"Port"}, + "protocol":{"shape":"Protocol"}, + "packetSize":{"shape":"PacketSize"}, + "addressFamily":{"shape":"AddressFamily"}, + "vpcId":{"shape":"VpcId"}, + "state":{"shape":"ProbeState"}, + "createdAt":{"shape":"Iso8601Timestamp"}, + "modifiedAt":{"shape":"Iso8601Timestamp"}, + "tags":{"shape":"TagMap"} + } + }, + "DeleteMonitorInput":{ + "type":"structure", + "required":["monitorName"], + "members":{ + "monitorName":{ + "shape":"ResourceName", + "location":"uri", + "locationName":"monitorName" + } + } + }, + "DeleteMonitorOutput":{ + "type":"structure", + "members":{ + } + }, + "DeleteProbeInput":{ + "type":"structure", + "required":[ + "monitorName", + "probeId" + ], + "members":{ + "monitorName":{ + "shape":"ResourceName", + "location":"uri", + "locationName":"monitorName" + }, + "probeId":{ + "shape":"ProbeId", + "location":"uri", + "locationName":"probeId" + } + } + }, + "DeleteProbeOutput":{ + "type":"structure", + "members":{ + } + }, + "Destination":{ + "type":"string", + "max":255, + "min":1 + }, + "GetMonitorInput":{ + "type":"structure", + "required":["monitorName"], + "members":{ + "monitorName":{ + "shape":"ResourceName", + "location":"uri", + "locationName":"monitorName" + } + } + }, + "GetMonitorOutput":{ + "type":"structure", + "required":[ + "monitorArn", + "monitorName", + "state", + "aggregationPeriod", + "createdAt", + "modifiedAt" + ], + "members":{ + "monitorArn":{"shape":"MonitorArn"}, + "monitorName":{"shape":"ResourceName"}, + "state":{"shape":"MonitorState"}, + "aggregationPeriod":{"shape":"AggregationPeriod"}, + "tags":{"shape":"TagMap"}, + "probes":{"shape":"ProbeList"}, + "createdAt":{"shape":"Iso8601Timestamp"}, + "modifiedAt":{"shape":"Iso8601Timestamp"} + } + }, + "GetProbeInput":{ + "type":"structure", + "required":[ + "monitorName", + "probeId" + ], + "members":{ + "monitorName":{ + "shape":"ResourceName", + "location":"uri", + "locationName":"monitorName" + }, + "probeId":{ + "shape":"ProbeId", + "location":"uri", + "locationName":"probeId" + } + } + }, + "GetProbeOutput":{ + "type":"structure", + "required":[ + "sourceArn", + "destination", + "protocol" + ], + "members":{ + "probeId":{"shape":"ProbeId"}, + "probeArn":{"shape":"Arn"}, + "sourceArn":{"shape":"Arn"}, + "destination":{"shape":"Destination"}, + "destinationPort":{"shape":"Port"}, + "protocol":{"shape":"Protocol"}, + "packetSize":{"shape":"PacketSize"}, + "addressFamily":{"shape":"AddressFamily"}, + "vpcId":{"shape":"VpcId"}, + "state":{"shape":"ProbeState"}, + "createdAt":{"shape":"Iso8601Timestamp"}, + "modifiedAt":{"shape":"Iso8601Timestamp"}, + "tags":{"shape":"TagMap"} + } + }, + "InternalServerException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true, + "retryable":{"throttling":false} + }, + "Iso8601Timestamp":{"type":"timestamp"}, + "ListMonitorsInput":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"PaginationToken", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "state":{ + "shape":"String", + "location":"querystring", + "locationName":"state" + } + } + }, + "ListMonitorsOutput":{ + "type":"structure", + "required":["monitors"], + "members":{ + "monitors":{"shape":"MonitorList"}, + "nextToken":{"shape":"String"} + } + }, + "ListTagsForResourceInput":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"Arn", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "ListTagsForResourceOutput":{ + "type":"structure", + "members":{ + "tags":{"shape":"TagMap"} + } + }, + "MaxResults":{ + "type":"integer", + "box":true, + "max":25, + "min":1 + }, + "MonitorArn":{ + "type":"string", + "max":512, + "min":20, + "pattern":"arn:.*" + }, + "MonitorList":{ + "type":"list", + "member":{"shape":"MonitorSummary"} + }, + "MonitorState":{ + "type":"string", + "enum":[ + "PENDING", + "ACTIVE", + "INACTIVE", + "ERROR", + "DELETING" + ] + }, + "MonitorSummary":{ + "type":"structure", + "required":[ + "monitorArn", + "monitorName", + "state" + ], + "members":{ + "monitorArn":{"shape":"MonitorArn"}, + "monitorName":{"shape":"ResourceName"}, + "state":{"shape":"MonitorState"}, + "aggregationPeriod":{"shape":"AggregationPeriod"}, + "tags":{"shape":"TagMap"} + } + }, + "PacketSize":{ + "type":"integer", + "box":true, + "max":8500, + "min":56 + }, + "PaginationToken":{ + "type":"string", + "max":4096, + "min":0 + }, + "Port":{ + "type":"integer", + "box":true, + "max":65536, + "min":0 + }, + "Probe":{ + "type":"structure", + "required":[ + "sourceArn", + "destination", + "protocol" + ], + "members":{ + "probeId":{"shape":"ProbeId"}, + "probeArn":{"shape":"Arn"}, + "sourceArn":{"shape":"Arn"}, + "destination":{"shape":"Destination"}, + "destinationPort":{"shape":"Port"}, + "protocol":{"shape":"Protocol"}, + "packetSize":{"shape":"PacketSize"}, + "addressFamily":{"shape":"AddressFamily"}, + "vpcId":{"shape":"VpcId"}, + "state":{"shape":"ProbeState"}, + "createdAt":{"shape":"Iso8601Timestamp"}, + "modifiedAt":{"shape":"Iso8601Timestamp"}, + "tags":{"shape":"TagMap"} + } + }, + "ProbeId":{ + "type":"string", + "pattern":"probe-[a-z0-9A-Z-]{21,64}" + }, + "ProbeInput":{ + "type":"structure", + "required":[ + "sourceArn", + "destination", + "protocol" + ], + "members":{ + "sourceArn":{"shape":"Arn"}, + "destination":{"shape":"Destination"}, + "destinationPort":{"shape":"Port"}, + "protocol":{"shape":"Protocol"}, + "packetSize":{"shape":"PacketSize"}, + "tags":{"shape":"TagMap"} + } + }, + "ProbeList":{ + "type":"list", + "member":{"shape":"Probe"} + }, + "ProbeState":{ + "type":"string", + "enum":[ + "PENDING", + "ACTIVE", + "INACTIVE", + "ERROR", + "DELETING", + "DELETED" + ] + }, + "Protocol":{ + "type":"string", + "enum":[ + "TCP", + "ICMP" + ] + }, + "ResourceName":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[a-zA-Z0-9_-]+" + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{ + "httpStatusCode":402, + "senderFault":true + }, + "exception":true + }, + "String":{"type":"string"}, + "TagKey":{ + "type":"string", + "max":128, + "min":1 + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":200, + "min":0 + }, + "TagMap":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"}, + "max":200, + "min":0 + }, + "TagResourceInput":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{ + "shape":"Arn", + "location":"uri", + "locationName":"resourceArn" + }, + "tags":{"shape":"TagMap"} + } + }, + "TagResourceOutput":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0 + }, + "ThrottlingException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true, + "retryable":{"throttling":true} + }, + "UntagResourceInput":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"Arn", + "location":"uri", + "locationName":"resourceArn" + }, + "tagKeys":{ + "shape":"TagKeyList", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceOutput":{ + "type":"structure", + "members":{ + } + }, + "UpdateMonitorInput":{ + "type":"structure", + "required":[ + "monitorName", + "aggregationPeriod" + ], + "members":{ + "monitorName":{ + "shape":"ResourceName", + "location":"uri", + "locationName":"monitorName" + }, + "aggregationPeriod":{"shape":"AggregationPeriod"} + } + }, + "UpdateMonitorOutput":{ + "type":"structure", + "required":[ + "monitorArn", + "monitorName", + "state" + ], + "members":{ + "monitorArn":{"shape":"MonitorArn"}, + "monitorName":{"shape":"ResourceName"}, + "state":{"shape":"MonitorState"}, + "aggregationPeriod":{"shape":"AggregationPeriod"}, + "tags":{"shape":"TagMap"} + } + }, + "UpdateProbeInput":{ + "type":"structure", + "required":[ + "monitorName", + "probeId" + ], + "members":{ + "monitorName":{ + "shape":"ResourceName", + "location":"uri", + "locationName":"monitorName" + }, + "probeId":{ + "shape":"ProbeId", + "location":"uri", + "locationName":"probeId" + }, + "state":{"shape":"ProbeState"}, + "destination":{"shape":"Destination"}, + "destinationPort":{"shape":"Port"}, + "protocol":{"shape":"Protocol"}, + "packetSize":{"shape":"PacketSize"} + } + }, + "UpdateProbeOutput":{ + "type":"structure", + "required":[ + "sourceArn", + "destination", + "protocol" + ], + "members":{ + "probeId":{"shape":"ProbeId"}, + "probeArn":{"shape":"Arn"}, + "sourceArn":{"shape":"Arn"}, + "destination":{"shape":"Destination"}, + "destinationPort":{"shape":"Port"}, + "protocol":{"shape":"Protocol"}, + "packetSize":{"shape":"PacketSize"}, + "addressFamily":{"shape":"AddressFamily"}, + "vpcId":{"shape":"VpcId"}, + "state":{"shape":"ProbeState"}, + "createdAt":{"shape":"Iso8601Timestamp"}, + "modifiedAt":{"shape":"Iso8601Timestamp"}, + "tags":{"shape":"TagMap"} + } + }, + "ValidationException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "VpcId":{ + "type":"string", + "pattern":"vpc-[a-zA-Z0-9]{8,32}" + } + } +} diff --git a/models/apis/networkmonitor/2023-08-01/docs-2.json b/models/apis/networkmonitor/2023-08-01/docs-2.json new file mode 100644 index 00000000000..9109ff8c359 --- /dev/null +++ b/models/apis/networkmonitor/2023-08-01/docs-2.json @@ -0,0 +1,450 @@ +{ + "version": "2.0", + "service": "

Amazon CloudWatch Network Monitor is an Amazon Web Services active network monitoring service that identifies if a network issues exists within the Amazon Web Services network or your own company network. Within Network Monitor you'll choose the source VPCs and subnets from the Amazon Web Services network in which you operate and then you'll choose the destination IP addresses from your on-premises network. From these sources and destinations, Network Monitor creates a monitor containing all the possible source and destination combinations, each of which is called a probe, within a single monitor. These probes then monitor network traffic to help you identify where network issues might be affecting your traffic.

For more information, see Using Amazon CloudWatch Network Monitor in the Amazon CloudWatch User Guide.

", + "operations": { + "CreateMonitor": "

Creates a monitor between a source subnet and destination IP address. Within a monitor you'll create one or more probes that monitor network traffic between your source Amazon Web Services VPC subnets and your destination IP addresses. Each probe then aggregates and sends metrics to Amazon CloudWatch.

", + "CreateProbe": "

Create a probe within a monitor. Once you create a probe, and it begins monitoring your network traffic, you'll incur billing charges for that probe.

", + "DeleteMonitor": "

Deletes a specified monitor.

", + "DeleteProbe": "

Deletes the specified monitor. Once a probe is deleted you'll no longer incur any billing fees for that probe.

", + "GetMonitor": "

Returns details about a specific monitor.

", + "GetProbe": "

Returns the details about a probe. You'll need both the monitorName and probeId.

", + "ListMonitors": "

Returns a list of all of your monitors.

", + "ListTagsForResource": "

Lists the tags assigned to this resource.

", + "TagResource": "

Adds key-value pairs to a monitor or probe.

", + "UntagResource": "

Removes a key-value pair from a monitor or probe.

", + "UpdateMonitor": "

Updates the aggregationPeriod for a monitor. Monitors support an aggregationPeriod of either 30 or 60 seconds.

", + "UpdateProbe": "

Updates a monitor probe. This action requires both the monitorName and probeId parameters. Run ListMonitors to get a list of monitor names. Run GetMonitor to get a list of probes and probe IDs.

" + }, + "shapes": { + "AccessDeniedException": { + "base": "

You do not have sufficient access to perform this action.

", + "refs": { + } + }, + "AddressFamily": { + "base": null, + "refs": { + "CreateProbeOutput$addressFamily": "

Indicates whether the IP address is IPV4 or IPV6.

", + "GetProbeOutput$addressFamily": "

Indicates whether the IP address is IPV4 or IPV6.

", + "Probe$addressFamily": "

The IPv4 or IPv6 address for the probe.

", + "UpdateProbeOutput$addressFamily": "

The updated IP address family. This will be either IPV4 or IPV6.

" + } + }, + "AggregationPeriod": { + "base": null, + "refs": { + "CreateMonitorInput$aggregationPeriod": "

The time, in seconds, that metrics are aggregated and sent to Amazon CloudWatch. Valid values are either 30 or 60.

", + "CreateMonitorOutput$aggregationPeriod": "

The number of seconds that metrics are aggregated by and sent to Amazon CloudWatch. This will be either 30 or 60.

", + "GetMonitorOutput$aggregationPeriod": "

The aggregation period for the specified monitor.

", + "MonitorSummary$aggregationPeriod": "

The time, in seconds, that metrics are collected and sent to Amazon CloudWatch. Valid values are either 30 or 60.

", + "UpdateMonitorInput$aggregationPeriod": "

The aggregation time, in seconds, to change to. This must be either 30 or 60.

", + "UpdateMonitorOutput$aggregationPeriod": "

The changed aggregation period.

" + } + }, + "Arn": { + "base": null, + "refs": { + "CreateMonitorProbeInput$sourceArn": "

The ARN of the subnet.

", + "CreateProbeOutput$probeArn": "

The ARN of the probe.

", + "CreateProbeOutput$sourceArn": "

The ARN of the probe.

", + "GetProbeOutput$probeArn": "

The ARN of the probe.

", + "GetProbeOutput$sourceArn": "

The ARN of the probe.

", + "ListTagsForResourceInput$resourceArn": "

The

", + "Probe$probeArn": "

The ARN of the probe.

", + "Probe$sourceArn": "

The ARN of the probe source subnet.

", + "ProbeInput$sourceArn": "

The ARN of the subnet.

", + "TagResourceInput$resourceArn": "

The ARN of the monitor or probe to tag.

", + "UntagResourceInput$resourceArn": "

The ARN of the monitor or probe that the tag should be removed from.

", + "UpdateProbeOutput$probeArn": "

The updated ARN of the probe.

", + "UpdateProbeOutput$sourceArn": "

The updated ARN of the source subnet.

" + } + }, + "ConflictException": { + "base": "

This operation attempted to create a resource that already exists.

", + "refs": { + } + }, + "CreateMonitorInput": { + "base": null, + "refs": { + } + }, + "CreateMonitorOutput": { + "base": null, + "refs": { + } + }, + "CreateMonitorProbeInput": { + "base": "

Creates a monitor probe.

", + "refs": { + "CreateMonitorProbeInputList$member": null + } + }, + "CreateMonitorProbeInputList": { + "base": null, + "refs": { + "CreateMonitorInput$probes": "

Displays a list of all of the probes created for a monitor.

" + } + }, + "CreateProbeInput": { + "base": null, + "refs": { + } + }, + "CreateProbeOutput": { + "base": null, + "refs": { + } + }, + "DeleteMonitorInput": { + "base": null, + "refs": { + } + }, + "DeleteMonitorOutput": { + "base": null, + "refs": { + } + }, + "DeleteProbeInput": { + "base": null, + "refs": { + } + }, + "DeleteProbeOutput": { + "base": null, + "refs": { + } + }, + "Destination": { + "base": null, + "refs": { + "CreateMonitorProbeInput$destination": "

The destination IP address. This will be either IPV4 or IPV6.

", + "CreateProbeOutput$destination": "

The destination IP address for the monitor. This will be either an IPv4 or IPv6 address.

", + "GetProbeOutput$destination": "

The destination IP address for the monitor. This will be either an IPv4 or IPv6 address.

", + "Probe$destination": "

The destination for the probe. This should be either an IPV4 or IPV6.

", + "ProbeInput$destination": "

The destination IP address. This will be either IPV4 or IPV6.

", + "UpdateProbeInput$destination": "

The updated IP address for the probe destination. This must be either an IPv4 or IPv6 address.

", + "UpdateProbeOutput$destination": "

The updated destination IP address for the probe.

" + } + }, + "GetMonitorInput": { + "base": null, + "refs": { + } + }, + "GetMonitorOutput": { + "base": null, + "refs": { + } + }, + "GetProbeInput": { + "base": null, + "refs": { + } + }, + "GetProbeOutput": { + "base": null, + "refs": { + } + }, + "InternalServerException": { + "base": "

The request processing has failed because of an unknown error, exception or failure.

", + "refs": { + } + }, + "Iso8601Timestamp": { + "base": null, + "refs": { + "CreateProbeOutput$createdAt": "

The time and date that the probe was created.

", + "CreateProbeOutput$modifiedAt": "

The time and date when the probe was last modified.

", + "GetMonitorOutput$createdAt": "

The time and date when the monitor was created.

", + "GetMonitorOutput$modifiedAt": "

The time and date when the monitor was last modified.

", + "GetProbeOutput$createdAt": "

The time and date that the probe was created.

", + "GetProbeOutput$modifiedAt": "

The time and date that the probe was last modified.

", + "Probe$createdAt": "

The time and date the probe was created.

", + "Probe$modifiedAt": "

The time and date that the probe was last modified.

", + "UpdateProbeOutput$createdAt": "

The time and date that the probe was created.

", + "UpdateProbeOutput$modifiedAt": "

The time and date that the probe was last updated.

" + } + }, + "ListMonitorsInput": { + "base": null, + "refs": { + } + }, + "ListMonitorsOutput": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceInput": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceOutput": { + "base": null, + "refs": { + } + }, + "MaxResults": { + "base": null, + "refs": { + "ListMonitorsInput$maxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

If MaxResults is given a value larger than 100, only 100 results are returned.

" + } + }, + "MonitorArn": { + "base": null, + "refs": { + "CreateMonitorOutput$monitorArn": "

The ARN of the monitor.

", + "GetMonitorOutput$monitorArn": "

The ARN of the selected monitor.

", + "MonitorSummary$monitorArn": "

The ARN of the monitor.

", + "UpdateMonitorOutput$monitorArn": "

The ARN of the monitor that was updated.

" + } + }, + "MonitorList": { + "base": null, + "refs": { + "ListMonitorsOutput$monitors": "

Lists individual details about each of your monitors.

" + } + }, + "MonitorState": { + "base": null, + "refs": { + "CreateMonitorOutput$state": "

The state of the monitor.

", + "GetMonitorOutput$state": "

Returns a list of the state of each monitor.

", + "MonitorSummary$state": "

The state of the monitor.

", + "UpdateMonitorOutput$state": "

The state of the updated monitor.

" + } + }, + "MonitorSummary": { + "base": "

Displays summary information about a monitor.

", + "refs": { + "MonitorList$member": null + } + }, + "PacketSize": { + "base": null, + "refs": { + "CreateMonitorProbeInput$packetSize": "

The size of the packets sent between the source and destination. This will be a number between 56 and 8500.

", + "CreateProbeOutput$packetSize": "

The size of the packets sent between the source and destination. This will be a number between 56 and 8500.

", + "GetProbeOutput$packetSize": "

The size of the packets sent between the source and destination. This will be a number between 56 and 8500.

", + "Probe$packetSize": "

The size of the packets traveling between the source and destination. This must be a number between 56 and

", + "ProbeInput$packetSize": "

The size of the packets sent between the source and destination. This will be a number between 56 and 8500.

", + "UpdateProbeInput$packetSize": "

he updated packets size for network traffic between the source and destination. This must be a number between 56 and 8500.

", + "UpdateProbeOutput$packetSize": "

The updated packet size for the probe.

" + } + }, + "PaginationToken": { + "base": null, + "refs": { + "ListMonitorsInput$nextToken": "

The token for the next page of results.

" + } + }, + "Port": { + "base": null, + "refs": { + "CreateMonitorProbeInput$destinationPort": "

The port associated with the destination. This is required only if the protocol is TCP and must be a number between 1 and 65536.

", + "CreateProbeOutput$destinationPort": "

The port associated with the destination. This is required only if the protocol is TCP and must be a number between 1 and 65536.

", + "GetProbeOutput$destinationPort": "

The port associated with the destination. This is required only if the protocol is TCP and must be a number between 1 and 65536.

", + "Probe$destinationPort": "

The destination port for the probe. This is required only if the protocol is TCP and must be a number between 1 and 65536.

", + "ProbeInput$destinationPort": "

The port associated with the destination. This is required only if the protocol is TCP and must be a number between 1 and 65536.

", + "UpdateProbeInput$destinationPort": "

The updated port for the probe destination. This is required only if the protocol is TCP and must be a number between 1 and 65536.

", + "UpdateProbeOutput$destinationPort": "

The updated destination port. This will be a number between 1 and 65536.

" + } + }, + "Probe": { + "base": "

Describes information about a monitor probe.

", + "refs": { + "ProbeList$member": null + } + }, + "ProbeId": { + "base": null, + "refs": { + "CreateProbeOutput$probeId": "

The ID of the probe for which details are returned.

", + "DeleteProbeInput$probeId": "

The ID of the probe to delete. Run GetMonitor to get a lst of all probes and probe IDs associated with the monitor.

", + "GetProbeInput$probeId": "

The ID of the probe to get information about. Run GetMonitor action to get a list of probes and probe IDs for the monitor.

", + "GetProbeOutput$probeId": "

The ID of the probe for which details are returned.

", + "Probe$probeId": "

The ID of the probe.

", + "UpdateProbeInput$probeId": "

Run GetMonitor to get a list of probes and probe IDs.

", + "UpdateProbeOutput$probeId": "

The updated ID of the probe.

" + } + }, + "ProbeInput": { + "base": "

Defines a probe when creating a probe or monitor.

", + "refs": { + "CreateProbeInput$probe": "

Describes the details of an individual probe for a monitor.

" + } + }, + "ProbeList": { + "base": null, + "refs": { + "GetMonitorOutput$probes": "

The details about each probe associated with that monitor.

" + } + }, + "ProbeState": { + "base": null, + "refs": { + "CreateProbeOutput$state": "

The state of the probe.

", + "GetProbeOutput$state": "

The state of the probe.

", + "Probe$state": "

The state of the probe.

", + "UpdateProbeInput$state": "

The state of the probe update.

", + "UpdateProbeOutput$state": "

The state of the updated probe.

" + } + }, + "Protocol": { + "base": null, + "refs": { + "CreateMonitorProbeInput$protocol": "

The protocol used for the network traffic between the source and destination. This will be either TCP or ICMP.

", + "CreateProbeOutput$protocol": "

The protocol used for the network traffic between the source and destination. This will be either TCP or ICMP.

", + "GetProbeOutput$protocol": "

The protocol used for the network traffic between the source and destination. This will be either TCP or ICMP.

", + "Probe$protocol": "

The network protocol for the destination. This can be either TCP or ICMP. If the protocol is TCP, then port is also required.

", + "ProbeInput$protocol": "

The protocol used for the network traffic between the source and destination. This will be either TCP or ICMP.

", + "UpdateProbeInput$protocol": "

The updated network protocol for the destination. This can be either TCP or ICMP. If the protocol is TCP, then port is also required.

", + "UpdateProbeOutput$protocol": "

The updated protocol for the probe.

" + } + }, + "ResourceName": { + "base": null, + "refs": { + "CreateMonitorInput$monitorName": "

The name identifying the monitor. It can contain only letters, underscores (_), or dashes (-), and can be up to 255 characters.

", + "CreateMonitorOutput$monitorName": "

The name of the monitor.

", + "CreateProbeInput$monitorName": "

The name of the monitor to associated with the probe. To get a list of available monitors, use ListMonitors.

", + "DeleteMonitorInput$monitorName": "

The name of the monitor to delete. Use the ListMonitors action to get a list of your current monitors.

", + "DeleteProbeInput$monitorName": "

The name of the monitor to delete. For a list of the available monitors, use the ListMonitors action.

", + "GetMonitorInput$monitorName": "

The name of the monitor that details are returned for.

", + "GetMonitorOutput$monitorName": "

The name of the monitor. To get a list of the current monitors and their names, use the ListMonitors action.

", + "GetProbeInput$monitorName": "

The name of the monitor associated with the probe. Run ListMonitors to get a list of monitor names.

", + "MonitorSummary$monitorName": "

The name of the monitor.

", + "UpdateMonitorInput$monitorName": "

The name of the monitor to update. Run ListMonitors to get a list of monitor names.

", + "UpdateMonitorOutput$monitorName": "

The name of the monitor that was updated.

", + "UpdateProbeInput$monitorName": "

The name of the monitor that the probe was updated for.

" + } + }, + "ResourceNotFoundException": { + "base": "

The specified resource does not exist.

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

This request exceeds a service quota.

", + "refs": { + } + }, + "String": { + "base": null, + "refs": { + "AccessDeniedException$message": null, + "ConflictException$message": null, + "CreateMonitorInput$clientToken": "

Unique, case-sensitive identifier to ensure the idempotency of the request. Only returned if a client token was provided in the request.

", + "CreateProbeInput$clientToken": "

Unique, case-sensitive identifier to ensure the idempotency of the request. Only returned if a client token was provided in the request.

", + "InternalServerException$message": null, + "ListMonitorsInput$state": "

The list of all monitors and their states.

", + "ListMonitorsOutput$nextToken": "

The token for the next page of results.

", + "ResourceNotFoundException$message": null, + "ServiceQuotaExceededException$message": null, + "ThrottlingException$message": null, + "ValidationException$message": null + } + }, + "TagKey": { + "base": null, + "refs": { + "TagKeyList$member": null, + "TagMap$key": null + } + }, + "TagKeyList": { + "base": null, + "refs": { + "UntagResourceInput$tagKeys": "

The key-value pa

" + } + }, + "TagMap": { + "base": null, + "refs": { + "CreateMonitorInput$tags": "

The list of key-value pairs created and assigned to the monitor.

", + "CreateMonitorOutput$tags": "

The list of key-value pairs assigned to the monitor.

", + "CreateMonitorProbeInput$probeTags": "

The list of key-value pairs created and assigned to the monitor.

", + "CreateProbeInput$tags": "

The list of key-value pairs created and assigned to the probe.

", + "CreateProbeOutput$tags": "

The list of key-value pairs assigned to the probe.

", + "GetMonitorOutput$tags": "

The list of key-value pairs assigned to the monitor.

", + "GetProbeOutput$tags": "

The list of key-value pairs assigned to the probe.

", + "ListTagsForResourceOutput$tags": "

Lists the tags assigned to the resource.

", + "MonitorSummary$tags": "

The list of key-value pairs assigned to the monitor.

", + "Probe$tags": "

The list of key-value pairs created and assigned to the probe.

", + "ProbeInput$tags": "

The list of key-value pairs created and assigned to the monitor.

", + "TagResourceInput$tags": "

The list of key-value pairs assigned to the monitor or probe.

", + "UpdateMonitorOutput$tags": "

The list of key-value pairs associated with the monitor.

", + "UpdateProbeOutput$tags": "

Update tags for a probe.

" + } + }, + "TagResourceInput": { + "base": null, + "refs": { + } + }, + "TagResourceOutput": { + "base": null, + "refs": { + } + }, + "TagValue": { + "base": null, + "refs": { + "TagMap$value": null + } + }, + "ThrottlingException": { + "base": "

The request was denied due to request throttling

", + "refs": { + } + }, + "UntagResourceInput": { + "base": null, + "refs": { + } + }, + "UntagResourceOutput": { + "base": null, + "refs": { + } + }, + "UpdateMonitorInput": { + "base": null, + "refs": { + } + }, + "UpdateMonitorOutput": { + "base": null, + "refs": { + } + }, + "UpdateProbeInput": { + "base": null, + "refs": { + } + }, + "UpdateProbeOutput": { + "base": null, + "refs": { + } + }, + "ValidationException": { + "base": "

One of the parameters for the request is not valid.

", + "refs": { + } + }, + "VpcId": { + "base": null, + "refs": { + "CreateProbeOutput$vpcId": "

The ID of the source VPC or subnet.

", + "GetProbeOutput$vpcId": "

The ID of the source VPC or subnet.

", + "Probe$vpcId": "

The ID of the source VPC subnet.

", + "UpdateProbeOutput$vpcId": "

The updated ID of the source VPC subnet ID.

" + } + } + } +} diff --git a/models/apis/networkmonitor/2023-08-01/endpoint-rule-set-1.json b/models/apis/networkmonitor/2023-08-01/endpoint-rule-set-1.json new file mode 100644 index 00000000000..9e27c8d314a --- /dev/null +++ b/models/apis/networkmonitor/2023-08-01/endpoint-rule-set-1.json @@ -0,0 +1,350 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://networkmonitor-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://networkmonitor-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://networkmonitor.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://networkmonitor.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "type": "tree" + } + ] +} \ No newline at end of file diff --git a/models/apis/networkmonitor/2023-08-01/endpoint-tests-1.json b/models/apis/networkmonitor/2023-08-01/endpoint-tests-1.json new file mode 100644 index 00000000000..9031dc3e274 --- /dev/null +++ b/models/apis/networkmonitor/2023-08-01/endpoint-tests-1.json @@ -0,0 +1,314 @@ +{ + "testCases": [ + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://networkmonitor-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://networkmonitor-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://networkmonitor.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://networkmonitor.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://networkmonitor-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://networkmonitor-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://networkmonitor.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://networkmonitor.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://networkmonitor-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://networkmonitor-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://networkmonitor.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://networkmonitor.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://networkmonitor-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://networkmonitor.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://networkmonitor-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://networkmonitor.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/networkmonitor/2023-08-01/examples-1.json b/models/apis/networkmonitor/2023-08-01/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/networkmonitor/2023-08-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/networkmonitor/2023-08-01/paginators-1.json b/models/apis/networkmonitor/2023-08-01/paginators-1.json new file mode 100644 index 00000000000..d885a0fba7a --- /dev/null +++ b/models/apis/networkmonitor/2023-08-01/paginators-1.json @@ -0,0 +1,10 @@ +{ + "pagination": { + "ListMonitors": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "monitors" + } + } +} diff --git a/models/apis/networkmonitor/2023-08-01/smoke.json b/models/apis/networkmonitor/2023-08-01/smoke.json new file mode 100644 index 00000000000..a9756813e4a --- /dev/null +++ b/models/apis/networkmonitor/2023-08-01/smoke.json @@ -0,0 +1,6 @@ +{ + "version": 1, + "defaultRegion": "us-west-2", + "testCases": [ + ] +} diff --git a/models/apis/networkmonitor/2023-08-01/waiters-2.json b/models/apis/networkmonitor/2023-08-01/waiters-2.json new file mode 100644 index 00000000000..13f60ee66be --- /dev/null +++ b/models/apis/networkmonitor/2023-08-01/waiters-2.json @@ -0,0 +1,5 @@ +{ + "version": 2, + "waiters": { + } +} diff --git a/models/apis/omics/2022-11-28/docs-2.json b/models/apis/omics/2022-11-28/docs-2.json index 4b4eff63543..65ed71cdabd 100644 --- a/models/apis/omics/2022-11-28/docs-2.json +++ b/models/apis/omics/2022-11-28/docs-2.json @@ -51,7 +51,7 @@ "ListAnnotationImportJobs": "

Retrieves a list of annotation import jobs.

", "ListAnnotationStoreVersions": "

Lists the versions of an annotation store.

", "ListAnnotationStores": "

Retrieves a list of annotation stores.

", - "ListMultipartReadSetUploads": "

Lists all multipart read set uploads and their statuses.

", + "ListMultipartReadSetUploads": "

Lists multipart read set uploads and for in progress uploads. Once the upload is completed, a read set is created and the upload will no longer be returned in the respone.

", "ListReadSetActivationJobs": "

Retrieves a list of read set activation jobs.

", "ListReadSetExportJobs": "

Retrieves a list of read set export jobs.

", "ListReadSetImportJobs": "

Retrieves a list of read set import jobs.

", @@ -492,7 +492,7 @@ "CreateWorkflowRequestStorageCapacityInteger": { "base": null, "refs": { - "CreateWorkflowRequest$storageCapacity": "

A storage capacity for the workflow in gigabytes.

" + "CreateWorkflowRequest$storageCapacity": "

A storage capacity for the workflow in gibibytes.

" } }, "CreateWorkflowResponse": { diff --git a/models/apis/s3/2006-03-01/examples-1.json b/models/apis/s3/2006-03-01/examples-1.json index 691ad24a6c1..2a15cc22002 100644 --- a/models/apis/s3/2006-03-01/examples-1.json +++ b/models/apis/s3/2006-03-01/examples-1.json @@ -84,13 +84,10 @@ "CreateBucket": [ { "input": { - "Bucket": "examplebucket", - "CreateBucketConfiguration": { - "LocationConstraint": "eu-west-1" - } + "Bucket": "examplebucket" }, "output": { - "Location": "http://examplebucket..s3.amazonaws.com/" + "Location": "/examplebucket" }, "comments": { "input": { @@ -98,16 +95,19 @@ "output": { } }, - "description": "The following example creates a bucket. The request specifies an AWS region where to create the bucket.", - "id": "to-create-a-bucket-in-a-specific-region-1483399072992", - "title": "To create a bucket in a specific region" + "description": "The following example creates a bucket.", + "id": "to-create-a-bucket--1472851826060", + "title": "To create a bucket " }, { "input": { - "Bucket": "examplebucket" + "Bucket": "examplebucket", + "CreateBucketConfiguration": { + "LocationConstraint": "eu-west-1" + } }, "output": { - "Location": "/examplebucket" + "Location": "http://examplebucket..s3.amazonaws.com/" }, "comments": { "input": { @@ -115,9 +115,9 @@ "output": { } }, - "description": "The following example creates a bucket.", - "id": "to-create-a-bucket--1472851826060", - "title": "To create a bucket " + "description": "The following example creates a bucket. The request specifies an AWS region where to create the bucket.", + "id": "to-create-a-bucket-in-a-specific-region-1483399072992", + "title": "To create a bucket in a specific region" } ], "CreateMultipartUpload": [ @@ -257,10 +257,8 @@ "DeleteObject": [ { "input": { - "Bucket": "examplebucket", - "Key": "objectkey.jpg" - }, - "output": { + "Bucket": "ExampleBucket", + "Key": "HappyFace.jpg" }, "comments": { "input": { @@ -268,14 +266,16 @@ "output": { } }, - "description": "The following example deletes an object from an S3 bucket.", - "id": "to-delete-an-object-1472850136595", - "title": "To delete an object" + "description": "The following example deletes an object from a non-versioned bucket.", + "id": "to-delete-an-object-from-a-non-versioned-bucket-1481588533089", + "title": "To delete an object (from a non-versioned bucket)" }, { "input": { - "Bucket": "ExampleBucket", - "Key": "HappyFace.jpg" + "Bucket": "examplebucket", + "Key": "objectkey.jpg" + }, + "output": { }, "comments": { "input": { @@ -283,9 +283,9 @@ "output": { } }, - "description": "The following example deletes an object from a non-versioned bucket.", - "id": "to-delete-an-object-from-a-non-versioned-bucket-1481588533089", - "title": "To delete an object (from a non-versioned bucket)" + "description": "The following example deletes an object from an S3 bucket.", + "id": "to-delete-an-object-1472850136595", + "title": "To delete an object" } ], "DeleteObjectTagging": [ @@ -728,17 +728,18 @@ { "input": { "Bucket": "examplebucket", - "Key": "HappyFace.jpg" + "Key": "SampleFile.txt", + "Range": "bytes=0-9" }, "output": { "AcceptRanges": "bytes", - "ContentLength": "3191", - "ContentType": "image/jpeg", - "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "LastModified": "Thu, 15 Dec 2016 01:19:41 GMT", + "ContentLength": "10", + "ContentRange": "bytes 0-9/43", + "ContentType": "text/plain", + "ETag": "\"0d94420ffd0bc68cd3d152506b97a9cc\"", + "LastModified": "Thu, 09 Oct 2014 22:57:28 GMT", "Metadata": { }, - "TagCount": 2, "VersionId": "null" }, "comments": { @@ -747,25 +748,24 @@ "output": { } }, - "description": "The following example retrieves an object for an S3 bucket.", - "id": "to-retrieve-an-object-1481827837012", - "title": "To retrieve an object" + "description": "The following example retrieves an object for an S3 bucket. The request specifies the range header to retrieve a specific byte range.", + "id": "to-retrieve-a-byte-range-of-an-object--1481832674603", + "title": "To retrieve a byte range of an object " }, { "input": { "Bucket": "examplebucket", - "Key": "SampleFile.txt", - "Range": "bytes=0-9" + "Key": "HappyFace.jpg" }, "output": { "AcceptRanges": "bytes", - "ContentLength": "10", - "ContentRange": "bytes 0-9/43", - "ContentType": "text/plain", - "ETag": "\"0d94420ffd0bc68cd3d152506b97a9cc\"", - "LastModified": "Thu, 09 Oct 2014 22:57:28 GMT", + "ContentLength": "3191", + "ContentType": "image/jpeg", + "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", + "LastModified": "Thu, 15 Dec 2016 01:19:41 GMT", "Metadata": { }, + "TagCount": 2, "VersionId": "null" }, "comments": { @@ -774,9 +774,9 @@ "output": { } }, - "description": "The following example retrieves an object for an S3 bucket. The request specifies the range header to retrieve a specific byte range.", - "id": "to-retrieve-a-byte-range-of-an-object--1481832674603", - "title": "To retrieve a byte range of an object " + "description": "The following example retrieves an object for an S3 bucket.", + "id": "to-retrieve-an-object-1481827837012", + "title": "To retrieve an object" } ], "GetObjectAcl": [ @@ -989,47 +989,37 @@ "ListMultipartUploads": [ { "input": { - "Bucket": "examplebucket", - "KeyMarker": "nextkeyfrompreviousresponse", - "MaxUploads": "2", - "UploadIdMarker": "valuefrompreviousresponse" + "Bucket": "examplebucket" }, "output": { - "Bucket": "acl1", - "IsTruncated": true, - "KeyMarker": "", - "MaxUploads": "2", - "NextKeyMarker": "someobjectkey", - "NextUploadIdMarker": "examplelo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--", - "UploadIdMarker": "", "Uploads": [ { "Initiated": "2014-05-01T05:40:58.000Z", "Initiator": { - "DisplayName": "ownder-display-name", + "DisplayName": "display-name", "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" }, "Key": "JavaFile", "Owner": { - "DisplayName": "mohanataws", - "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" + "DisplayName": "display-name", + "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" }, "StorageClass": "STANDARD", - "UploadId": "gZ30jIqlUa.CInXklLQtSMJITdUnoZ1Y5GACB5UckOtspm5zbDMCkPF_qkfZzMiFZ6dksmcnqxJyIBvQMG9X9Q--" + "UploadId": "examplelUa.CInXklLQtSMJITdUnoZ1Y5GACB5UckOtspm5zbDMCkPF_qkfZzMiFZ6dksmcnqxJyIBvQMG9X9Q--" }, { "Initiated": "2014-05-01T05:41:27.000Z", "Initiator": { - "DisplayName": "ownder-display-name", + "DisplayName": "display-name", "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" }, "Key": "JavaFile", "Owner": { - "DisplayName": "ownder-display-name", + "DisplayName": "display-name", "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" }, "StorageClass": "STANDARD", - "UploadId": "b7tZSqIlo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--" + "UploadId": "examplelo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--" } ] }, @@ -1039,43 +1029,53 @@ "output": { } }, - "description": "The following example specifies the upload-id-marker and key-marker from previous truncated response to retrieve next setup of multipart uploads.", - "id": "list-next-set-of-multipart-uploads-when-previous-result-is-truncated-1482428106748", - "title": "List next set of multipart uploads when previous result is truncated" + "description": "The following example lists in-progress multipart uploads on a specific bucket.", + "id": "to-list-in-progress-multipart-uploads-on-a-bucket-1481852775260", + "title": "To list in-progress multipart uploads on a bucket" }, { "input": { - "Bucket": "examplebucket" + "Bucket": "examplebucket", + "KeyMarker": "nextkeyfrompreviousresponse", + "MaxUploads": "2", + "UploadIdMarker": "valuefrompreviousresponse" }, "output": { + "Bucket": "acl1", + "IsTruncated": true, + "KeyMarker": "", + "MaxUploads": "2", + "NextKeyMarker": "someobjectkey", + "NextUploadIdMarker": "examplelo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--", + "UploadIdMarker": "", "Uploads": [ { "Initiated": "2014-05-01T05:40:58.000Z", "Initiator": { - "DisplayName": "display-name", + "DisplayName": "ownder-display-name", "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" }, "Key": "JavaFile", "Owner": { - "DisplayName": "display-name", - "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" + "DisplayName": "mohanataws", + "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" }, "StorageClass": "STANDARD", - "UploadId": "examplelUa.CInXklLQtSMJITdUnoZ1Y5GACB5UckOtspm5zbDMCkPF_qkfZzMiFZ6dksmcnqxJyIBvQMG9X9Q--" + "UploadId": "gZ30jIqlUa.CInXklLQtSMJITdUnoZ1Y5GACB5UckOtspm5zbDMCkPF_qkfZzMiFZ6dksmcnqxJyIBvQMG9X9Q--" }, { "Initiated": "2014-05-01T05:41:27.000Z", "Initiator": { - "DisplayName": "display-name", + "DisplayName": "ownder-display-name", "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" }, "Key": "JavaFile", "Owner": { - "DisplayName": "display-name", + "DisplayName": "ownder-display-name", "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" }, "StorageClass": "STANDARD", - "UploadId": "examplelo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--" + "UploadId": "b7tZSqIlo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--" } ] }, @@ -1085,9 +1085,9 @@ "output": { } }, - "description": "The following example lists in-progress multipart uploads on a specific bucket.", - "id": "to-list-in-progress-multipart-uploads-on-a-bucket-1481852775260", - "title": "To list in-progress multipart uploads on a bucket" + "description": "The following example specifies the upload-id-marker and key-marker from previous truncated response to retrieve next setup of multipart uploads.", + "id": "list-next-set-of-multipart-uploads-when-previous-result-is-truncated-1482428106748", + "title": "List next set of multipart uploads when previous result is truncated" } ], "ListObjectVersions": [ @@ -1569,11 +1569,14 @@ "input": { "Body": "filetoupload", "Bucket": "examplebucket", - "Key": "objectkey" + "Key": "exampleobject", + "ServerSideEncryption": "AES256", + "Tagging": "key1=value1&key2=value2" }, "output": { "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "VersionId": "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ" + "ServerSideEncryption": "AES256", + "VersionId": "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt" }, "comments": { "input": { @@ -1581,19 +1584,19 @@ "output": { } }, - "description": "The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.", - "id": "to-create-an-object-1483147613675", - "title": "To create an object." + "description": "The following example uploads an object. The request specifies the optional server-side encryption option. The request also specifies optional object tags. If the bucket is versioning enabled, S3 returns version ID in response.", + "id": "to-upload-an-object-and-specify-server-side-encryption-and-object-tags-1483398331831", + "title": "To upload an object and specify server-side encryption and object tags" }, { "input": { - "Body": "HappyFace.jpg", + "Body": "filetoupload", "Bucket": "examplebucket", - "Key": "HappyFace.jpg" + "Key": "objectkey" }, "output": { "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "VersionId": "tpf3zF08nBplQK1XLOefGskR7mGDwcDk" + "VersionId": "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ" }, "comments": { "input": { @@ -1601,23 +1604,22 @@ "output": { } }, - "description": "The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file syntax. S3 returns VersionId of the newly created object.", - "id": "to-upload-an-object-1481760101010", - "title": "To upload an object" + "description": "The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.", + "id": "to-create-an-object-1483147613675", + "title": "To create an object." }, { "input": { - "Body": "filetoupload", + "Body": "HappyFace.jpg", "Bucket": "examplebucket", - "Key": "exampleobject", - "Metadata": { - "metadata1": "value1", - "metadata2": "value2" - } + "Key": "HappyFace.jpg", + "ServerSideEncryption": "AES256", + "StorageClass": "STANDARD_IA" }, "output": { "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "VersionId": "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0" + "ServerSideEncryption": "AES256", + "VersionId": "CG612hodqujkf8FaaNfp8U..FIhLROcp" }, "comments": { "input": { @@ -1625,9 +1627,9 @@ "output": { } }, - "description": "The following example creates an object. The request also specifies optional metadata. If the bucket is versioning enabled, S3 returns version ID in response.", - "id": "to-upload-object-and-specify-user-defined-metadata-1483396974757", - "title": "To upload object and specify user-defined metadata" + "description": "The following example uploads an object. The request specifies optional request headers to directs S3 to use specific storage class and use server-side encryption.", + "id": "to-upload-an-object-(specify-optional-headers)", + "title": "To upload an object (specify optional headers)" }, { "input": { @@ -1652,16 +1654,17 @@ }, { "input": { - "Body": "HappyFace.jpg", + "Body": "filetoupload", "Bucket": "examplebucket", - "Key": "HappyFace.jpg", - "ServerSideEncryption": "AES256", - "StorageClass": "STANDARD_IA" + "Key": "exampleobject", + "Metadata": { + "metadata1": "value1", + "metadata2": "value2" + } }, "output": { "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "ServerSideEncryption": "AES256", - "VersionId": "CG612hodqujkf8FaaNfp8U..FIhLROcp" + "VersionId": "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0" }, "comments": { "input": { @@ -1669,22 +1672,20 @@ "output": { } }, - "description": "The following example uploads an object. The request specifies optional request headers to directs S3 to use specific storage class and use server-side encryption.", - "id": "to-upload-an-object-(specify-optional-headers)", - "title": "To upload an object (specify optional headers)" + "description": "The following example creates an object. The request also specifies optional metadata. If the bucket is versioning enabled, S3 returns version ID in response.", + "id": "to-upload-object-and-specify-user-defined-metadata-1483396974757", + "title": "To upload object and specify user-defined metadata" }, { "input": { + "ACL": "authenticated-read", "Body": "filetoupload", "Bucket": "examplebucket", - "Key": "exampleobject", - "ServerSideEncryption": "AES256", - "Tagging": "key1=value1&key2=value2" + "Key": "exampleobject" }, "output": { "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "ServerSideEncryption": "AES256", - "VersionId": "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt" + "VersionId": "Kirh.unyZwjQ69YxcQLA8z4F5j3kJJKr" }, "comments": { "input": { @@ -1692,20 +1693,19 @@ "output": { } }, - "description": "The following example uploads an object. The request specifies the optional server-side encryption option. The request also specifies optional object tags. If the bucket is versioning enabled, S3 returns version ID in response.", - "id": "to-upload-an-object-and-specify-server-side-encryption-and-object-tags-1483398331831", - "title": "To upload an object and specify server-side encryption and object tags" + "description": "The following example uploads and object. The request specifies optional canned ACL (access control list) to all READ access to authenticated users. If the bucket is versioning enabled, S3 returns version ID in response.", + "id": "to-upload-an-object-and-specify-canned-acl-1483397779571", + "title": "To upload an object and specify canned ACL." }, { "input": { - "ACL": "authenticated-read", - "Body": "filetoupload", + "Body": "HappyFace.jpg", "Bucket": "examplebucket", - "Key": "exampleobject" + "Key": "HappyFace.jpg" }, "output": { "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "VersionId": "Kirh.unyZwjQ69YxcQLA8z4F5j3kJJKr" + "VersionId": "tpf3zF08nBplQK1XLOefGskR7mGDwcDk" }, "comments": { "input": { @@ -1713,9 +1713,9 @@ "output": { } }, - "description": "The following example uploads and object. The request specifies optional canned ACL (access control list) to all READ access to authenticated users. If the bucket is versioning enabled, S3 returns version ID in response.", - "id": "to-upload-an-object-and-specify-canned-acl-1483397779571", - "title": "To upload an object and specify canned ACL." + "description": "The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file syntax. S3 returns VersionId of the newly created object.", + "id": "to-upload-an-object-1481760101010", + "title": "To upload an object" } ], "PutObjectAcl": [ diff --git a/models/apis/secretsmanager/2017-10-17/endpoint-rule-set-1.json b/models/apis/secretsmanager/2017-10-17/endpoint-rule-set-1.json index 0cfc46a8094..c7e57c417fc 100644 --- a/models/apis/secretsmanager/2017-10-17/endpoint-rule-set-1.json +++ b/models/apis/secretsmanager/2017-10-17/endpoint-rule-set-1.json @@ -166,6 +166,56 @@ } ], "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://secretsmanager-fips.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://secretsmanager-fips.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, { "conditions": [], "endpoint": { @@ -270,6 +320,81 @@ } ], "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://secretsmanager.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-cn", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://secretsmanager.{Region}.amazonaws.com.cn", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://secretsmanager.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, { "conditions": [], "endpoint": { diff --git a/models/apis/secretsmanager/2017-10-17/endpoint-tests-1.json b/models/apis/secretsmanager/2017-10-17/endpoint-tests-1.json index f81865a4bb5..4d47e6fbd3c 100644 --- a/models/apis/secretsmanager/2017-10-17/endpoint-tests-1.json +++ b/models/apis/secretsmanager/2017-10-17/endpoint-tests-1.json @@ -355,7 +355,7 @@ "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://secretsmanager-fips.us-east-1.api.aws" + "url": "https://secretsmanager-fips.us-east-1.amazonaws.com" } }, "params": { @@ -368,7 +368,7 @@ "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://secretsmanager.us-east-1.api.aws" + "url": "https://secretsmanager.us-east-1.amazonaws.com" } }, "params": { @@ -433,7 +433,7 @@ "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://secretsmanager.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://secretsmanager.cn-north-1.amazonaws.com.cn" } }, "params": { @@ -498,7 +498,7 @@ "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://secretsmanager-fips.us-gov-east-1.api.aws" + "url": "https://secretsmanager-fips.us-gov-east-1.amazonaws.com" } }, "params": { @@ -511,7 +511,7 @@ "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://secretsmanager.us-gov-east-1.api.aws" + "url": "https://secretsmanager.us-gov-east-1.amazonaws.com" } }, "params": { diff --git a/models/endpoints/endpoints.json b/models/endpoints/endpoints.json index 140ad15ea91..29620678213 100644 --- a/models/endpoints/endpoints.json +++ b/models/endpoints/endpoints.json @@ -1990,6 +1990,7 @@ "ap-southeast-3" : { }, "ap-southeast-4" : { }, "ca-central-1" : { }, + "ca-west-1" : { }, "eu-central-1" : { }, "eu-central-2" : { }, "eu-north-1" : { }, @@ -21905,6 +21906,11 @@ } } }, + "bedrock" : { + "endpoints" : { + "us-gov-west-1" : { } + } + }, "cassandra" : { "endpoints" : { "us-gov-east-1" : { diff --git a/service/glue/api.go b/service/glue/api.go index 13ab0fc1307..ce4fdc94af5 100644 --- a/service/glue/api.go +++ b/service/glue/api.go @@ -1066,6 +1066,7 @@ func (c *Glue) BatchGetPartitionRequest(input *BatchGetPartitionInput) (req *req // A federation source failed. // // - FederationSourceRetryableException +// A federation source failed, but the operation may be retried. // // See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/BatchGetPartition func (c *Glue) BatchGetPartition(input *BatchGetPartitionInput) (*BatchGetPartitionOutput, error) { @@ -2196,6 +2197,9 @@ func (c *Glue) CreateConnectionRequest(input *CreateConnectionInput) (req *reque // // Creates a connection definition in the Data Catalog. // +// Connections used for creating federated resources require the IAM glue:PassConnection +// permission. +// // 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. @@ -10396,6 +10400,7 @@ func (c *Glue) GetPartitionRequest(input *GetPartitionInput) (req *request.Reque // A federation source failed. // // - FederationSourceRetryableException +// A federation source failed, but the operation may be retried. // // See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetPartition func (c *Glue) GetPartition(input *GetPartitionInput) (*GetPartitionOutput, error) { @@ -10652,6 +10657,7 @@ func (c *Glue) GetPartitionsRequest(input *GetPartitionsInput) (req *request.Req // A federation source failed. // // - FederationSourceRetryableException +// A federation source failed, but the operation may be retried. // // See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetPartitions func (c *Glue) GetPartitions(input *GetPartitionsInput) (*GetPartitionsOutput, error) { @@ -11995,6 +12001,7 @@ func (c *Glue) GetTableRequest(input *GetTableInput) (req *request.Request, outp // A federation source failed. // // - FederationSourceRetryableException +// A federation source failed, but the operation may be retried. // // See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetTable func (c *Glue) GetTable(input *GetTableInput) (*GetTableOutput, error) { @@ -12425,6 +12432,7 @@ func (c *Glue) GetTablesRequest(input *GetTablesInput) (req *request.Request, ou // A federation source failed. // // - FederationSourceRetryableException +// A federation source failed, but the operation may be retried. // // See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetTables func (c *Glue) GetTables(input *GetTablesInput) (*GetTablesOutput, error) { @@ -12900,6 +12908,7 @@ func (c *Glue) GetUnfilteredPartitionMetadataRequest(input *GetUnfilteredPartiti // A federation source failed. // // - FederationSourceRetryableException +// A federation source failed, but the operation may be retried. // // See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetUnfilteredPartitionMetadata func (c *Glue) GetUnfilteredPartitionMetadata(input *GetUnfilteredPartitionMetadataInput) (*GetUnfilteredPartitionMetadataOutput, error) { @@ -13009,6 +13018,7 @@ func (c *Glue) GetUnfilteredPartitionsMetadataRequest(input *GetUnfilteredPartit // A federation source failed. // // - FederationSourceRetryableException +// A federation source failed, but the operation may be retried. // // See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetUnfilteredPartitionsMetadata func (c *Glue) GetUnfilteredPartitionsMetadata(input *GetUnfilteredPartitionsMetadataInput) (*GetUnfilteredPartitionsMetadataOutput, error) { @@ -13162,6 +13172,7 @@ func (c *Glue) GetUnfilteredTableMetadataRequest(input *GetUnfilteredTableMetada // A federation source failed. // // - FederationSourceRetryableException +// A federation source failed, but the operation may be retried. // // See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetUnfilteredTableMetadata func (c *Glue) GetUnfilteredTableMetadata(input *GetUnfilteredTableMetadataInput) (*GetUnfilteredTableMetadataOutput, error) { @@ -42843,10 +42854,12 @@ func (s *FederationSourceException) RequestID() string { return s.RespMetadata.RequestID } +// A federation source failed, but the operation may be retried. type FederationSourceRetryableException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + // A message describing the problem. Message_ *string `locationName:"Message" type:"string"` } @@ -50811,6 +50824,15 @@ type GetUnfilteredPartitionMetadataInput struct { // PartitionValues is a required field PartitionValues []*string `type:"list" required:"true"` + // A structure used as a protocol between query engines and Lake Formation or + // Glue. Contains both a Lake Formation generated authorization identifier and + // information from the request's authorization context. + QuerySessionContext *QuerySessionContext `type:"structure"` + + // Specified only if the base tables belong to a different Amazon Web Services + // Region. + Region *string `type:"string"` + // (Required) A list of supported permission types. // // SupportedPermissionTypes is a required field @@ -50870,6 +50892,11 @@ func (s *GetUnfilteredPartitionMetadataInput) Validate() error { if s.TableName != nil && len(*s.TableName) < 1 { invalidParams.Add(request.NewErrParamMinLen("TableName", 1)) } + if s.QuerySessionContext != nil { + if err := s.QuerySessionContext.Validate(); err != nil { + invalidParams.AddNested("QuerySessionContext", err.(request.ErrInvalidParams)) + } + } if invalidParams.Len() > 0 { return invalidParams @@ -50901,6 +50928,18 @@ func (s *GetUnfilteredPartitionMetadataInput) SetPartitionValues(v []*string) *G return s } +// SetQuerySessionContext sets the QuerySessionContext field's value. +func (s *GetUnfilteredPartitionMetadataInput) SetQuerySessionContext(v *QuerySessionContext) *GetUnfilteredPartitionMetadataInput { + s.QuerySessionContext = v + return s +} + +// SetRegion sets the Region field's value. +func (s *GetUnfilteredPartitionMetadataInput) SetRegion(v string) *GetUnfilteredPartitionMetadataInput { + s.Region = &v + return s +} + // SetSupportedPermissionTypes sets the SupportedPermissionTypes field's value. func (s *GetUnfilteredPartitionMetadataInput) SetSupportedPermissionTypes(v []*string) *GetUnfilteredPartitionMetadataInput { s.SupportedPermissionTypes = v @@ -51067,6 +51106,15 @@ type GetUnfilteredPartitionsMetadataInput struct { // A continuation token, if this is not the first call to retrieve these partitions. NextToken *string `type:"string"` + // A structure used as a protocol between query engines and Lake Formation or + // Glue. Contains both a Lake Formation generated authorization identifier and + // information from the request's authorization context. + QuerySessionContext *QuerySessionContext `type:"structure"` + + // Specified only if the base tables belong to a different Amazon Web Services + // Region. + Region *string `type:"string"` + // The segment of the table's partitions to scan in this request. Segment *Segment `type:"structure"` @@ -51129,6 +51177,11 @@ func (s *GetUnfilteredPartitionsMetadataInput) Validate() error { if s.TableName != nil && len(*s.TableName) < 1 { invalidParams.Add(request.NewErrParamMinLen("TableName", 1)) } + if s.QuerySessionContext != nil { + if err := s.QuerySessionContext.Validate(); err != nil { + invalidParams.AddNested("QuerySessionContext", err.(request.ErrInvalidParams)) + } + } if s.Segment != nil { if err := s.Segment.Validate(); err != nil { invalidParams.AddNested("Segment", err.(request.ErrInvalidParams)) @@ -51177,6 +51230,18 @@ func (s *GetUnfilteredPartitionsMetadataInput) SetNextToken(v string) *GetUnfilt return s } +// SetQuerySessionContext sets the QuerySessionContext field's value. +func (s *GetUnfilteredPartitionsMetadataInput) SetQuerySessionContext(v *QuerySessionContext) *GetUnfilteredPartitionsMetadataInput { + s.QuerySessionContext = v + return s +} + +// SetRegion sets the Region field's value. +func (s *GetUnfilteredPartitionsMetadataInput) SetRegion(v string) *GetUnfilteredPartitionsMetadataInput { + s.Region = &v + return s +} + // SetSegment sets the Segment field's value. func (s *GetUnfilteredPartitionsMetadataInput) SetSegment(v *Segment) *GetUnfilteredPartitionsMetadataInput { s.Segment = v @@ -51257,6 +51322,23 @@ type GetUnfilteredTableMetadataInput struct { // Name is a required field Name *string `min:"1" type:"string" required:"true"` + // The Lake Formation data permissions of the caller on the table. Used to authorize + // the call when no view context is found. + Permissions []*string `type:"list" enum:"Permission"` + + // A structure used as a protocol between query engines and Lake Formation or + // Glue. Contains both a Lake Formation generated authorization identifier and + // information from the request's authorization context. + QuerySessionContext *QuerySessionContext `type:"structure"` + + // Specified only if the base tables belong to a different Amazon Web Services + // Region. + Region *string `type:"string"` + + // A structure specifying the dialect and dialect version used by the query + // engine. + SupportedDialect *SupportedDialect `type:"structure"` + // (Required) A list of supported permission types. // // SupportedPermissionTypes is a required field @@ -51308,6 +51390,16 @@ func (s *GetUnfilteredTableMetadataInput) Validate() error { if s.SupportedPermissionTypes != nil && len(s.SupportedPermissionTypes) < 1 { invalidParams.Add(request.NewErrParamMinLen("SupportedPermissionTypes", 1)) } + if s.QuerySessionContext != nil { + if err := s.QuerySessionContext.Validate(); err != nil { + invalidParams.AddNested("QuerySessionContext", err.(request.ErrInvalidParams)) + } + } + if s.SupportedDialect != nil { + if err := s.SupportedDialect.Validate(); err != nil { + invalidParams.AddNested("SupportedDialect", err.(request.ErrInvalidParams)) + } + } if invalidParams.Len() > 0 { return invalidParams @@ -51339,6 +51431,30 @@ func (s *GetUnfilteredTableMetadataInput) SetName(v string) *GetUnfilteredTableM return s } +// SetPermissions sets the Permissions field's value. +func (s *GetUnfilteredTableMetadataInput) SetPermissions(v []*string) *GetUnfilteredTableMetadataInput { + s.Permissions = v + return s +} + +// SetQuerySessionContext sets the QuerySessionContext field's value. +func (s *GetUnfilteredTableMetadataInput) SetQuerySessionContext(v *QuerySessionContext) *GetUnfilteredTableMetadataInput { + s.QuerySessionContext = v + return s +} + +// SetRegion sets the Region field's value. +func (s *GetUnfilteredTableMetadataInput) SetRegion(v string) *GetUnfilteredTableMetadataInput { + s.Region = &v + return s +} + +// SetSupportedDialect sets the SupportedDialect field's value. +func (s *GetUnfilteredTableMetadataInput) SetSupportedDialect(v *SupportedDialect) *GetUnfilteredTableMetadataInput { + s.SupportedDialect = v + return s +} + // SetSupportedPermissionTypes sets the SupportedPermissionTypes field's value. func (s *GetUnfilteredTableMetadataInput) SetSupportedPermissionTypes(v []*string) *GetUnfilteredTableMetadataInput { s.SupportedPermissionTypes = v @@ -51358,6 +51474,17 @@ type GetUnfilteredTableMetadataOutput struct { // with Lake Formation. IsRegisteredWithLakeFormation *bool `type:"boolean"` + // The Lake Formation data permissions of the caller on the table. Used to authorize + // the call when no view context is found. + Permissions []*string `type:"list" enum:"Permission"` + + // A cryptographically generated query identifier generated by Glue or Lake + // Formation. + QueryAuthorizationId *string `min:"1" type:"string"` + + // The resource ARN of the parent resource extracted from the request. + ResourceArn *string `min:"20" type:"string"` + // A Table object containing the table metadata. Table *TableData `type:"structure"` } @@ -51398,6 +51525,24 @@ func (s *GetUnfilteredTableMetadataOutput) SetIsRegisteredWithLakeFormation(v bo return s } +// SetPermissions sets the Permissions field's value. +func (s *GetUnfilteredTableMetadataOutput) SetPermissions(v []*string) *GetUnfilteredTableMetadataOutput { + s.Permissions = v + return s +} + +// SetQueryAuthorizationId sets the QueryAuthorizationId field's value. +func (s *GetUnfilteredTableMetadataOutput) SetQueryAuthorizationId(v string) *GetUnfilteredTableMetadataOutput { + s.QueryAuthorizationId = &v + return s +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *GetUnfilteredTableMetadataOutput) SetResourceArn(v string) *GetUnfilteredTableMetadataOutput { + s.ResourceArn = &v + return s +} + // SetTable sets the Table field's value. func (s *GetUnfilteredTableMetadataOutput) SetTable(v *TableData) *GetUnfilteredTableMetadataOutput { s.Table = v @@ -62215,6 +62360,93 @@ func (s *QuerySchemaVersionMetadataOutput) SetSchemaVersionId(v string) *QuerySc return s } +// A structure used as a protocol between query engines and Lake Formation or +// Glue. Contains both a Lake Formation generated authorization identifier and +// information from the request's authorization context. +type QuerySessionContext struct { + _ struct{} `type:"structure"` + + // An opaque string-string map passed by the query engine. + AdditionalContext map[string]*string `type:"map"` + + // An identifier string for the consumer cluster. + ClusterId *string `type:"string"` + + // A cryptographically generated query identifier generated by Glue or Lake + // Formation. + QueryAuthorizationId *string `min:"1" type:"string"` + + // A unique identifier generated by the query engine for the query. + QueryId *string `min:"1" type:"string"` + + // A timestamp provided by the query engine for when the query started. + QueryStartTime *time.Time `type:"timestamp"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s QuerySessionContext) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s QuerySessionContext) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *QuerySessionContext) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "QuerySessionContext"} + if s.QueryAuthorizationId != nil && len(*s.QueryAuthorizationId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("QueryAuthorizationId", 1)) + } + if s.QueryId != nil && len(*s.QueryId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("QueryId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAdditionalContext sets the AdditionalContext field's value. +func (s *QuerySessionContext) SetAdditionalContext(v map[string]*string) *QuerySessionContext { + s.AdditionalContext = v + return s +} + +// SetClusterId sets the ClusterId field's value. +func (s *QuerySessionContext) SetClusterId(v string) *QuerySessionContext { + s.ClusterId = &v + return s +} + +// SetQueryAuthorizationId sets the QueryAuthorizationId field's value. +func (s *QuerySessionContext) SetQueryAuthorizationId(v string) *QuerySessionContext { + s.QueryAuthorizationId = &v + return s +} + +// SetQueryId sets the QueryId field's value. +func (s *QuerySessionContext) SetQueryId(v string) *QuerySessionContext { + s.QueryId = &v + return s +} + +// SetQueryStartTime sets the QueryStartTime field's value. +func (s *QuerySessionContext) SetQueryStartTime(v time.Time) *QuerySessionContext { + s.QueryStartTime = &v + return s +} + // A Glue Studio node that uses a Glue DataBrew recipe in Glue jobs. type Recipe struct { _ struct{} `type:"structure"` @@ -71327,6 +71559,61 @@ func (s *StringColumnStatisticsData) SetNumberOfNulls(v int64) *StringColumnStat return s } +// A structure specifying the dialect and dialect version used by the query +// engine. +type SupportedDialect struct { + _ struct{} `type:"structure"` + + // The dialect of the query engine. + Dialect *string `type:"string" enum:"ViewDialect"` + + // The version of the dialect of the query engine. For example, 3.0.0. + DialectVersion *string `min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SupportedDialect) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SupportedDialect) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *SupportedDialect) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "SupportedDialect"} + if s.DialectVersion != nil && len(*s.DialectVersion) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DialectVersion", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDialect sets the Dialect field's value. +func (s *SupportedDialect) SetDialect(v string) *SupportedDialect { + s.Dialect = &v + return s +} + +// SetDialectVersion sets the DialectVersion field's value. +func (s *SupportedDialect) SetDialectVersion(v string) *SupportedDialect { + s.DialectVersion = &v + return s +} + // The database and table in the Glue Data Catalog that is used for input or // output data. type Table struct { @@ -80057,6 +80344,26 @@ func UpdateCatalogBehavior_Values() []string { } } +const ( + // ViewDialectRedshift is a ViewDialect enum value + ViewDialectRedshift = "REDSHIFT" + + // ViewDialectAthena is a ViewDialect enum value + ViewDialectAthena = "ATHENA" + + // ViewDialectSpark is a ViewDialect enum value + ViewDialectSpark = "SPARK" +) + +// ViewDialect_Values returns all elements of the ViewDialect enum +func ViewDialect_Values() []string { + return []string{ + ViewDialectRedshift, + ViewDialectAthena, + ViewDialectSpark, + } +} + const ( // WorkerTypeStandard is a WorkerType enum value WorkerTypeStandard = "Standard" diff --git a/service/glue/errors.go b/service/glue/errors.go index 35e95ae27d1..fd39cc89ad6 100644 --- a/service/glue/errors.go +++ b/service/glue/errors.go @@ -108,6 +108,8 @@ const ( // ErrCodeFederationSourceRetryableException for service response error code // "FederationSourceRetryableException". + // + // A federation source failed, but the operation may be retried. ErrCodeFederationSourceRetryableException = "FederationSourceRetryableException" // ErrCodeIdempotentParameterMismatchException for service response error code diff --git a/service/lakeformation/api.go b/service/lakeformation/api.go index 9e70fa8c119..9969320abd1 100644 --- a/service/lakeformation/api.go +++ b/service/lakeformation/api.go @@ -7178,7 +7178,7 @@ type CreateLakeFormationIdentityCenterConfigurationInput struct { CatalogId *string `min:"1" type:"string"` // A list of the account IDs of Amazon Web Services accounts of third-party - // applications that are allowed to to access data managed by Lake Formation. + // applications that are allowed to access data managed by Lake Formation. ExternalFiltering *ExternalFilteringConfiguration `type:"structure"` // The ARN of the IAM Identity Center instance for which the operation will @@ -10466,6 +10466,14 @@ type GetTemporaryGlueTableCredentialsInput struct { // permissions on the requested resource(s). Permissions []*string `type:"list" enum:"Permission"` + // A structure used as a protocol between query engines and Lake Formation or + // Glue. Contains both a Lake Formation generated authorization identifier and + // information from the request's authorization context. + QuerySessionContext *QuerySessionContext `type:"structure"` + + // The Amazon S3 path for the table. + S3Path *string `type:"string"` + // A list of supported permission types for the table. Valid values are COLUMN_PERMISSION // and CELL_FILTER_PERMISSION. SupportedPermissionTypes []*string `min:"1" type:"list" enum:"PermissionType"` @@ -10507,6 +10515,11 @@ func (s *GetTemporaryGlueTableCredentialsInput) Validate() error { if s.TableArn == nil { invalidParams.Add(request.NewErrParamRequired("TableArn")) } + if s.QuerySessionContext != nil { + if err := s.QuerySessionContext.Validate(); err != nil { + invalidParams.AddNested("QuerySessionContext", err.(request.ErrInvalidParams)) + } + } if invalidParams.Len() > 0 { return invalidParams @@ -10532,6 +10545,18 @@ func (s *GetTemporaryGlueTableCredentialsInput) SetPermissions(v []*string) *Get return s } +// SetQuerySessionContext sets the QuerySessionContext field's value. +func (s *GetTemporaryGlueTableCredentialsInput) SetQuerySessionContext(v *QuerySessionContext) *GetTemporaryGlueTableCredentialsInput { + s.QuerySessionContext = v + return s +} + +// SetS3Path sets the S3Path field's value. +func (s *GetTemporaryGlueTableCredentialsInput) SetS3Path(v string) *GetTemporaryGlueTableCredentialsInput { + s.S3Path = &v + return s +} + // SetSupportedPermissionTypes sets the SupportedPermissionTypes field's value. func (s *GetTemporaryGlueTableCredentialsInput) SetSupportedPermissionTypes(v []*string) *GetTemporaryGlueTableCredentialsInput { s.SupportedPermissionTypes = v @@ -10558,6 +10583,9 @@ type GetTemporaryGlueTableCredentialsOutput struct { // The session token for the temporary credentials. SessionToken *string `type:"string"` + + // The Amazon S3 path for the temporary credentials. + VendedS3Path []*string `type:"list"` } // String returns the string representation. @@ -10602,6 +10630,12 @@ func (s *GetTemporaryGlueTableCredentialsOutput) SetSessionToken(v string) *GetT return s } +// SetVendedS3Path sets the VendedS3Path field's value. +func (s *GetTemporaryGlueTableCredentialsOutput) SetVendedS3Path(v []*string) *GetTemporaryGlueTableCredentialsOutput { + s.VendedS3Path = v + return s +} + type GetWorkUnitResultsInput struct { _ struct{} `type:"structure"` @@ -13108,6 +13142,93 @@ func (s *QueryPlanningContext) SetTransactionId(v string) *QueryPlanningContext return s } +// A structure used as a protocol between query engines and Lake Formation or +// Glue. Contains both a Lake Formation generated authorization identifier and +// information from the request's authorization context. +type QuerySessionContext struct { + _ struct{} `type:"structure"` + + // An opaque string-string map passed by the query engine. + AdditionalContext map[string]*string `type:"map"` + + // An identifier string for the consumer cluster. + ClusterId *string `type:"string"` + + // A cryptographically generated query identifier generated by Glue or Lake + // Formation. + QueryAuthorizationId *string `min:"1" type:"string"` + + // A unique identifier generated by the query engine for the query. + QueryId *string `min:"1" type:"string"` + + // A timestamp provided by the query engine for when the query started. + QueryStartTime *time.Time `type:"timestamp"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s QuerySessionContext) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s QuerySessionContext) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *QuerySessionContext) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "QuerySessionContext"} + if s.QueryAuthorizationId != nil && len(*s.QueryAuthorizationId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("QueryAuthorizationId", 1)) + } + if s.QueryId != nil && len(*s.QueryId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("QueryId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAdditionalContext sets the AdditionalContext field's value. +func (s *QuerySessionContext) SetAdditionalContext(v map[string]*string) *QuerySessionContext { + s.AdditionalContext = v + return s +} + +// SetClusterId sets the ClusterId field's value. +func (s *QuerySessionContext) SetClusterId(v string) *QuerySessionContext { + s.ClusterId = &v + return s +} + +// SetQueryAuthorizationId sets the QueryAuthorizationId field's value. +func (s *QuerySessionContext) SetQueryAuthorizationId(v string) *QuerySessionContext { + s.QueryAuthorizationId = &v + return s +} + +// SetQueryId sets the QueryId field's value. +func (s *QuerySessionContext) SetQueryId(v string) *QuerySessionContext { + s.QueryId = &v + return s +} + +// SetQueryStartTime sets the QueryStartTime field's value. +func (s *QuerySessionContext) SetQueryStartTime(v time.Time) *QuerySessionContext { + s.QueryStartTime = &v + return s +} + type RegisterResourceInput struct { _ struct{} `type:"structure"` diff --git a/service/mediaconnect/api.go b/service/mediaconnect/api.go index 08141c9226c..de7ddfef83e 100644 --- a/service/mediaconnect/api.go +++ b/service/mediaconnect/api.go @@ -4,6 +4,7 @@ package mediaconnect import ( "fmt" + "time" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awsutil" @@ -1656,6 +1657,113 @@ func (c *MediaConnect) DescribeFlowWithContext(ctx aws.Context, input *DescribeF return out, req.Send() } +const opDescribeFlowSourceMetadata = "DescribeFlowSourceMetadata" + +// DescribeFlowSourceMetadataRequest generates a "aws/request.Request" representing the +// client's request for the DescribeFlowSourceMetadata 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 DescribeFlowSourceMetadata for more information on using the DescribeFlowSourceMetadata +// 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 DescribeFlowSourceMetadataRequest method. +// req, resp := client.DescribeFlowSourceMetadataRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/DescribeFlowSourceMetadata +func (c *MediaConnect) DescribeFlowSourceMetadataRequest(input *DescribeFlowSourceMetadataInput) (req *request.Request, output *DescribeFlowSourceMetadataOutput) { + op := &request.Operation{ + Name: opDescribeFlowSourceMetadata, + HTTPMethod: "GET", + HTTPPath: "/v1/flows/{flowArn}/source-metadata", + } + + if input == nil { + input = &DescribeFlowSourceMetadataInput{} + } + + output = &DescribeFlowSourceMetadataOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeFlowSourceMetadata API operation for AWS MediaConnect. +// +// Displays details of the flow's source stream. The response contains information +// about the contents of the stream and its programs. +// +// 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 MediaConnect's +// API operation DescribeFlowSourceMetadata for usage and error information. +// +// Returned Error Types: +// +// - BadRequestException +// Exception raised by AWS Elemental MediaConnect. See the error message and +// documentation for the operation for more information on the cause of this +// exception. +// +// - InternalServerErrorException +// Exception raised by AWS Elemental MediaConnect. See the error message and +// documentation for the operation for more information on the cause of this +// exception. +// +// - ForbiddenException +// Exception raised by AWS Elemental MediaConnect. See the error message and +// documentation for the operation for more information on the cause of this +// exception. +// +// - NotFoundException +// Exception raised by AWS Elemental MediaConnect. See the error message and +// documentation for the operation for more information on the cause of this +// exception. +// +// - ServiceUnavailableException +// Exception raised by AWS Elemental MediaConnect. See the error message and +// documentation for the operation for more information on the cause of this +// exception. +// +// - TooManyRequestsException +// Exception raised by AWS Elemental MediaConnect. See the error message and +// documentation for the operation for more information on the cause of this +// exception. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/DescribeFlowSourceMetadata +func (c *MediaConnect) DescribeFlowSourceMetadata(input *DescribeFlowSourceMetadataInput) (*DescribeFlowSourceMetadataOutput, error) { + req, out := c.DescribeFlowSourceMetadataRequest(input) + return out, req.Send() +} + +// DescribeFlowSourceMetadataWithContext is the same as DescribeFlowSourceMetadata with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeFlowSourceMetadata 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 *MediaConnect) DescribeFlowSourceMetadataWithContext(ctx aws.Context, input *DescribeFlowSourceMetadataInput, opts ...request.Option) (*DescribeFlowSourceMetadataOutput, error) { + req, out := c.DescribeFlowSourceMetadataRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDescribeGateway = "DescribeGateway" // DescribeGatewayRequest generates a "aws/request.Request" representing the @@ -9221,6 +9329,113 @@ func (s *DescribeFlowOutput) SetMessages(v *Messages) *DescribeFlowOutput { return s } +type DescribeFlowSourceMetadataInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // FlowArn is a required field + FlowArn *string `location:"uri" locationName:"flowArn" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeFlowSourceMetadataInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeFlowSourceMetadataInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeFlowSourceMetadataInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeFlowSourceMetadataInput"} + if s.FlowArn == nil { + invalidParams.Add(request.NewErrParamRequired("FlowArn")) + } + if s.FlowArn != nil && len(*s.FlowArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("FlowArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFlowArn sets the FlowArn field's value. +func (s *DescribeFlowSourceMetadataInput) SetFlowArn(v string) *DescribeFlowSourceMetadataInput { + s.FlowArn = &v + return s +} + +// The result of a successful DescribeFlowSourceMetadata request. +type DescribeFlowSourceMetadataOutput struct { + _ struct{} `type:"structure"` + + // The ARN of the flow that DescribeFlowSourceMetadata was performed on. + FlowArn *string `locationName:"flowArn" type:"string"` + + // Provides a status code and message regarding issues found with the flow source + // metadata. + Messages []*MessageDetail `locationName:"messages" type:"list"` + + // The timestamp of the most recent change in metadata for this flow’s source. + Timestamp *time.Time `locationName:"timestamp" type:"timestamp" timestampFormat:"iso8601"` + + // The metadata of the transport stream in the current flow's source. + TransportMediaInfo *TransportMediaInfo `locationName:"transportMediaInfo" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeFlowSourceMetadataOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeFlowSourceMetadataOutput) GoString() string { + return s.String() +} + +// SetFlowArn sets the FlowArn field's value. +func (s *DescribeFlowSourceMetadataOutput) SetFlowArn(v string) *DescribeFlowSourceMetadataOutput { + s.FlowArn = &v + return s +} + +// SetMessages sets the Messages field's value. +func (s *DescribeFlowSourceMetadataOutput) SetMessages(v []*MessageDetail) *DescribeFlowSourceMetadataOutput { + s.Messages = v + return s +} + +// SetTimestamp sets the Timestamp field's value. +func (s *DescribeFlowSourceMetadataOutput) SetTimestamp(v time.Time) *DescribeFlowSourceMetadataOutput { + s.Timestamp = &v + return s +} + +// SetTransportMediaInfo sets the TransportMediaInfo field's value. +func (s *DescribeFlowSourceMetadataOutput) SetTransportMediaInfo(v *TransportMediaInfo) *DescribeFlowSourceMetadataOutput { + s.TransportMediaInfo = v + return s +} + type DescribeGatewayInput struct { _ struct{} `type:"structure" nopayload:"true"` @@ -10559,6 +10774,51 @@ func (s *ForbiddenException) RequestID() string { return s.RespMetadata.RequestID } +// The frame resolution used by the video stream. +type FrameResolution struct { + _ struct{} `type:"structure"` + + // The number of pixels in the height of the video frame. + // + // FrameHeight is a required field + FrameHeight *int64 `locationName:"frameHeight" type:"integer" required:"true"` + + // The number of pixels in the width of the video frame. + // + // FrameWidth is a required field + FrameWidth *int64 `locationName:"frameWidth" type:"integer" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s FrameResolution) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s FrameResolution) GoString() string { + return s.String() +} + +// SetFrameHeight sets the FrameHeight field's value. +func (s *FrameResolution) SetFrameHeight(v int64) *FrameResolution { + s.FrameHeight = &v + return s +} + +// SetFrameWidth sets the FrameWidth field's value. +func (s *FrameResolution) SetFrameWidth(v int64) *FrameResolution { + s.FrameWidth = &v + return s +} + // The settings for a gateway, including its networks. type Gateway struct { _ struct{} `type:"structure"` @@ -15735,6 +15995,218 @@ func (s *Transport) SetStreamId(v string) *Transport { return s } +// The metadata of the transport stream in the current flow's source. +type TransportMediaInfo struct { + _ struct{} `type:"structure"` + + // The list of transport stream programs in the current flow's source. + // + // Programs is a required field + Programs []*TransportStreamProgram `locationName:"programs" type:"list" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TransportMediaInfo) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TransportMediaInfo) GoString() string { + return s.String() +} + +// SetPrograms sets the Programs field's value. +func (s *TransportMediaInfo) SetPrograms(v []*TransportStreamProgram) *TransportMediaInfo { + s.Programs = v + return s +} + +// The metadata of an elementary transport stream. +type TransportStream struct { + _ struct{} `type:"structure"` + + // The number of channels in the audio stream. + Channels *int64 `locationName:"channels" type:"integer"` + + // The codec used by the stream. + Codec *string `locationName:"codec" type:"string"` + + // The frame rate used by the video stream. + FrameRate *string `locationName:"frameRate" type:"string"` + + // The frame resolution used by the video stream. + FrameResolution *FrameResolution `locationName:"frameResolution" type:"structure"` + + // The Packet ID (PID) as it is reported in the Program Map Table. + // + // Pid is a required field + Pid *int64 `locationName:"pid" type:"integer" required:"true"` + + // The sample rate used by the audio stream. + SampleRate *int64 `locationName:"sampleRate" type:"integer"` + + // The sample bit size used by the audio stream. + SampleSize *int64 `locationName:"sampleSize" type:"integer"` + + // The Stream Type as it is reported in the Program Map Table. + // + // StreamType is a required field + StreamType *string `locationName:"streamType" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TransportStream) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TransportStream) GoString() string { + return s.String() +} + +// SetChannels sets the Channels field's value. +func (s *TransportStream) SetChannels(v int64) *TransportStream { + s.Channels = &v + return s +} + +// SetCodec sets the Codec field's value. +func (s *TransportStream) SetCodec(v string) *TransportStream { + s.Codec = &v + return s +} + +// SetFrameRate sets the FrameRate field's value. +func (s *TransportStream) SetFrameRate(v string) *TransportStream { + s.FrameRate = &v + return s +} + +// SetFrameResolution sets the FrameResolution field's value. +func (s *TransportStream) SetFrameResolution(v *FrameResolution) *TransportStream { + s.FrameResolution = v + return s +} + +// SetPid sets the Pid field's value. +func (s *TransportStream) SetPid(v int64) *TransportStream { + s.Pid = &v + return s +} + +// SetSampleRate sets the SampleRate field's value. +func (s *TransportStream) SetSampleRate(v int64) *TransportStream { + s.SampleRate = &v + return s +} + +// SetSampleSize sets the SampleSize field's value. +func (s *TransportStream) SetSampleSize(v int64) *TransportStream { + s.SampleSize = &v + return s +} + +// SetStreamType sets the StreamType field's value. +func (s *TransportStream) SetStreamType(v string) *TransportStream { + s.StreamType = &v + return s +} + +// The metadata of a single transport stream program. +type TransportStreamProgram struct { + _ struct{} `type:"structure"` + + // The Program Clock Reference (PCR) Packet ID (PID) as it is reported in the + // Program Association Table. + // + // PcrPid is a required field + PcrPid *int64 `locationName:"pcrPid" type:"integer" required:"true"` + + // The program name as it is reported in the Program Association Table. + ProgramName *string `locationName:"programName" type:"string"` + + // The program number as it is reported in the Program Association Table. + // + // ProgramNumber is a required field + ProgramNumber *int64 `locationName:"programNumber" type:"integer" required:"true"` + + // The program Packet ID (PID) as it is reported in the Program Association + // Table. + // + // ProgramPid is a required field + ProgramPid *int64 `locationName:"programPid" type:"integer" required:"true"` + + // The list of elementary transport streams in the program. The list includes + // video, audio, and data streams. + // + // Streams is a required field + Streams []*TransportStream `locationName:"streams" type:"list" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TransportStreamProgram) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TransportStreamProgram) GoString() string { + return s.String() +} + +// SetPcrPid sets the PcrPid field's value. +func (s *TransportStreamProgram) SetPcrPid(v int64) *TransportStreamProgram { + s.PcrPid = &v + return s +} + +// SetProgramName sets the ProgramName field's value. +func (s *TransportStreamProgram) SetProgramName(v string) *TransportStreamProgram { + s.ProgramName = &v + return s +} + +// SetProgramNumber sets the ProgramNumber field's value. +func (s *TransportStreamProgram) SetProgramNumber(v int64) *TransportStreamProgram { + s.ProgramNumber = &v + return s +} + +// SetProgramPid sets the ProgramPid field's value. +func (s *TransportStreamProgram) SetProgramPid(v int64) *TransportStreamProgram { + s.ProgramPid = &v + return s +} + +// SetStreams sets the Streams field's value. +func (s *TransportStreamProgram) SetStreams(v []*TransportStream) *TransportStreamProgram { + s.Streams = v + return s +} + type UntagResourceInput struct { _ struct{} `type:"structure" nopayload:"true"` diff --git a/service/mediaconnect/mediaconnectiface/interface.go b/service/mediaconnect/mediaconnectiface/interface.go index 9436b81d9b0..676b2378ec2 100644 --- a/service/mediaconnect/mediaconnectiface/interface.go +++ b/service/mediaconnect/mediaconnectiface/interface.go @@ -120,6 +120,10 @@ type MediaConnectAPI interface { DescribeFlowWithContext(aws.Context, *mediaconnect.DescribeFlowInput, ...request.Option) (*mediaconnect.DescribeFlowOutput, error) DescribeFlowRequest(*mediaconnect.DescribeFlowInput) (*request.Request, *mediaconnect.DescribeFlowOutput) + DescribeFlowSourceMetadata(*mediaconnect.DescribeFlowSourceMetadataInput) (*mediaconnect.DescribeFlowSourceMetadataOutput, error) + DescribeFlowSourceMetadataWithContext(aws.Context, *mediaconnect.DescribeFlowSourceMetadataInput, ...request.Option) (*mediaconnect.DescribeFlowSourceMetadataOutput, error) + DescribeFlowSourceMetadataRequest(*mediaconnect.DescribeFlowSourceMetadataInput) (*request.Request, *mediaconnect.DescribeFlowSourceMetadataOutput) + DescribeGateway(*mediaconnect.DescribeGatewayInput) (*mediaconnect.DescribeGatewayOutput, error) DescribeGatewayWithContext(aws.Context, *mediaconnect.DescribeGatewayInput, ...request.Option) (*mediaconnect.DescribeGatewayOutput, error) DescribeGatewayRequest(*mediaconnect.DescribeGatewayInput) (*request.Request, *mediaconnect.DescribeGatewayOutput) diff --git a/service/networkmonitor/api.go b/service/networkmonitor/api.go new file mode 100644 index 00000000000..cf945c10185 --- /dev/null +++ b/service/networkmonitor/api.go @@ -0,0 +1,3912 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package networkmonitor + +import ( + "fmt" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awsutil" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/private/protocol" + "github.com/aws/aws-sdk-go/private/protocol/restjson" +) + +const opCreateMonitor = "CreateMonitor" + +// CreateMonitorRequest generates a "aws/request.Request" representing the +// client's request for the CreateMonitor 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 CreateMonitor for more information on using the CreateMonitor +// 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 CreateMonitorRequest method. +// req, resp := client.CreateMonitorRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/CreateMonitor +func (c *NetworkMonitor) CreateMonitorRequest(input *CreateMonitorInput) (req *request.Request, output *CreateMonitorOutput) { + op := &request.Operation{ + Name: opCreateMonitor, + HTTPMethod: "POST", + HTTPPath: "/monitors", + } + + if input == nil { + input = &CreateMonitorInput{} + } + + output = &CreateMonitorOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateMonitor API operation for Amazon CloudWatch Network Monitor. +// +// Creates a monitor between a source subnet and destination IP address. Within +// a monitor you'll create one or more probes that monitor network traffic between +// your source Amazon Web Services VPC subnets and your destination IP addresses. +// Each probe then aggregates and sends metrics to Amazon CloudWatch. +// +// 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 CloudWatch Network Monitor's +// API operation CreateMonitor for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ThrottlingException +// The request was denied due to request throttling +// +// - ValidationException +// One of the parameters for the request is not valid. +// +// - InternalServerException +// The request processing has failed because of an unknown error, exception +// or failure. +// +// - ConflictException +// This operation attempted to create a resource that already exists. +// +// - ServiceQuotaExceededException +// This request exceeds a service quota. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/CreateMonitor +func (c *NetworkMonitor) CreateMonitor(input *CreateMonitorInput) (*CreateMonitorOutput, error) { + req, out := c.CreateMonitorRequest(input) + return out, req.Send() +} + +// CreateMonitorWithContext is the same as CreateMonitor with the addition of +// the ability to pass a context and additional request options. +// +// See CreateMonitor 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 *NetworkMonitor) CreateMonitorWithContext(ctx aws.Context, input *CreateMonitorInput, opts ...request.Option) (*CreateMonitorOutput, error) { + req, out := c.CreateMonitorRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateProbe = "CreateProbe" + +// CreateProbeRequest generates a "aws/request.Request" representing the +// client's request for the CreateProbe 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 CreateProbe for more information on using the CreateProbe +// 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 CreateProbeRequest method. +// req, resp := client.CreateProbeRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/CreateProbe +func (c *NetworkMonitor) CreateProbeRequest(input *CreateProbeInput) (req *request.Request, output *CreateProbeOutput) { + op := &request.Operation{ + Name: opCreateProbe, + HTTPMethod: "POST", + HTTPPath: "/monitors/{monitorName}/probes", + } + + if input == nil { + input = &CreateProbeInput{} + } + + output = &CreateProbeOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateProbe API operation for Amazon CloudWatch Network Monitor. +// +// Create a probe within a monitor. Once you create a probe, and it begins monitoring +// your network traffic, you'll incur billing charges for that probe. +// +// 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 CloudWatch Network Monitor's +// API operation CreateProbe for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ResourceNotFoundException +// The specified resource does not exist. +// +// - ThrottlingException +// The request was denied due to request throttling +// +// - ValidationException +// One of the parameters for the request is not valid. +// +// - InternalServerException +// The request processing has failed because of an unknown error, exception +// or failure. +// +// - ServiceQuotaExceededException +// This request exceeds a service quota. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/CreateProbe +func (c *NetworkMonitor) CreateProbe(input *CreateProbeInput) (*CreateProbeOutput, error) { + req, out := c.CreateProbeRequest(input) + return out, req.Send() +} + +// CreateProbeWithContext is the same as CreateProbe with the addition of +// the ability to pass a context and additional request options. +// +// See CreateProbe 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 *NetworkMonitor) CreateProbeWithContext(ctx aws.Context, input *CreateProbeInput, opts ...request.Option) (*CreateProbeOutput, error) { + req, out := c.CreateProbeRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteMonitor = "DeleteMonitor" + +// DeleteMonitorRequest generates a "aws/request.Request" representing the +// client's request for the DeleteMonitor 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 DeleteMonitor for more information on using the DeleteMonitor +// 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 DeleteMonitorRequest method. +// req, resp := client.DeleteMonitorRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/DeleteMonitor +func (c *NetworkMonitor) DeleteMonitorRequest(input *DeleteMonitorInput) (req *request.Request, output *DeleteMonitorOutput) { + op := &request.Operation{ + Name: opDeleteMonitor, + HTTPMethod: "DELETE", + HTTPPath: "/monitors/{monitorName}", + } + + if input == nil { + input = &DeleteMonitorInput{} + } + + output = &DeleteMonitorOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteMonitor API operation for Amazon CloudWatch Network Monitor. +// +// Deletes a specified monitor. +// +// 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 CloudWatch Network Monitor's +// API operation DeleteMonitor for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ResourceNotFoundException +// The specified resource does not exist. +// +// - ThrottlingException +// The request was denied due to request throttling +// +// - ValidationException +// One of the parameters for the request is not valid. +// +// - InternalServerException +// The request processing has failed because of an unknown error, exception +// or failure. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/DeleteMonitor +func (c *NetworkMonitor) DeleteMonitor(input *DeleteMonitorInput) (*DeleteMonitorOutput, error) { + req, out := c.DeleteMonitorRequest(input) + return out, req.Send() +} + +// DeleteMonitorWithContext is the same as DeleteMonitor with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteMonitor 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 *NetworkMonitor) DeleteMonitorWithContext(ctx aws.Context, input *DeleteMonitorInput, opts ...request.Option) (*DeleteMonitorOutput, error) { + req, out := c.DeleteMonitorRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteProbe = "DeleteProbe" + +// DeleteProbeRequest generates a "aws/request.Request" representing the +// client's request for the DeleteProbe 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 DeleteProbe for more information on using the DeleteProbe +// 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 DeleteProbeRequest method. +// req, resp := client.DeleteProbeRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/DeleteProbe +func (c *NetworkMonitor) DeleteProbeRequest(input *DeleteProbeInput) (req *request.Request, output *DeleteProbeOutput) { + op := &request.Operation{ + Name: opDeleteProbe, + HTTPMethod: "DELETE", + HTTPPath: "/monitors/{monitorName}/probes/{probeId}", + } + + if input == nil { + input = &DeleteProbeInput{} + } + + output = &DeleteProbeOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteProbe API operation for Amazon CloudWatch Network Monitor. +// +// Deletes the specified monitor. Once a probe is deleted you'll no longer incur +// any billing fees for that probe. +// +// 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 CloudWatch Network Monitor's +// API operation DeleteProbe for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ResourceNotFoundException +// The specified resource does not exist. +// +// - ThrottlingException +// The request was denied due to request throttling +// +// - ValidationException +// One of the parameters for the request is not valid. +// +// - InternalServerException +// The request processing has failed because of an unknown error, exception +// or failure. +// +// - ServiceQuotaExceededException +// This request exceeds a service quota. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/DeleteProbe +func (c *NetworkMonitor) DeleteProbe(input *DeleteProbeInput) (*DeleteProbeOutput, error) { + req, out := c.DeleteProbeRequest(input) + return out, req.Send() +} + +// DeleteProbeWithContext is the same as DeleteProbe with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteProbe 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 *NetworkMonitor) DeleteProbeWithContext(ctx aws.Context, input *DeleteProbeInput, opts ...request.Option) (*DeleteProbeOutput, error) { + req, out := c.DeleteProbeRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetMonitor = "GetMonitor" + +// GetMonitorRequest generates a "aws/request.Request" representing the +// client's request for the GetMonitor 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 GetMonitor for more information on using the GetMonitor +// 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 GetMonitorRequest method. +// req, resp := client.GetMonitorRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/GetMonitor +func (c *NetworkMonitor) GetMonitorRequest(input *GetMonitorInput) (req *request.Request, output *GetMonitorOutput) { + op := &request.Operation{ + Name: opGetMonitor, + HTTPMethod: "GET", + HTTPPath: "/monitors/{monitorName}", + } + + if input == nil { + input = &GetMonitorInput{} + } + + output = &GetMonitorOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetMonitor API operation for Amazon CloudWatch Network Monitor. +// +// Returns details about a specific monitor. +// +// 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 CloudWatch Network Monitor's +// API operation GetMonitor for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ResourceNotFoundException +// The specified resource does not exist. +// +// - ThrottlingException +// The request was denied due to request throttling +// +// - ValidationException +// One of the parameters for the request is not valid. +// +// - InternalServerException +// The request processing has failed because of an unknown error, exception +// or failure. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/GetMonitor +func (c *NetworkMonitor) GetMonitor(input *GetMonitorInput) (*GetMonitorOutput, error) { + req, out := c.GetMonitorRequest(input) + return out, req.Send() +} + +// GetMonitorWithContext is the same as GetMonitor with the addition of +// the ability to pass a context and additional request options. +// +// See GetMonitor 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 *NetworkMonitor) GetMonitorWithContext(ctx aws.Context, input *GetMonitorInput, opts ...request.Option) (*GetMonitorOutput, error) { + req, out := c.GetMonitorRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetProbe = "GetProbe" + +// GetProbeRequest generates a "aws/request.Request" representing the +// client's request for the GetProbe 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 GetProbe for more information on using the GetProbe +// 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 GetProbeRequest method. +// req, resp := client.GetProbeRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/GetProbe +func (c *NetworkMonitor) GetProbeRequest(input *GetProbeInput) (req *request.Request, output *GetProbeOutput) { + op := &request.Operation{ + Name: opGetProbe, + HTTPMethod: "GET", + HTTPPath: "/monitors/{monitorName}/probes/{probeId}", + } + + if input == nil { + input = &GetProbeInput{} + } + + output = &GetProbeOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetProbe API operation for Amazon CloudWatch Network Monitor. +// +// Returns the details about a probe. You'll need both the monitorName and probeId. +// +// 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 CloudWatch Network Monitor's +// API operation GetProbe for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ResourceNotFoundException +// The specified resource does not exist. +// +// - ThrottlingException +// The request was denied due to request throttling +// +// - ValidationException +// One of the parameters for the request is not valid. +// +// - InternalServerException +// The request processing has failed because of an unknown error, exception +// or failure. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/GetProbe +func (c *NetworkMonitor) GetProbe(input *GetProbeInput) (*GetProbeOutput, error) { + req, out := c.GetProbeRequest(input) + return out, req.Send() +} + +// GetProbeWithContext is the same as GetProbe with the addition of +// the ability to pass a context and additional request options. +// +// See GetProbe 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 *NetworkMonitor) GetProbeWithContext(ctx aws.Context, input *GetProbeInput, opts ...request.Option) (*GetProbeOutput, error) { + req, out := c.GetProbeRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListMonitors = "ListMonitors" + +// ListMonitorsRequest generates a "aws/request.Request" representing the +// client's request for the ListMonitors 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 ListMonitors for more information on using the ListMonitors +// 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 ListMonitorsRequest method. +// req, resp := client.ListMonitorsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/ListMonitors +func (c *NetworkMonitor) ListMonitorsRequest(input *ListMonitorsInput) (req *request.Request, output *ListMonitorsOutput) { + op := &request.Operation{ + Name: opListMonitors, + HTTPMethod: "GET", + HTTPPath: "/monitors", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListMonitorsInput{} + } + + output = &ListMonitorsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListMonitors API operation for Amazon CloudWatch Network Monitor. +// +// Returns a list of all of your monitors. +// +// 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 CloudWatch Network Monitor's +// API operation ListMonitors for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ThrottlingException +// The request was denied due to request throttling +// +// - ValidationException +// One of the parameters for the request is not valid. +// +// - InternalServerException +// The request processing has failed because of an unknown error, exception +// or failure. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/ListMonitors +func (c *NetworkMonitor) ListMonitors(input *ListMonitorsInput) (*ListMonitorsOutput, error) { + req, out := c.ListMonitorsRequest(input) + return out, req.Send() +} + +// ListMonitorsWithContext is the same as ListMonitors with the addition of +// the ability to pass a context and additional request options. +// +// See ListMonitors 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 *NetworkMonitor) ListMonitorsWithContext(ctx aws.Context, input *ListMonitorsInput, opts ...request.Option) (*ListMonitorsOutput, error) { + req, out := c.ListMonitorsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListMonitorsPages iterates over the pages of a ListMonitors operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListMonitors 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 ListMonitors operation. +// pageNum := 0 +// err := client.ListMonitorsPages(params, +// func(page *networkmonitor.ListMonitorsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *NetworkMonitor) ListMonitorsPages(input *ListMonitorsInput, fn func(*ListMonitorsOutput, bool) bool) error { + return c.ListMonitorsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListMonitorsPagesWithContext same as ListMonitorsPages 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 *NetworkMonitor) ListMonitorsPagesWithContext(ctx aws.Context, input *ListMonitorsInput, fn func(*ListMonitorsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListMonitorsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListMonitorsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListMonitorsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListTagsForResource = "ListTagsForResource" + +// ListTagsForResourceRequest generates a "aws/request.Request" representing the +// client's request for the ListTagsForResource 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 ListTagsForResource for more information on using the ListTagsForResource +// 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 ListTagsForResourceRequest method. +// req, resp := client.ListTagsForResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/ListTagsForResource +func (c *NetworkMonitor) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) { + op := &request.Operation{ + Name: opListTagsForResource, + HTTPMethod: "GET", + HTTPPath: "/tags/{resourceArn}", + } + + if input == nil { + input = &ListTagsForResourceInput{} + } + + output = &ListTagsForResourceOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListTagsForResource API operation for Amazon CloudWatch Network Monitor. +// +// Lists the tags assigned to this resource. +// +// 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 CloudWatch Network Monitor's +// API operation ListTagsForResource for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ResourceNotFoundException +// The specified resource does not exist. +// +// - ThrottlingException +// The request was denied due to request throttling +// +// - ValidationException +// One of the parameters for the request is not valid. +// +// - InternalServerException +// The request processing has failed because of an unknown error, exception +// or failure. +// +// - ConflictException +// This operation attempted to create a resource that already exists. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/ListTagsForResource +func (c *NetworkMonitor) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) { + req, out := c.ListTagsForResourceRequest(input) + return out, req.Send() +} + +// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of +// the ability to pass a context and additional request options. +// +// See ListTagsForResource 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 *NetworkMonitor) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) { + req, out := c.ListTagsForResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opTagResource = "TagResource" + +// TagResourceRequest generates a "aws/request.Request" representing the +// client's request for the TagResource 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 TagResource for more information on using the TagResource +// 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 TagResourceRequest method. +// req, resp := client.TagResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/TagResource +func (c *NetworkMonitor) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) { + op := &request.Operation{ + Name: opTagResource, + HTTPMethod: "POST", + HTTPPath: "/tags/{resourceArn}", + } + + if input == nil { + input = &TagResourceInput{} + } + + output = &TagResourceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// TagResource API operation for Amazon CloudWatch Network Monitor. +// +// Adds key-value pairs to a monitor or probe. +// +// 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 CloudWatch Network Monitor's +// API operation TagResource for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ResourceNotFoundException +// The specified resource does not exist. +// +// - ThrottlingException +// The request was denied due to request throttling +// +// - ValidationException +// One of the parameters for the request is not valid. +// +// - InternalServerException +// The request processing has failed because of an unknown error, exception +// or failure. +// +// - ConflictException +// This operation attempted to create a resource that already exists. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/TagResource +func (c *NetworkMonitor) TagResource(input *TagResourceInput) (*TagResourceOutput, error) { + req, out := c.TagResourceRequest(input) + return out, req.Send() +} + +// TagResourceWithContext is the same as TagResource with the addition of +// the ability to pass a context and additional request options. +// +// See TagResource 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 *NetworkMonitor) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) { + req, out := c.TagResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUntagResource = "UntagResource" + +// UntagResourceRequest generates a "aws/request.Request" representing the +// client's request for the UntagResource 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 UntagResource for more information on using the UntagResource +// 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 UntagResourceRequest method. +// req, resp := client.UntagResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/UntagResource +func (c *NetworkMonitor) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) { + op := &request.Operation{ + Name: opUntagResource, + HTTPMethod: "DELETE", + HTTPPath: "/tags/{resourceArn}", + } + + if input == nil { + input = &UntagResourceInput{} + } + + output = &UntagResourceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// UntagResource API operation for Amazon CloudWatch Network Monitor. +// +// Removes a key-value pair from a monitor or probe. +// +// 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 CloudWatch Network Monitor's +// API operation UntagResource for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ResourceNotFoundException +// The specified resource does not exist. +// +// - ThrottlingException +// The request was denied due to request throttling +// +// - ValidationException +// One of the parameters for the request is not valid. +// +// - InternalServerException +// The request processing has failed because of an unknown error, exception +// or failure. +// +// - ConflictException +// This operation attempted to create a resource that already exists. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/UntagResource +func (c *NetworkMonitor) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) { + req, out := c.UntagResourceRequest(input) + return out, req.Send() +} + +// UntagResourceWithContext is the same as UntagResource with the addition of +// the ability to pass a context and additional request options. +// +// See UntagResource 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 *NetworkMonitor) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) { + req, out := c.UntagResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateMonitor = "UpdateMonitor" + +// UpdateMonitorRequest generates a "aws/request.Request" representing the +// client's request for the UpdateMonitor 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 UpdateMonitor for more information on using the UpdateMonitor +// 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 UpdateMonitorRequest method. +// req, resp := client.UpdateMonitorRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/UpdateMonitor +func (c *NetworkMonitor) UpdateMonitorRequest(input *UpdateMonitorInput) (req *request.Request, output *UpdateMonitorOutput) { + op := &request.Operation{ + Name: opUpdateMonitor, + HTTPMethod: "PATCH", + HTTPPath: "/monitors/{monitorName}", + } + + if input == nil { + input = &UpdateMonitorInput{} + } + + output = &UpdateMonitorOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateMonitor API operation for Amazon CloudWatch Network Monitor. +// +// Updates the aggregationPeriod for a monitor. Monitors support an aggregationPeriod +// of either 30 or 60 seconds. +// +// 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 CloudWatch Network Monitor's +// API operation UpdateMonitor for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ResourceNotFoundException +// The specified resource does not exist. +// +// - ThrottlingException +// The request was denied due to request throttling +// +// - ValidationException +// One of the parameters for the request is not valid. +// +// - InternalServerException +// The request processing has failed because of an unknown error, exception +// or failure. +// +// - ServiceQuotaExceededException +// This request exceeds a service quota. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/UpdateMonitor +func (c *NetworkMonitor) UpdateMonitor(input *UpdateMonitorInput) (*UpdateMonitorOutput, error) { + req, out := c.UpdateMonitorRequest(input) + return out, req.Send() +} + +// UpdateMonitorWithContext is the same as UpdateMonitor with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateMonitor 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 *NetworkMonitor) UpdateMonitorWithContext(ctx aws.Context, input *UpdateMonitorInput, opts ...request.Option) (*UpdateMonitorOutput, error) { + req, out := c.UpdateMonitorRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateProbe = "UpdateProbe" + +// UpdateProbeRequest generates a "aws/request.Request" representing the +// client's request for the UpdateProbe 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 UpdateProbe for more information on using the UpdateProbe +// 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 UpdateProbeRequest method. +// req, resp := client.UpdateProbeRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/UpdateProbe +func (c *NetworkMonitor) UpdateProbeRequest(input *UpdateProbeInput) (req *request.Request, output *UpdateProbeOutput) { + op := &request.Operation{ + Name: opUpdateProbe, + HTTPMethod: "PATCH", + HTTPPath: "/monitors/{monitorName}/probes/{probeId}", + } + + if input == nil { + input = &UpdateProbeInput{} + } + + output = &UpdateProbeOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateProbe API operation for Amazon CloudWatch Network Monitor. +// +// Updates a monitor probe. This action requires both the monitorName and probeId +// parameters. Run ListMonitors to get a list of monitor names. Run GetMonitor +// to get a list of probes and probe IDs. +// +// 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 CloudWatch Network Monitor's +// API operation UpdateProbe for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ResourceNotFoundException +// The specified resource does not exist. +// +// - ThrottlingException +// The request was denied due to request throttling +// +// - ValidationException +// One of the parameters for the request is not valid. +// +// - InternalServerException +// The request processing has failed because of an unknown error, exception +// or failure. +// +// - ServiceQuotaExceededException +// This request exceeds a service quota. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/UpdateProbe +func (c *NetworkMonitor) UpdateProbe(input *UpdateProbeInput) (*UpdateProbeOutput, error) { + req, out := c.UpdateProbeRequest(input) + return out, req.Send() +} + +// UpdateProbeWithContext is the same as UpdateProbe with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateProbe 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 *NetworkMonitor) UpdateProbeWithContext(ctx aws.Context, input *UpdateProbeInput, opts ...request.Option) (*UpdateProbeOutput, error) { + req, out := c.UpdateProbeRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// You do not have sufficient access to perform this action. +type AccessDeniedException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccessDeniedException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccessDeniedException) GoString() string { + return s.String() +} + +func newErrorAccessDeniedException(v protocol.ResponseMetadata) error { + return &AccessDeniedException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *AccessDeniedException) Code() string { + return "AccessDeniedException" +} + +// Message returns the exception's message. +func (s *AccessDeniedException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *AccessDeniedException) OrigErr() error { + return nil +} + +func (s *AccessDeniedException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *AccessDeniedException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *AccessDeniedException) RequestID() string { + return s.RespMetadata.RequestID +} + +// This operation attempted to create a resource that already exists. +type ConflictException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ConflictException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ConflictException) GoString() string { + return s.String() +} + +func newErrorConflictException(v protocol.ResponseMetadata) error { + return &ConflictException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ConflictException) Code() string { + return "ConflictException" +} + +// Message returns the exception's message. +func (s *ConflictException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ConflictException) OrigErr() error { + return nil +} + +func (s *ConflictException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ConflictException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ConflictException) RequestID() string { + return s.RespMetadata.RequestID +} + +type CreateMonitorInput struct { + _ struct{} `type:"structure"` + + // The time, in seconds, that metrics are aggregated and sent to Amazon CloudWatch. + // Valid values are either 30 or 60. + AggregationPeriod *int64 `locationName:"aggregationPeriod" min:"30" type:"long"` + + // Unique, case-sensitive identifier to ensure the idempotency of the request. + // Only returned if a client token was provided in the request. + ClientToken *string `locationName:"clientToken" type:"string" idempotencyToken:"true"` + + // The name identifying the monitor. It can contain only letters, underscores + // (_), or dashes (-), and can be up to 255 characters. + // + // MonitorName is a required field + MonitorName *string `locationName:"monitorName" min:"1" type:"string" required:"true"` + + // Displays a list of all of the probes created for a monitor. + Probes []*CreateMonitorProbeInput_ `locationName:"probes" type:"list"` + + // The list of key-value pairs created and assigned to the monitor. + Tags map[string]*string `locationName:"tags" type:"map"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateMonitorInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateMonitorInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateMonitorInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateMonitorInput"} + if s.AggregationPeriod != nil && *s.AggregationPeriod < 30 { + invalidParams.Add(request.NewErrParamMinValue("AggregationPeriod", 30)) + } + if s.MonitorName == nil { + invalidParams.Add(request.NewErrParamRequired("MonitorName")) + } + if s.MonitorName != nil && len(*s.MonitorName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("MonitorName", 1)) + } + if s.Probes != nil { + for i, v := range s.Probes { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Probes", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAggregationPeriod sets the AggregationPeriod field's value. +func (s *CreateMonitorInput) SetAggregationPeriod(v int64) *CreateMonitorInput { + s.AggregationPeriod = &v + return s +} + +// SetClientToken sets the ClientToken field's value. +func (s *CreateMonitorInput) SetClientToken(v string) *CreateMonitorInput { + s.ClientToken = &v + return s +} + +// SetMonitorName sets the MonitorName field's value. +func (s *CreateMonitorInput) SetMonitorName(v string) *CreateMonitorInput { + s.MonitorName = &v + return s +} + +// SetProbes sets the Probes field's value. +func (s *CreateMonitorInput) SetProbes(v []*CreateMonitorProbeInput_) *CreateMonitorInput { + s.Probes = v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateMonitorInput) SetTags(v map[string]*string) *CreateMonitorInput { + s.Tags = v + return s +} + +type CreateMonitorOutput struct { + _ struct{} `type:"structure"` + + // The number of seconds that metrics are aggregated by and sent to Amazon CloudWatch. + // This will be either 30 or 60. + AggregationPeriod *int64 `locationName:"aggregationPeriod" min:"30" type:"long"` + + // The ARN of the monitor. + // + // MonitorArn is a required field + MonitorArn *string `locationName:"monitorArn" min:"20" type:"string" required:"true"` + + // The name of the monitor. + // + // MonitorName is a required field + MonitorName *string `locationName:"monitorName" min:"1" type:"string" required:"true"` + + // The state of the monitor. + // + // State is a required field + State *string `locationName:"state" type:"string" required:"true" enum:"MonitorState"` + + // The list of key-value pairs assigned to the monitor. + Tags map[string]*string `locationName:"tags" type:"map"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateMonitorOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateMonitorOutput) GoString() string { + return s.String() +} + +// SetAggregationPeriod sets the AggregationPeriod field's value. +func (s *CreateMonitorOutput) SetAggregationPeriod(v int64) *CreateMonitorOutput { + s.AggregationPeriod = &v + return s +} + +// SetMonitorArn sets the MonitorArn field's value. +func (s *CreateMonitorOutput) SetMonitorArn(v string) *CreateMonitorOutput { + s.MonitorArn = &v + return s +} + +// SetMonitorName sets the MonitorName field's value. +func (s *CreateMonitorOutput) SetMonitorName(v string) *CreateMonitorOutput { + s.MonitorName = &v + return s +} + +// SetState sets the State field's value. +func (s *CreateMonitorOutput) SetState(v string) *CreateMonitorOutput { + s.State = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateMonitorOutput) SetTags(v map[string]*string) *CreateMonitorOutput { + s.Tags = v + return s +} + +// Creates a monitor probe. +type CreateMonitorProbeInput_ struct { + _ struct{} `type:"structure"` + + // The destination IP address. This will be either IPV4 or IPV6. + // + // Destination is a required field + Destination *string `locationName:"destination" min:"1" type:"string" required:"true"` + + // The port associated with the destination. This is required only if the protocol + // is TCP and must be a number between 1 and 65536. + DestinationPort *int64 `locationName:"destinationPort" type:"integer"` + + // The size of the packets sent between the source and destination. This will + // be a number between 56 and 8500. + PacketSize *int64 `locationName:"packetSize" min:"56" type:"integer"` + + // The list of key-value pairs created and assigned to the monitor. + ProbeTags map[string]*string `locationName:"probeTags" type:"map"` + + // The protocol used for the network traffic between the source and destination. + // This will be either TCP or ICMP. + // + // Protocol is a required field + Protocol *string `locationName:"protocol" type:"string" required:"true" enum:"Protocol"` + + // The ARN of the subnet. + // + // SourceArn is a required field + SourceArn *string `locationName:"sourceArn" min:"20" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateMonitorProbeInput_) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateMonitorProbeInput_) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateMonitorProbeInput_) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateMonitorProbeInput_"} + if s.Destination == nil { + invalidParams.Add(request.NewErrParamRequired("Destination")) + } + if s.Destination != nil && len(*s.Destination) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Destination", 1)) + } + if s.PacketSize != nil && *s.PacketSize < 56 { + invalidParams.Add(request.NewErrParamMinValue("PacketSize", 56)) + } + if s.Protocol == nil { + invalidParams.Add(request.NewErrParamRequired("Protocol")) + } + if s.SourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("SourceArn")) + } + if s.SourceArn != nil && len(*s.SourceArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("SourceArn", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDestination sets the Destination field's value. +func (s *CreateMonitorProbeInput_) SetDestination(v string) *CreateMonitorProbeInput_ { + s.Destination = &v + return s +} + +// SetDestinationPort sets the DestinationPort field's value. +func (s *CreateMonitorProbeInput_) SetDestinationPort(v int64) *CreateMonitorProbeInput_ { + s.DestinationPort = &v + return s +} + +// SetPacketSize sets the PacketSize field's value. +func (s *CreateMonitorProbeInput_) SetPacketSize(v int64) *CreateMonitorProbeInput_ { + s.PacketSize = &v + return s +} + +// SetProbeTags sets the ProbeTags field's value. +func (s *CreateMonitorProbeInput_) SetProbeTags(v map[string]*string) *CreateMonitorProbeInput_ { + s.ProbeTags = v + return s +} + +// SetProtocol sets the Protocol field's value. +func (s *CreateMonitorProbeInput_) SetProtocol(v string) *CreateMonitorProbeInput_ { + s.Protocol = &v + return s +} + +// SetSourceArn sets the SourceArn field's value. +func (s *CreateMonitorProbeInput_) SetSourceArn(v string) *CreateMonitorProbeInput_ { + s.SourceArn = &v + return s +} + +type CreateProbeInput struct { + _ struct{} `type:"structure"` + + // Unique, case-sensitive identifier to ensure the idempotency of the request. + // Only returned if a client token was provided in the request. + ClientToken *string `locationName:"clientToken" type:"string" idempotencyToken:"true"` + + // The name of the monitor to associated with the probe. To get a list of available + // monitors, use ListMonitors. + // + // MonitorName is a required field + MonitorName *string `location:"uri" locationName:"monitorName" min:"1" type:"string" required:"true"` + + // Describes the details of an individual probe for a monitor. + // + // Probe is a required field + Probe *ProbeInput_ `locationName:"probe" type:"structure" required:"true"` + + // The list of key-value pairs created and assigned to the probe. + Tags map[string]*string `locationName:"tags" type:"map"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateProbeInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateProbeInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateProbeInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateProbeInput"} + if s.MonitorName == nil { + invalidParams.Add(request.NewErrParamRequired("MonitorName")) + } + if s.MonitorName != nil && len(*s.MonitorName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("MonitorName", 1)) + } + if s.Probe == nil { + invalidParams.Add(request.NewErrParamRequired("Probe")) + } + if s.Probe != nil { + if err := s.Probe.Validate(); err != nil { + invalidParams.AddNested("Probe", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClientToken sets the ClientToken field's value. +func (s *CreateProbeInput) SetClientToken(v string) *CreateProbeInput { + s.ClientToken = &v + return s +} + +// SetMonitorName sets the MonitorName field's value. +func (s *CreateProbeInput) SetMonitorName(v string) *CreateProbeInput { + s.MonitorName = &v + return s +} + +// SetProbe sets the Probe field's value. +func (s *CreateProbeInput) SetProbe(v *ProbeInput_) *CreateProbeInput { + s.Probe = v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateProbeInput) SetTags(v map[string]*string) *CreateProbeInput { + s.Tags = v + return s +} + +type CreateProbeOutput struct { + _ struct{} `type:"structure"` + + // Indicates whether the IP address is IPV4 or IPV6. + AddressFamily *string `locationName:"addressFamily" type:"string" enum:"AddressFamily"` + + // The time and date that the probe was created. + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"` + + // The destination IP address for the monitor. This will be either an IPv4 or + // IPv6 address. + // + // Destination is a required field + Destination *string `locationName:"destination" min:"1" type:"string" required:"true"` + + // The port associated with the destination. This is required only if the protocol + // is TCP and must be a number between 1 and 65536. + DestinationPort *int64 `locationName:"destinationPort" type:"integer"` + + // The time and date when the probe was last modified. + ModifiedAt *time.Time `locationName:"modifiedAt" type:"timestamp"` + + // The size of the packets sent between the source and destination. This will + // be a number between 56 and 8500. + PacketSize *int64 `locationName:"packetSize" min:"56" type:"integer"` + + // The ARN of the probe. + ProbeArn *string `locationName:"probeArn" min:"20" type:"string"` + + // The ID of the probe for which details are returned. + ProbeId *string `locationName:"probeId" type:"string"` + + // The protocol used for the network traffic between the source and destination. + // This will be either TCP or ICMP. + // + // Protocol is a required field + Protocol *string `locationName:"protocol" type:"string" required:"true" enum:"Protocol"` + + // The ARN of the probe. + // + // SourceArn is a required field + SourceArn *string `locationName:"sourceArn" min:"20" type:"string" required:"true"` + + // The state of the probe. + State *string `locationName:"state" type:"string" enum:"ProbeState"` + + // The list of key-value pairs assigned to the probe. + Tags map[string]*string `locationName:"tags" type:"map"` + + // The ID of the source VPC or subnet. + VpcId *string `locationName:"vpcId" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateProbeOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateProbeOutput) GoString() string { + return s.String() +} + +// SetAddressFamily sets the AddressFamily field's value. +func (s *CreateProbeOutput) SetAddressFamily(v string) *CreateProbeOutput { + s.AddressFamily = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *CreateProbeOutput) SetCreatedAt(v time.Time) *CreateProbeOutput { + s.CreatedAt = &v + return s +} + +// SetDestination sets the Destination field's value. +func (s *CreateProbeOutput) SetDestination(v string) *CreateProbeOutput { + s.Destination = &v + return s +} + +// SetDestinationPort sets the DestinationPort field's value. +func (s *CreateProbeOutput) SetDestinationPort(v int64) *CreateProbeOutput { + s.DestinationPort = &v + return s +} + +// SetModifiedAt sets the ModifiedAt field's value. +func (s *CreateProbeOutput) SetModifiedAt(v time.Time) *CreateProbeOutput { + s.ModifiedAt = &v + return s +} + +// SetPacketSize sets the PacketSize field's value. +func (s *CreateProbeOutput) SetPacketSize(v int64) *CreateProbeOutput { + s.PacketSize = &v + return s +} + +// SetProbeArn sets the ProbeArn field's value. +func (s *CreateProbeOutput) SetProbeArn(v string) *CreateProbeOutput { + s.ProbeArn = &v + return s +} + +// SetProbeId sets the ProbeId field's value. +func (s *CreateProbeOutput) SetProbeId(v string) *CreateProbeOutput { + s.ProbeId = &v + return s +} + +// SetProtocol sets the Protocol field's value. +func (s *CreateProbeOutput) SetProtocol(v string) *CreateProbeOutput { + s.Protocol = &v + return s +} + +// SetSourceArn sets the SourceArn field's value. +func (s *CreateProbeOutput) SetSourceArn(v string) *CreateProbeOutput { + s.SourceArn = &v + return s +} + +// SetState sets the State field's value. +func (s *CreateProbeOutput) SetState(v string) *CreateProbeOutput { + s.State = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateProbeOutput) SetTags(v map[string]*string) *CreateProbeOutput { + s.Tags = v + return s +} + +// SetVpcId sets the VpcId field's value. +func (s *CreateProbeOutput) SetVpcId(v string) *CreateProbeOutput { + s.VpcId = &v + return s +} + +type DeleteMonitorInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The name of the monitor to delete. Use the ListMonitors action to get a list + // of your current monitors. + // + // MonitorName is a required field + MonitorName *string `location:"uri" locationName:"monitorName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteMonitorInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteMonitorInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteMonitorInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteMonitorInput"} + if s.MonitorName == nil { + invalidParams.Add(request.NewErrParamRequired("MonitorName")) + } + if s.MonitorName != nil && len(*s.MonitorName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("MonitorName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMonitorName sets the MonitorName field's value. +func (s *DeleteMonitorInput) SetMonitorName(v string) *DeleteMonitorInput { + s.MonitorName = &v + return s +} + +type DeleteMonitorOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteMonitorOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteMonitorOutput) GoString() string { + return s.String() +} + +type DeleteProbeInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The name of the monitor to delete. For a list of the available monitors, + // use the ListMonitors action. + // + // MonitorName is a required field + MonitorName *string `location:"uri" locationName:"monitorName" min:"1" type:"string" required:"true"` + + // The ID of the probe to delete. Run GetMonitor to get a lst of all probes + // and probe IDs associated with the monitor. + // + // ProbeId is a required field + ProbeId *string `location:"uri" locationName:"probeId" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteProbeInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteProbeInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteProbeInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteProbeInput"} + if s.MonitorName == nil { + invalidParams.Add(request.NewErrParamRequired("MonitorName")) + } + if s.MonitorName != nil && len(*s.MonitorName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("MonitorName", 1)) + } + if s.ProbeId == nil { + invalidParams.Add(request.NewErrParamRequired("ProbeId")) + } + if s.ProbeId != nil && len(*s.ProbeId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ProbeId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMonitorName sets the MonitorName field's value. +func (s *DeleteProbeInput) SetMonitorName(v string) *DeleteProbeInput { + s.MonitorName = &v + return s +} + +// SetProbeId sets the ProbeId field's value. +func (s *DeleteProbeInput) SetProbeId(v string) *DeleteProbeInput { + s.ProbeId = &v + return s +} + +type DeleteProbeOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteProbeOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteProbeOutput) GoString() string { + return s.String() +} + +type GetMonitorInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The name of the monitor that details are returned for. + // + // MonitorName is a required field + MonitorName *string `location:"uri" locationName:"monitorName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetMonitorInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetMonitorInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetMonitorInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetMonitorInput"} + if s.MonitorName == nil { + invalidParams.Add(request.NewErrParamRequired("MonitorName")) + } + if s.MonitorName != nil && len(*s.MonitorName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("MonitorName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMonitorName sets the MonitorName field's value. +func (s *GetMonitorInput) SetMonitorName(v string) *GetMonitorInput { + s.MonitorName = &v + return s +} + +type GetMonitorOutput struct { + _ struct{} `type:"structure"` + + // The aggregation period for the specified monitor. + // + // AggregationPeriod is a required field + AggregationPeriod *int64 `locationName:"aggregationPeriod" min:"30" type:"long" required:"true"` + + // The time and date when the monitor was created. + // + // CreatedAt is a required field + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" required:"true"` + + // The time and date when the monitor was last modified. + // + // ModifiedAt is a required field + ModifiedAt *time.Time `locationName:"modifiedAt" type:"timestamp" required:"true"` + + // The ARN of the selected monitor. + // + // MonitorArn is a required field + MonitorArn *string `locationName:"monitorArn" min:"20" type:"string" required:"true"` + + // The name of the monitor. To get a list of the current monitors and their + // names, use the ListMonitors action. + // + // MonitorName is a required field + MonitorName *string `locationName:"monitorName" min:"1" type:"string" required:"true"` + + // The details about each probe associated with that monitor. + Probes []*Probe `locationName:"probes" type:"list"` + + // Returns a list of the state of each monitor. + // + // State is a required field + State *string `locationName:"state" type:"string" required:"true" enum:"MonitorState"` + + // The list of key-value pairs assigned to the monitor. + Tags map[string]*string `locationName:"tags" type:"map"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetMonitorOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetMonitorOutput) GoString() string { + return s.String() +} + +// SetAggregationPeriod sets the AggregationPeriod field's value. +func (s *GetMonitorOutput) SetAggregationPeriod(v int64) *GetMonitorOutput { + s.AggregationPeriod = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *GetMonitorOutput) SetCreatedAt(v time.Time) *GetMonitorOutput { + s.CreatedAt = &v + return s +} + +// SetModifiedAt sets the ModifiedAt field's value. +func (s *GetMonitorOutput) SetModifiedAt(v time.Time) *GetMonitorOutput { + s.ModifiedAt = &v + return s +} + +// SetMonitorArn sets the MonitorArn field's value. +func (s *GetMonitorOutput) SetMonitorArn(v string) *GetMonitorOutput { + s.MonitorArn = &v + return s +} + +// SetMonitorName sets the MonitorName field's value. +func (s *GetMonitorOutput) SetMonitorName(v string) *GetMonitorOutput { + s.MonitorName = &v + return s +} + +// SetProbes sets the Probes field's value. +func (s *GetMonitorOutput) SetProbes(v []*Probe) *GetMonitorOutput { + s.Probes = v + return s +} + +// SetState sets the State field's value. +func (s *GetMonitorOutput) SetState(v string) *GetMonitorOutput { + s.State = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *GetMonitorOutput) SetTags(v map[string]*string) *GetMonitorOutput { + s.Tags = v + return s +} + +type GetProbeInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The name of the monitor associated with the probe. Run ListMonitors to get + // a list of monitor names. + // + // MonitorName is a required field + MonitorName *string `location:"uri" locationName:"monitorName" min:"1" type:"string" required:"true"` + + // The ID of the probe to get information about. Run GetMonitor action to get + // a list of probes and probe IDs for the monitor. + // + // ProbeId is a required field + ProbeId *string `location:"uri" locationName:"probeId" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetProbeInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetProbeInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetProbeInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetProbeInput"} + if s.MonitorName == nil { + invalidParams.Add(request.NewErrParamRequired("MonitorName")) + } + if s.MonitorName != nil && len(*s.MonitorName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("MonitorName", 1)) + } + if s.ProbeId == nil { + invalidParams.Add(request.NewErrParamRequired("ProbeId")) + } + if s.ProbeId != nil && len(*s.ProbeId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ProbeId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMonitorName sets the MonitorName field's value. +func (s *GetProbeInput) SetMonitorName(v string) *GetProbeInput { + s.MonitorName = &v + return s +} + +// SetProbeId sets the ProbeId field's value. +func (s *GetProbeInput) SetProbeId(v string) *GetProbeInput { + s.ProbeId = &v + return s +} + +type GetProbeOutput struct { + _ struct{} `type:"structure"` + + // Indicates whether the IP address is IPV4 or IPV6. + AddressFamily *string `locationName:"addressFamily" type:"string" enum:"AddressFamily"` + + // The time and date that the probe was created. + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"` + + // The destination IP address for the monitor. This will be either an IPv4 or + // IPv6 address. + // + // Destination is a required field + Destination *string `locationName:"destination" min:"1" type:"string" required:"true"` + + // The port associated with the destination. This is required only if the protocol + // is TCP and must be a number between 1 and 65536. + DestinationPort *int64 `locationName:"destinationPort" type:"integer"` + + // The time and date that the probe was last modified. + ModifiedAt *time.Time `locationName:"modifiedAt" type:"timestamp"` + + // The size of the packets sent between the source and destination. This will + // be a number between 56 and 8500. + PacketSize *int64 `locationName:"packetSize" min:"56" type:"integer"` + + // The ARN of the probe. + ProbeArn *string `locationName:"probeArn" min:"20" type:"string"` + + // The ID of the probe for which details are returned. + ProbeId *string `locationName:"probeId" type:"string"` + + // The protocol used for the network traffic between the source and destination. + // This will be either TCP or ICMP. + // + // Protocol is a required field + Protocol *string `locationName:"protocol" type:"string" required:"true" enum:"Protocol"` + + // The ARN of the probe. + // + // SourceArn is a required field + SourceArn *string `locationName:"sourceArn" min:"20" type:"string" required:"true"` + + // The state of the probe. + State *string `locationName:"state" type:"string" enum:"ProbeState"` + + // The list of key-value pairs assigned to the probe. + Tags map[string]*string `locationName:"tags" type:"map"` + + // The ID of the source VPC or subnet. + VpcId *string `locationName:"vpcId" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetProbeOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetProbeOutput) GoString() string { + return s.String() +} + +// SetAddressFamily sets the AddressFamily field's value. +func (s *GetProbeOutput) SetAddressFamily(v string) *GetProbeOutput { + s.AddressFamily = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *GetProbeOutput) SetCreatedAt(v time.Time) *GetProbeOutput { + s.CreatedAt = &v + return s +} + +// SetDestination sets the Destination field's value. +func (s *GetProbeOutput) SetDestination(v string) *GetProbeOutput { + s.Destination = &v + return s +} + +// SetDestinationPort sets the DestinationPort field's value. +func (s *GetProbeOutput) SetDestinationPort(v int64) *GetProbeOutput { + s.DestinationPort = &v + return s +} + +// SetModifiedAt sets the ModifiedAt field's value. +func (s *GetProbeOutput) SetModifiedAt(v time.Time) *GetProbeOutput { + s.ModifiedAt = &v + return s +} + +// SetPacketSize sets the PacketSize field's value. +func (s *GetProbeOutput) SetPacketSize(v int64) *GetProbeOutput { + s.PacketSize = &v + return s +} + +// SetProbeArn sets the ProbeArn field's value. +func (s *GetProbeOutput) SetProbeArn(v string) *GetProbeOutput { + s.ProbeArn = &v + return s +} + +// SetProbeId sets the ProbeId field's value. +func (s *GetProbeOutput) SetProbeId(v string) *GetProbeOutput { + s.ProbeId = &v + return s +} + +// SetProtocol sets the Protocol field's value. +func (s *GetProbeOutput) SetProtocol(v string) *GetProbeOutput { + s.Protocol = &v + return s +} + +// SetSourceArn sets the SourceArn field's value. +func (s *GetProbeOutput) SetSourceArn(v string) *GetProbeOutput { + s.SourceArn = &v + return s +} + +// SetState sets the State field's value. +func (s *GetProbeOutput) SetState(v string) *GetProbeOutput { + s.State = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *GetProbeOutput) SetTags(v map[string]*string) *GetProbeOutput { + s.Tags = v + return s +} + +// SetVpcId sets the VpcId field's value. +func (s *GetProbeOutput) SetVpcId(v string) *GetProbeOutput { + s.VpcId = &v + return s +} + +// The request processing has failed because of an unknown error, exception +// or failure. +type InternalServerException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InternalServerException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InternalServerException) GoString() string { + return s.String() +} + +func newErrorInternalServerException(v protocol.ResponseMetadata) error { + return &InternalServerException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *InternalServerException) Code() string { + return "InternalServerException" +} + +// Message returns the exception's message. +func (s *InternalServerException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *InternalServerException) OrigErr() error { + return nil +} + +func (s *InternalServerException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *InternalServerException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *InternalServerException) RequestID() string { + return s.RespMetadata.RequestID +} + +type ListMonitorsInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The maximum number of results to return with a single call. To retrieve the + // remaining results, make another call with the returned nextToken value. + // + // If MaxResults is given a value larger than 100, only 100 results are returned. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // The token for the next page of results. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` + + // The list of all monitors and their states. + State *string `location:"querystring" locationName:"state" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListMonitorsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListMonitorsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListMonitorsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListMonitorsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListMonitorsInput) SetMaxResults(v int64) *ListMonitorsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListMonitorsInput) SetNextToken(v string) *ListMonitorsInput { + s.NextToken = &v + return s +} + +// SetState sets the State field's value. +func (s *ListMonitorsInput) SetState(v string) *ListMonitorsInput { + s.State = &v + return s +} + +type ListMonitorsOutput struct { + _ struct{} `type:"structure"` + + // Lists individual details about each of your monitors. + // + // Monitors is a required field + Monitors []*MonitorSummary `locationName:"monitors" type:"list" required:"true"` + + // The token for the next page of results. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListMonitorsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListMonitorsOutput) GoString() string { + return s.String() +} + +// SetMonitors sets the Monitors field's value. +func (s *ListMonitorsOutput) SetMonitors(v []*MonitorSummary) *ListMonitorsOutput { + s.Monitors = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListMonitorsOutput) SetNextToken(v string) *ListMonitorsOutput { + s.NextToken = &v + return s +} + +type ListTagsForResourceInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" min:"20" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTagsForResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTagsForResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListTagsForResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput { + s.ResourceArn = &v + return s +} + +type ListTagsForResourceOutput struct { + _ struct{} `type:"structure"` + + // Lists the tags assigned to the resource. + Tags map[string]*string `locationName:"tags" type:"map"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTagsForResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTagsForResourceOutput) GoString() string { + return s.String() +} + +// SetTags sets the Tags field's value. +func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForResourceOutput { + s.Tags = v + return s +} + +// Displays summary information about a monitor. +type MonitorSummary struct { + _ struct{} `type:"structure"` + + // The time, in seconds, that metrics are collected and sent to Amazon CloudWatch. + // Valid values are either 30 or 60. + AggregationPeriod *int64 `locationName:"aggregationPeriod" min:"30" type:"long"` + + // The ARN of the monitor. + // + // MonitorArn is a required field + MonitorArn *string `locationName:"monitorArn" min:"20" type:"string" required:"true"` + + // The name of the monitor. + // + // MonitorName is a required field + MonitorName *string `locationName:"monitorName" min:"1" type:"string" required:"true"` + + // The state of the monitor. + // + // State is a required field + State *string `locationName:"state" type:"string" required:"true" enum:"MonitorState"` + + // The list of key-value pairs assigned to the monitor. + Tags map[string]*string `locationName:"tags" type:"map"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s MonitorSummary) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s MonitorSummary) GoString() string { + return s.String() +} + +// SetAggregationPeriod sets the AggregationPeriod field's value. +func (s *MonitorSummary) SetAggregationPeriod(v int64) *MonitorSummary { + s.AggregationPeriod = &v + return s +} + +// SetMonitorArn sets the MonitorArn field's value. +func (s *MonitorSummary) SetMonitorArn(v string) *MonitorSummary { + s.MonitorArn = &v + return s +} + +// SetMonitorName sets the MonitorName field's value. +func (s *MonitorSummary) SetMonitorName(v string) *MonitorSummary { + s.MonitorName = &v + return s +} + +// SetState sets the State field's value. +func (s *MonitorSummary) SetState(v string) *MonitorSummary { + s.State = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *MonitorSummary) SetTags(v map[string]*string) *MonitorSummary { + s.Tags = v + return s +} + +// Describes information about a monitor probe. +type Probe struct { + _ struct{} `type:"structure"` + + // The IPv4 or IPv6 address for the probe. + AddressFamily *string `locationName:"addressFamily" type:"string" enum:"AddressFamily"` + + // The time and date the probe was created. + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"` + + // The destination for the probe. This should be either an IPV4 or IPV6. + // + // Destination is a required field + Destination *string `locationName:"destination" min:"1" type:"string" required:"true"` + + // The destination port for the probe. This is required only if the protocol + // is TCP and must be a number between 1 and 65536. + DestinationPort *int64 `locationName:"destinationPort" type:"integer"` + + // The time and date that the probe was last modified. + ModifiedAt *time.Time `locationName:"modifiedAt" type:"timestamp"` + + // The size of the packets traveling between the source and destination. This + // must be a number between 56 and + PacketSize *int64 `locationName:"packetSize" min:"56" type:"integer"` + + // The ARN of the probe. + ProbeArn *string `locationName:"probeArn" min:"20" type:"string"` + + // The ID of the probe. + ProbeId *string `locationName:"probeId" type:"string"` + + // The network protocol for the destination. This can be either TCP or ICMP. + // If the protocol is TCP, then port is also required. + // + // Protocol is a required field + Protocol *string `locationName:"protocol" type:"string" required:"true" enum:"Protocol"` + + // The ARN of the probe source subnet. + // + // SourceArn is a required field + SourceArn *string `locationName:"sourceArn" min:"20" type:"string" required:"true"` + + // The state of the probe. + State *string `locationName:"state" type:"string" enum:"ProbeState"` + + // The list of key-value pairs created and assigned to the probe. + Tags map[string]*string `locationName:"tags" type:"map"` + + // The ID of the source VPC subnet. + VpcId *string `locationName:"vpcId" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Probe) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Probe) GoString() string { + return s.String() +} + +// SetAddressFamily sets the AddressFamily field's value. +func (s *Probe) SetAddressFamily(v string) *Probe { + s.AddressFamily = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *Probe) SetCreatedAt(v time.Time) *Probe { + s.CreatedAt = &v + return s +} + +// SetDestination sets the Destination field's value. +func (s *Probe) SetDestination(v string) *Probe { + s.Destination = &v + return s +} + +// SetDestinationPort sets the DestinationPort field's value. +func (s *Probe) SetDestinationPort(v int64) *Probe { + s.DestinationPort = &v + return s +} + +// SetModifiedAt sets the ModifiedAt field's value. +func (s *Probe) SetModifiedAt(v time.Time) *Probe { + s.ModifiedAt = &v + return s +} + +// SetPacketSize sets the PacketSize field's value. +func (s *Probe) SetPacketSize(v int64) *Probe { + s.PacketSize = &v + return s +} + +// SetProbeArn sets the ProbeArn field's value. +func (s *Probe) SetProbeArn(v string) *Probe { + s.ProbeArn = &v + return s +} + +// SetProbeId sets the ProbeId field's value. +func (s *Probe) SetProbeId(v string) *Probe { + s.ProbeId = &v + return s +} + +// SetProtocol sets the Protocol field's value. +func (s *Probe) SetProtocol(v string) *Probe { + s.Protocol = &v + return s +} + +// SetSourceArn sets the SourceArn field's value. +func (s *Probe) SetSourceArn(v string) *Probe { + s.SourceArn = &v + return s +} + +// SetState sets the State field's value. +func (s *Probe) SetState(v string) *Probe { + s.State = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *Probe) SetTags(v map[string]*string) *Probe { + s.Tags = v + return s +} + +// SetVpcId sets the VpcId field's value. +func (s *Probe) SetVpcId(v string) *Probe { + s.VpcId = &v + return s +} + +// Defines a probe when creating a probe or monitor. +type ProbeInput_ struct { + _ struct{} `type:"structure"` + + // The destination IP address. This will be either IPV4 or IPV6. + // + // Destination is a required field + Destination *string `locationName:"destination" min:"1" type:"string" required:"true"` + + // The port associated with the destination. This is required only if the protocol + // is TCP and must be a number between 1 and 65536. + DestinationPort *int64 `locationName:"destinationPort" type:"integer"` + + // The size of the packets sent between the source and destination. This will + // be a number between 56 and 8500. + PacketSize *int64 `locationName:"packetSize" min:"56" type:"integer"` + + // The protocol used for the network traffic between the source and destination. + // This will be either TCP or ICMP. + // + // Protocol is a required field + Protocol *string `locationName:"protocol" type:"string" required:"true" enum:"Protocol"` + + // The ARN of the subnet. + // + // SourceArn is a required field + SourceArn *string `locationName:"sourceArn" min:"20" type:"string" required:"true"` + + // The list of key-value pairs created and assigned to the monitor. + Tags map[string]*string `locationName:"tags" type:"map"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ProbeInput_) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ProbeInput_) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ProbeInput_) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ProbeInput_"} + if s.Destination == nil { + invalidParams.Add(request.NewErrParamRequired("Destination")) + } + if s.Destination != nil && len(*s.Destination) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Destination", 1)) + } + if s.PacketSize != nil && *s.PacketSize < 56 { + invalidParams.Add(request.NewErrParamMinValue("PacketSize", 56)) + } + if s.Protocol == nil { + invalidParams.Add(request.NewErrParamRequired("Protocol")) + } + if s.SourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("SourceArn")) + } + if s.SourceArn != nil && len(*s.SourceArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("SourceArn", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDestination sets the Destination field's value. +func (s *ProbeInput_) SetDestination(v string) *ProbeInput_ { + s.Destination = &v + return s +} + +// SetDestinationPort sets the DestinationPort field's value. +func (s *ProbeInput_) SetDestinationPort(v int64) *ProbeInput_ { + s.DestinationPort = &v + return s +} + +// SetPacketSize sets the PacketSize field's value. +func (s *ProbeInput_) SetPacketSize(v int64) *ProbeInput_ { + s.PacketSize = &v + return s +} + +// SetProtocol sets the Protocol field's value. +func (s *ProbeInput_) SetProtocol(v string) *ProbeInput_ { + s.Protocol = &v + return s +} + +// SetSourceArn sets the SourceArn field's value. +func (s *ProbeInput_) SetSourceArn(v string) *ProbeInput_ { + s.SourceArn = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *ProbeInput_) SetTags(v map[string]*string) *ProbeInput_ { + s.Tags = v + return s +} + +// The specified resource does not exist. +type ResourceNotFoundException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceNotFoundException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceNotFoundException) GoString() string { + return s.String() +} + +func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error { + return &ResourceNotFoundException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ResourceNotFoundException) Code() string { + return "ResourceNotFoundException" +} + +// Message returns the exception's message. +func (s *ResourceNotFoundException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ResourceNotFoundException) OrigErr() error { + return nil +} + +func (s *ResourceNotFoundException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ResourceNotFoundException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ResourceNotFoundException) RequestID() string { + return s.RespMetadata.RequestID +} + +// This request exceeds a service quota. +type ServiceQuotaExceededException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceQuotaExceededException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceQuotaExceededException) GoString() string { + return s.String() +} + +func newErrorServiceQuotaExceededException(v protocol.ResponseMetadata) error { + return &ServiceQuotaExceededException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ServiceQuotaExceededException) Code() string { + return "ServiceQuotaExceededException" +} + +// Message returns the exception's message. +func (s *ServiceQuotaExceededException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ServiceQuotaExceededException) OrigErr() error { + return nil +} + +func (s *ServiceQuotaExceededException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ServiceQuotaExceededException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ServiceQuotaExceededException) RequestID() string { + return s.RespMetadata.RequestID +} + +type TagResourceInput struct { + _ struct{} `type:"structure"` + + // The ARN of the monitor or probe to tag. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" min:"20" type:"string" required:"true"` + + // The list of key-value pairs assigned to the monitor or probe. + // + // Tags is a required field + Tags map[string]*string `locationName:"tags" type:"map" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TagResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TagResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20)) + } + if s.Tags == nil { + invalidParams.Add(request.NewErrParamRequired("Tags")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput { + s.ResourceArn = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput { + s.Tags = v + return s +} + +type TagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TagResourceOutput) GoString() string { + return s.String() +} + +// The request was denied due to request throttling +type ThrottlingException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ThrottlingException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ThrottlingException) GoString() string { + return s.String() +} + +func newErrorThrottlingException(v protocol.ResponseMetadata) error { + return &ThrottlingException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ThrottlingException) Code() string { + return "ThrottlingException" +} + +// Message returns the exception's message. +func (s *ThrottlingException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ThrottlingException) OrigErr() error { + return nil +} + +func (s *ThrottlingException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ThrottlingException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ThrottlingException) RequestID() string { + return s.RespMetadata.RequestID +} + +type UntagResourceInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The ARN of the monitor or probe that the tag should be removed from. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" min:"20" type:"string" required:"true"` + + // The key-value pa + // + // TagKeys is a required field + TagKeys []*string `location:"querystring" locationName:"tagKeys" type:"list" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UntagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UntagResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UntagResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20)) + } + if s.TagKeys == nil { + invalidParams.Add(request.NewErrParamRequired("TagKeys")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput { + s.ResourceArn = &v + return s +} + +// SetTagKeys sets the TagKeys field's value. +func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput { + s.TagKeys = v + return s +} + +type UntagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UntagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UntagResourceOutput) GoString() string { + return s.String() +} + +type UpdateMonitorInput struct { + _ struct{} `type:"structure"` + + // The aggregation time, in seconds, to change to. This must be either 30 or + // 60. + // + // AggregationPeriod is a required field + AggregationPeriod *int64 `locationName:"aggregationPeriod" min:"30" type:"long" required:"true"` + + // The name of the monitor to update. Run ListMonitors to get a list of monitor + // names. + // + // MonitorName is a required field + MonitorName *string `location:"uri" locationName:"monitorName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateMonitorInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateMonitorInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateMonitorInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateMonitorInput"} + if s.AggregationPeriod == nil { + invalidParams.Add(request.NewErrParamRequired("AggregationPeriod")) + } + if s.AggregationPeriod != nil && *s.AggregationPeriod < 30 { + invalidParams.Add(request.NewErrParamMinValue("AggregationPeriod", 30)) + } + if s.MonitorName == nil { + invalidParams.Add(request.NewErrParamRequired("MonitorName")) + } + if s.MonitorName != nil && len(*s.MonitorName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("MonitorName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAggregationPeriod sets the AggregationPeriod field's value. +func (s *UpdateMonitorInput) SetAggregationPeriod(v int64) *UpdateMonitorInput { + s.AggregationPeriod = &v + return s +} + +// SetMonitorName sets the MonitorName field's value. +func (s *UpdateMonitorInput) SetMonitorName(v string) *UpdateMonitorInput { + s.MonitorName = &v + return s +} + +type UpdateMonitorOutput struct { + _ struct{} `type:"structure"` + + // The changed aggregation period. + AggregationPeriod *int64 `locationName:"aggregationPeriod" min:"30" type:"long"` + + // The ARN of the monitor that was updated. + // + // MonitorArn is a required field + MonitorArn *string `locationName:"monitorArn" min:"20" type:"string" required:"true"` + + // The name of the monitor that was updated. + // + // MonitorName is a required field + MonitorName *string `locationName:"monitorName" min:"1" type:"string" required:"true"` + + // The state of the updated monitor. + // + // State is a required field + State *string `locationName:"state" type:"string" required:"true" enum:"MonitorState"` + + // The list of key-value pairs associated with the monitor. + Tags map[string]*string `locationName:"tags" type:"map"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateMonitorOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateMonitorOutput) GoString() string { + return s.String() +} + +// SetAggregationPeriod sets the AggregationPeriod field's value. +func (s *UpdateMonitorOutput) SetAggregationPeriod(v int64) *UpdateMonitorOutput { + s.AggregationPeriod = &v + return s +} + +// SetMonitorArn sets the MonitorArn field's value. +func (s *UpdateMonitorOutput) SetMonitorArn(v string) *UpdateMonitorOutput { + s.MonitorArn = &v + return s +} + +// SetMonitorName sets the MonitorName field's value. +func (s *UpdateMonitorOutput) SetMonitorName(v string) *UpdateMonitorOutput { + s.MonitorName = &v + return s +} + +// SetState sets the State field's value. +func (s *UpdateMonitorOutput) SetState(v string) *UpdateMonitorOutput { + s.State = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *UpdateMonitorOutput) SetTags(v map[string]*string) *UpdateMonitorOutput { + s.Tags = v + return s +} + +type UpdateProbeInput struct { + _ struct{} `type:"structure"` + + // The updated IP address for the probe destination. This must be either an + // IPv4 or IPv6 address. + Destination *string `locationName:"destination" min:"1" type:"string"` + + // The updated port for the probe destination. This is required only if the + // protocol is TCP and must be a number between 1 and 65536. + DestinationPort *int64 `locationName:"destinationPort" type:"integer"` + + // The name of the monitor that the probe was updated for. + // + // MonitorName is a required field + MonitorName *string `location:"uri" locationName:"monitorName" min:"1" type:"string" required:"true"` + + // he updated packets size for network traffic between the source and destination. + // This must be a number between 56 and 8500. + PacketSize *int64 `locationName:"packetSize" min:"56" type:"integer"` + + // Run GetMonitor to get a list of probes and probe IDs. + // + // ProbeId is a required field + ProbeId *string `location:"uri" locationName:"probeId" type:"string" required:"true"` + + // The updated network protocol for the destination. This can be either TCP + // or ICMP. If the protocol is TCP, then port is also required. + Protocol *string `locationName:"protocol" type:"string" enum:"Protocol"` + + // The state of the probe update. + State *string `locationName:"state" type:"string" enum:"ProbeState"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateProbeInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateProbeInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateProbeInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateProbeInput"} + if s.Destination != nil && len(*s.Destination) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Destination", 1)) + } + if s.MonitorName == nil { + invalidParams.Add(request.NewErrParamRequired("MonitorName")) + } + if s.MonitorName != nil && len(*s.MonitorName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("MonitorName", 1)) + } + if s.PacketSize != nil && *s.PacketSize < 56 { + invalidParams.Add(request.NewErrParamMinValue("PacketSize", 56)) + } + if s.ProbeId == nil { + invalidParams.Add(request.NewErrParamRequired("ProbeId")) + } + if s.ProbeId != nil && len(*s.ProbeId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ProbeId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDestination sets the Destination field's value. +func (s *UpdateProbeInput) SetDestination(v string) *UpdateProbeInput { + s.Destination = &v + return s +} + +// SetDestinationPort sets the DestinationPort field's value. +func (s *UpdateProbeInput) SetDestinationPort(v int64) *UpdateProbeInput { + s.DestinationPort = &v + return s +} + +// SetMonitorName sets the MonitorName field's value. +func (s *UpdateProbeInput) SetMonitorName(v string) *UpdateProbeInput { + s.MonitorName = &v + return s +} + +// SetPacketSize sets the PacketSize field's value. +func (s *UpdateProbeInput) SetPacketSize(v int64) *UpdateProbeInput { + s.PacketSize = &v + return s +} + +// SetProbeId sets the ProbeId field's value. +func (s *UpdateProbeInput) SetProbeId(v string) *UpdateProbeInput { + s.ProbeId = &v + return s +} + +// SetProtocol sets the Protocol field's value. +func (s *UpdateProbeInput) SetProtocol(v string) *UpdateProbeInput { + s.Protocol = &v + return s +} + +// SetState sets the State field's value. +func (s *UpdateProbeInput) SetState(v string) *UpdateProbeInput { + s.State = &v + return s +} + +type UpdateProbeOutput struct { + _ struct{} `type:"structure"` + + // The updated IP address family. This will be either IPV4 or IPV6. + AddressFamily *string `locationName:"addressFamily" type:"string" enum:"AddressFamily"` + + // The time and date that the probe was created. + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"` + + // The updated destination IP address for the probe. + // + // Destination is a required field + Destination *string `locationName:"destination" min:"1" type:"string" required:"true"` + + // The updated destination port. This will be a number between 1 and 65536. + DestinationPort *int64 `locationName:"destinationPort" type:"integer"` + + // The time and date that the probe was last updated. + ModifiedAt *time.Time `locationName:"modifiedAt" type:"timestamp"` + + // The updated packet size for the probe. + PacketSize *int64 `locationName:"packetSize" min:"56" type:"integer"` + + // The updated ARN of the probe. + ProbeArn *string `locationName:"probeArn" min:"20" type:"string"` + + // The updated ID of the probe. + ProbeId *string `locationName:"probeId" type:"string"` + + // The updated protocol for the probe. + // + // Protocol is a required field + Protocol *string `locationName:"protocol" type:"string" required:"true" enum:"Protocol"` + + // The updated ARN of the source subnet. + // + // SourceArn is a required field + SourceArn *string `locationName:"sourceArn" min:"20" type:"string" required:"true"` + + // The state of the updated probe. + State *string `locationName:"state" type:"string" enum:"ProbeState"` + + // Update tags for a probe. + Tags map[string]*string `locationName:"tags" type:"map"` + + // The updated ID of the source VPC subnet ID. + VpcId *string `locationName:"vpcId" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateProbeOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateProbeOutput) GoString() string { + return s.String() +} + +// SetAddressFamily sets the AddressFamily field's value. +func (s *UpdateProbeOutput) SetAddressFamily(v string) *UpdateProbeOutput { + s.AddressFamily = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *UpdateProbeOutput) SetCreatedAt(v time.Time) *UpdateProbeOutput { + s.CreatedAt = &v + return s +} + +// SetDestination sets the Destination field's value. +func (s *UpdateProbeOutput) SetDestination(v string) *UpdateProbeOutput { + s.Destination = &v + return s +} + +// SetDestinationPort sets the DestinationPort field's value. +func (s *UpdateProbeOutput) SetDestinationPort(v int64) *UpdateProbeOutput { + s.DestinationPort = &v + return s +} + +// SetModifiedAt sets the ModifiedAt field's value. +func (s *UpdateProbeOutput) SetModifiedAt(v time.Time) *UpdateProbeOutput { + s.ModifiedAt = &v + return s +} + +// SetPacketSize sets the PacketSize field's value. +func (s *UpdateProbeOutput) SetPacketSize(v int64) *UpdateProbeOutput { + s.PacketSize = &v + return s +} + +// SetProbeArn sets the ProbeArn field's value. +func (s *UpdateProbeOutput) SetProbeArn(v string) *UpdateProbeOutput { + s.ProbeArn = &v + return s +} + +// SetProbeId sets the ProbeId field's value. +func (s *UpdateProbeOutput) SetProbeId(v string) *UpdateProbeOutput { + s.ProbeId = &v + return s +} + +// SetProtocol sets the Protocol field's value. +func (s *UpdateProbeOutput) SetProtocol(v string) *UpdateProbeOutput { + s.Protocol = &v + return s +} + +// SetSourceArn sets the SourceArn field's value. +func (s *UpdateProbeOutput) SetSourceArn(v string) *UpdateProbeOutput { + s.SourceArn = &v + return s +} + +// SetState sets the State field's value. +func (s *UpdateProbeOutput) SetState(v string) *UpdateProbeOutput { + s.State = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *UpdateProbeOutput) SetTags(v map[string]*string) *UpdateProbeOutput { + s.Tags = v + return s +} + +// SetVpcId sets the VpcId field's value. +func (s *UpdateProbeOutput) SetVpcId(v string) *UpdateProbeOutput { + s.VpcId = &v + return s +} + +// One of the parameters for the request is not valid. +type ValidationException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ValidationException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ValidationException) GoString() string { + return s.String() +} + +func newErrorValidationException(v protocol.ResponseMetadata) error { + return &ValidationException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ValidationException) Code() string { + return "ValidationException" +} + +// Message returns the exception's message. +func (s *ValidationException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ValidationException) OrigErr() error { + return nil +} + +func (s *ValidationException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ValidationException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ValidationException) RequestID() string { + return s.RespMetadata.RequestID +} + +const ( + // AddressFamilyIpv4 is a AddressFamily enum value + AddressFamilyIpv4 = "IPV4" + + // AddressFamilyIpv6 is a AddressFamily enum value + AddressFamilyIpv6 = "IPV6" +) + +// AddressFamily_Values returns all elements of the AddressFamily enum +func AddressFamily_Values() []string { + return []string{ + AddressFamilyIpv4, + AddressFamilyIpv6, + } +} + +const ( + // MonitorStatePending is a MonitorState enum value + MonitorStatePending = "PENDING" + + // MonitorStateActive is a MonitorState enum value + MonitorStateActive = "ACTIVE" + + // MonitorStateInactive is a MonitorState enum value + MonitorStateInactive = "INACTIVE" + + // MonitorStateError is a MonitorState enum value + MonitorStateError = "ERROR" + + // MonitorStateDeleting is a MonitorState enum value + MonitorStateDeleting = "DELETING" +) + +// MonitorState_Values returns all elements of the MonitorState enum +func MonitorState_Values() []string { + return []string{ + MonitorStatePending, + MonitorStateActive, + MonitorStateInactive, + MonitorStateError, + MonitorStateDeleting, + } +} + +const ( + // ProbeStatePending is a ProbeState enum value + ProbeStatePending = "PENDING" + + // ProbeStateActive is a ProbeState enum value + ProbeStateActive = "ACTIVE" + + // ProbeStateInactive is a ProbeState enum value + ProbeStateInactive = "INACTIVE" + + // ProbeStateError is a ProbeState enum value + ProbeStateError = "ERROR" + + // ProbeStateDeleting is a ProbeState enum value + ProbeStateDeleting = "DELETING" + + // ProbeStateDeleted is a ProbeState enum value + ProbeStateDeleted = "DELETED" +) + +// ProbeState_Values returns all elements of the ProbeState enum +func ProbeState_Values() []string { + return []string{ + ProbeStatePending, + ProbeStateActive, + ProbeStateInactive, + ProbeStateError, + ProbeStateDeleting, + ProbeStateDeleted, + } +} + +const ( + // ProtocolTcp is a Protocol enum value + ProtocolTcp = "TCP" + + // ProtocolIcmp is a Protocol enum value + ProtocolIcmp = "ICMP" +) + +// Protocol_Values returns all elements of the Protocol enum +func Protocol_Values() []string { + return []string{ + ProtocolTcp, + ProtocolIcmp, + } +} diff --git a/service/networkmonitor/doc.go b/service/networkmonitor/doc.go new file mode 100644 index 00000000000..624eaa4c8e5 --- /dev/null +++ b/service/networkmonitor/doc.go @@ -0,0 +1,40 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package networkmonitor provides the client and types for making API +// requests to Amazon CloudWatch Network Monitor. +// +// Amazon CloudWatch Network Monitor is an Amazon Web Services active network +// monitoring service that identifies if a network issues exists within the +// Amazon Web Services network or your own company network. Within Network Monitor +// you'll choose the source VPCs and subnets from the Amazon Web Services network +// in which you operate and then you'll choose the destination IP addresses +// from your on-premises network. From these sources and destinations, Network +// Monitor creates a monitor containing all the possible source and destination +// combinations, each of which is called a probe, within a single monitor. These +// probes then monitor network traffic to help you identify where network issues +// might be affecting your traffic. +// +// For more information, see Using Amazon CloudWatch Network Monitor (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/what-is-network-monitor.html) +// in the Amazon CloudWatch User Guide. +// +// See https://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01 for more information on this service. +// +// See networkmonitor package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/networkmonitor/ +// +// # Using the Client +// +// To contact Amazon CloudWatch Network Monitor with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the Amazon CloudWatch Network Monitor client NetworkMonitor for more +// information on creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/networkmonitor/#New +package networkmonitor diff --git a/service/networkmonitor/errors.go b/service/networkmonitor/errors.go new file mode 100644 index 00000000000..265b7da56ca --- /dev/null +++ b/service/networkmonitor/errors.go @@ -0,0 +1,63 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package networkmonitor + +import ( + "github.com/aws/aws-sdk-go/private/protocol" +) + +const ( + + // ErrCodeAccessDeniedException for service response error code + // "AccessDeniedException". + // + // You do not have sufficient access to perform this action. + ErrCodeAccessDeniedException = "AccessDeniedException" + + // ErrCodeConflictException for service response error code + // "ConflictException". + // + // This operation attempted to create a resource that already exists. + ErrCodeConflictException = "ConflictException" + + // ErrCodeInternalServerException for service response error code + // "InternalServerException". + // + // The request processing has failed because of an unknown error, exception + // or failure. + ErrCodeInternalServerException = "InternalServerException" + + // ErrCodeResourceNotFoundException for service response error code + // "ResourceNotFoundException". + // + // The specified resource does not exist. + ErrCodeResourceNotFoundException = "ResourceNotFoundException" + + // ErrCodeServiceQuotaExceededException for service response error code + // "ServiceQuotaExceededException". + // + // This request exceeds a service quota. + ErrCodeServiceQuotaExceededException = "ServiceQuotaExceededException" + + // ErrCodeThrottlingException for service response error code + // "ThrottlingException". + // + // The request was denied due to request throttling + ErrCodeThrottlingException = "ThrottlingException" + + // ErrCodeValidationException for service response error code + // "ValidationException". + // + // One of the parameters for the request is not valid. + ErrCodeValidationException = "ValidationException" +) + +var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ + "AccessDeniedException": newErrorAccessDeniedException, + "ConflictException": newErrorConflictException, + "InternalServerException": newErrorInternalServerException, + "ResourceNotFoundException": newErrorResourceNotFoundException, + "ServiceQuotaExceededException": newErrorServiceQuotaExceededException, + "ThrottlingException": newErrorThrottlingException, + "ValidationException": newErrorValidationException, +} diff --git a/service/networkmonitor/networkmonitoriface/interface.go b/service/networkmonitor/networkmonitoriface/interface.go new file mode 100644 index 00000000000..7afb493f945 --- /dev/null +++ b/service/networkmonitor/networkmonitoriface/interface.go @@ -0,0 +1,115 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package networkmonitoriface provides an interface to enable mocking the Amazon CloudWatch Network Monitor service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package networkmonitoriface + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/service/networkmonitor" +) + +// NetworkMonitorAPI provides an interface to enable mocking the +// networkmonitor.NetworkMonitor service client's API operation, +// paginators, and waiters. This make unit testing your code that calls out +// to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // Amazon CloudWatch Network Monitor. +// func myFunc(svc networkmonitoriface.NetworkMonitorAPI) bool { +// // Make svc.CreateMonitor request +// } +// +// func main() { +// sess := session.New() +// svc := networkmonitor.New(sess) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockNetworkMonitorClient struct { +// networkmonitoriface.NetworkMonitorAPI +// } +// func (m *mockNetworkMonitorClient) CreateMonitor(input *networkmonitor.CreateMonitorInput) (*networkmonitor.CreateMonitorOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockNetworkMonitorClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type NetworkMonitorAPI interface { + CreateMonitor(*networkmonitor.CreateMonitorInput) (*networkmonitor.CreateMonitorOutput, error) + CreateMonitorWithContext(aws.Context, *networkmonitor.CreateMonitorInput, ...request.Option) (*networkmonitor.CreateMonitorOutput, error) + CreateMonitorRequest(*networkmonitor.CreateMonitorInput) (*request.Request, *networkmonitor.CreateMonitorOutput) + + CreateProbe(*networkmonitor.CreateProbeInput) (*networkmonitor.CreateProbeOutput, error) + CreateProbeWithContext(aws.Context, *networkmonitor.CreateProbeInput, ...request.Option) (*networkmonitor.CreateProbeOutput, error) + CreateProbeRequest(*networkmonitor.CreateProbeInput) (*request.Request, *networkmonitor.CreateProbeOutput) + + DeleteMonitor(*networkmonitor.DeleteMonitorInput) (*networkmonitor.DeleteMonitorOutput, error) + DeleteMonitorWithContext(aws.Context, *networkmonitor.DeleteMonitorInput, ...request.Option) (*networkmonitor.DeleteMonitorOutput, error) + DeleteMonitorRequest(*networkmonitor.DeleteMonitorInput) (*request.Request, *networkmonitor.DeleteMonitorOutput) + + DeleteProbe(*networkmonitor.DeleteProbeInput) (*networkmonitor.DeleteProbeOutput, error) + DeleteProbeWithContext(aws.Context, *networkmonitor.DeleteProbeInput, ...request.Option) (*networkmonitor.DeleteProbeOutput, error) + DeleteProbeRequest(*networkmonitor.DeleteProbeInput) (*request.Request, *networkmonitor.DeleteProbeOutput) + + GetMonitor(*networkmonitor.GetMonitorInput) (*networkmonitor.GetMonitorOutput, error) + GetMonitorWithContext(aws.Context, *networkmonitor.GetMonitorInput, ...request.Option) (*networkmonitor.GetMonitorOutput, error) + GetMonitorRequest(*networkmonitor.GetMonitorInput) (*request.Request, *networkmonitor.GetMonitorOutput) + + GetProbe(*networkmonitor.GetProbeInput) (*networkmonitor.GetProbeOutput, error) + GetProbeWithContext(aws.Context, *networkmonitor.GetProbeInput, ...request.Option) (*networkmonitor.GetProbeOutput, error) + GetProbeRequest(*networkmonitor.GetProbeInput) (*request.Request, *networkmonitor.GetProbeOutput) + + ListMonitors(*networkmonitor.ListMonitorsInput) (*networkmonitor.ListMonitorsOutput, error) + ListMonitorsWithContext(aws.Context, *networkmonitor.ListMonitorsInput, ...request.Option) (*networkmonitor.ListMonitorsOutput, error) + ListMonitorsRequest(*networkmonitor.ListMonitorsInput) (*request.Request, *networkmonitor.ListMonitorsOutput) + + ListMonitorsPages(*networkmonitor.ListMonitorsInput, func(*networkmonitor.ListMonitorsOutput, bool) bool) error + ListMonitorsPagesWithContext(aws.Context, *networkmonitor.ListMonitorsInput, func(*networkmonitor.ListMonitorsOutput, bool) bool, ...request.Option) error + + ListTagsForResource(*networkmonitor.ListTagsForResourceInput) (*networkmonitor.ListTagsForResourceOutput, error) + ListTagsForResourceWithContext(aws.Context, *networkmonitor.ListTagsForResourceInput, ...request.Option) (*networkmonitor.ListTagsForResourceOutput, error) + ListTagsForResourceRequest(*networkmonitor.ListTagsForResourceInput) (*request.Request, *networkmonitor.ListTagsForResourceOutput) + + TagResource(*networkmonitor.TagResourceInput) (*networkmonitor.TagResourceOutput, error) + TagResourceWithContext(aws.Context, *networkmonitor.TagResourceInput, ...request.Option) (*networkmonitor.TagResourceOutput, error) + TagResourceRequest(*networkmonitor.TagResourceInput) (*request.Request, *networkmonitor.TagResourceOutput) + + UntagResource(*networkmonitor.UntagResourceInput) (*networkmonitor.UntagResourceOutput, error) + UntagResourceWithContext(aws.Context, *networkmonitor.UntagResourceInput, ...request.Option) (*networkmonitor.UntagResourceOutput, error) + UntagResourceRequest(*networkmonitor.UntagResourceInput) (*request.Request, *networkmonitor.UntagResourceOutput) + + UpdateMonitor(*networkmonitor.UpdateMonitorInput) (*networkmonitor.UpdateMonitorOutput, error) + UpdateMonitorWithContext(aws.Context, *networkmonitor.UpdateMonitorInput, ...request.Option) (*networkmonitor.UpdateMonitorOutput, error) + UpdateMonitorRequest(*networkmonitor.UpdateMonitorInput) (*request.Request, *networkmonitor.UpdateMonitorOutput) + + UpdateProbe(*networkmonitor.UpdateProbeInput) (*networkmonitor.UpdateProbeOutput, error) + UpdateProbeWithContext(aws.Context, *networkmonitor.UpdateProbeInput, ...request.Option) (*networkmonitor.UpdateProbeOutput, error) + UpdateProbeRequest(*networkmonitor.UpdateProbeInput) (*request.Request, *networkmonitor.UpdateProbeOutput) +} + +var _ NetworkMonitorAPI = (*networkmonitor.NetworkMonitor)(nil) diff --git a/service/networkmonitor/service.go b/service/networkmonitor/service.go new file mode 100644 index 00000000000..842410fa332 --- /dev/null +++ b/service/networkmonitor/service.go @@ -0,0 +1,106 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package networkmonitor + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/client" + "github.com/aws/aws-sdk-go/aws/client/metadata" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/aws/signer/v4" + "github.com/aws/aws-sdk-go/private/protocol" + "github.com/aws/aws-sdk-go/private/protocol/restjson" +) + +// NetworkMonitor provides the API operation methods for making requests to +// Amazon CloudWatch Network Monitor. See this package's package overview docs +// for details on the service. +// +// NetworkMonitor methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type NetworkMonitor struct { + *client.Client +} + +// Used for custom client initialization logic +var initClient func(*client.Client) + +// Used for custom request initialization logic +var initRequest func(*request.Request) + +// Service information constants +const ( + ServiceName = "NetworkMonitor" // Name of service. + EndpointsID = "networkmonitor" // ID to lookup a service endpoint with. + ServiceID = "NetworkMonitor" // ServiceID is a unique identifier of a specific service. +) + +// New creates a new instance of the NetworkMonitor client with a session. +// If additional configuration is needed for the client instance use the optional +// aws.Config parameter to add your extra config. +// +// Example: +// +// mySession := session.Must(session.NewSession()) +// +// // Create a NetworkMonitor client from just a session. +// svc := networkmonitor.New(mySession) +// +// // Create a NetworkMonitor client with additional configuration +// svc := networkmonitor.New(mySession, aws.NewConfig().WithRegion("us-west-2")) +func New(p client.ConfigProvider, cfgs ...*aws.Config) *NetworkMonitor { + c := p.ClientConfig(EndpointsID, cfgs...) + if c.SigningNameDerived || len(c.SigningName) == 0 { + c.SigningName = "networkmonitor" + } + return newClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName, c.ResolvedRegion) +} + +// newClient creates, initializes and returns a new service client instance. +func newClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName, resolvedRegion string) *NetworkMonitor { + svc := &NetworkMonitor{ + Client: client.New( + cfg, + metadata.ClientInfo{ + ServiceName: ServiceName, + ServiceID: ServiceID, + SigningName: signingName, + SigningRegion: signingRegion, + PartitionID: partitionID, + Endpoint: endpoint, + APIVersion: "2023-08-01", + ResolvedRegion: resolvedRegion, + }, + handlers, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(restjson.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed( + protocol.NewUnmarshalErrorHandler(restjson.NewUnmarshalTypedError(exceptionFromCode)).NamedHandler(), + ) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc.Client) + } + + return svc +} + +// newRequest creates a new request for a NetworkMonitor operation and runs any +// custom request initialization. +func (c *NetworkMonitor) newRequest(op *request.Operation, params, data interface{}) *request.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(req) + } + + return req +} diff --git a/service/omics/api.go b/service/omics/api.go index 5d260d20c60..d78b26d3e80 100644 --- a/service/omics/api.go +++ b/service/omics/api.go @@ -5039,7 +5039,9 @@ func (c *Omics) ListMultipartReadSetUploadsRequest(input *ListMultipartReadSetUp // ListMultipartReadSetUploads API operation for Amazon Omics. // -// Lists all multipart read set uploads and their statuses. +// Lists multipart read set uploads and for in progress uploads. Once the upload +// is completed, a read set is created and the upload will no longer be returned +// in the respone. // // 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 @@ -12326,7 +12328,7 @@ type CreateWorkflowInput struct { // each request. RequestId *string `locationName:"requestId" min:"1" type:"string" idempotencyToken:"true"` - // A storage capacity for the workflow in gigabytes. + // A storage capacity for the workflow in gibibytes. StorageCapacity *int64 `locationName:"storageCapacity" type:"integer"` // Tags for the workflow. diff --git a/service/s3/examples_test.go b/service/s3/examples_test.go index 448738ca983..cf293cccece 100644 --- a/service/s3/examples_test.go +++ b/service/s3/examples_test.go @@ -125,16 +125,12 @@ func ExampleS3_CopyObject_shared00() { fmt.Println(result) } -// To create a bucket in a specific region -// The following example creates a bucket. The request specifies an AWS region where -// to create the bucket. +// To create a bucket +// The following example creates a bucket. func ExampleS3_CreateBucket_shared00() { svc := s3.New(session.New()) input := &s3.CreateBucketInput{ Bucket: aws.String("examplebucket"), - CreateBucketConfiguration: &s3.CreateBucketConfiguration{ - LocationConstraint: aws.String("eu-west-1"), - }, } result, err := svc.CreateBucket(input) @@ -159,12 +155,16 @@ func ExampleS3_CreateBucket_shared00() { fmt.Println(result) } -// To create a bucket -// The following example creates a bucket. +// To create a bucket in a specific region +// The following example creates a bucket. The request specifies an AWS region where +// to create the bucket. func ExampleS3_CreateBucket_shared01() { svc := s3.New(session.New()) input := &s3.CreateBucketInput{ Bucket: aws.String("examplebucket"), + CreateBucketConfiguration: &s3.CreateBucketConfiguration{ + LocationConstraint: aws.String("eu-west-1"), + }, } result, err := svc.CreateBucket(input) @@ -398,13 +398,13 @@ func ExampleS3_DeleteBucketWebsite_shared00() { fmt.Println(result) } -// To delete an object -// The following example deletes an object from an S3 bucket. +// To delete an object (from a non-versioned bucket) +// The following example deletes an object from a non-versioned bucket. func ExampleS3_DeleteObject_shared00() { svc := s3.New(session.New()) input := &s3.DeleteObjectInput{ - Bucket: aws.String("examplebucket"), - Key: aws.String("objectkey.jpg"), + Bucket: aws.String("ExampleBucket"), + Key: aws.String("HappyFace.jpg"), } result, err := svc.DeleteObject(input) @@ -425,13 +425,13 @@ func ExampleS3_DeleteObject_shared00() { fmt.Println(result) } -// To delete an object (from a non-versioned bucket) -// The following example deletes an object from a non-versioned bucket. +// To delete an object +// The following example deletes an object from an S3 bucket. func ExampleS3_DeleteObject_shared01() { svc := s3.New(session.New()) input := &s3.DeleteObjectInput{ - Bucket: aws.String("ExampleBucket"), - Key: aws.String("HappyFace.jpg"), + Bucket: aws.String("examplebucket"), + Key: aws.String("objectkey.jpg"), } result, err := svc.DeleteObject(input) @@ -903,13 +903,15 @@ func ExampleS3_GetBucketWebsite_shared00() { fmt.Println(result) } -// To retrieve an object -// The following example retrieves an object for an S3 bucket. +// To retrieve a byte range of an object +// The following example retrieves an object for an S3 bucket. The request specifies +// the range header to retrieve a specific byte range. func ExampleS3_GetObject_shared00() { svc := s3.New(session.New()) input := &s3.GetObjectInput{ Bucket: aws.String("examplebucket"), - Key: aws.String("HappyFace.jpg"), + Key: aws.String("SampleFile.txt"), + Range: aws.String("bytes=0-9"), } result, err := svc.GetObject(input) @@ -934,15 +936,13 @@ func ExampleS3_GetObject_shared00() { fmt.Println(result) } -// To retrieve a byte range of an object -// The following example retrieves an object for an S3 bucket. The request specifies -// the range header to retrieve a specific byte range. +// To retrieve an object +// The following example retrieves an object for an S3 bucket. func ExampleS3_GetObject_shared01() { svc := s3.New(session.New()) input := &s3.GetObjectInput{ Bucket: aws.String("examplebucket"), - Key: aws.String("SampleFile.txt"), - Range: aws.String("bytes=0-9"), + Key: aws.String("HappyFace.jpg"), } result, err := svc.GetObject(input) @@ -1158,16 +1158,12 @@ func ExampleS3_ListBuckets_shared00() { fmt.Println(result) } -// List next set of multipart uploads when previous result is truncated -// The following example specifies the upload-id-marker and key-marker from previous -// truncated response to retrieve next setup of multipart uploads. +// To list in-progress multipart uploads on a bucket +// The following example lists in-progress multipart uploads on a specific bucket. func ExampleS3_ListMultipartUploads_shared00() { svc := s3.New(session.New()) input := &s3.ListMultipartUploadsInput{ - Bucket: aws.String("examplebucket"), - KeyMarker: aws.String("nextkeyfrompreviousresponse"), - MaxUploads: aws.Int64(2), - UploadIdMarker: aws.String("valuefrompreviousresponse"), + Bucket: aws.String("examplebucket"), } result, err := svc.ListMultipartUploads(input) @@ -1188,12 +1184,16 @@ func ExampleS3_ListMultipartUploads_shared00() { fmt.Println(result) } -// To list in-progress multipart uploads on a bucket -// The following example lists in-progress multipart uploads on a specific bucket. +// List next set of multipart uploads when previous result is truncated +// The following example specifies the upload-id-marker and key-marker from previous +// truncated response to retrieve next setup of multipart uploads. func ExampleS3_ListMultipartUploads_shared01() { svc := s3.New(session.New()) input := &s3.ListMultipartUploadsInput{ - Bucket: aws.String("examplebucket"), + Bucket: aws.String("examplebucket"), + KeyMarker: aws.String("nextkeyfrompreviousresponse"), + MaxUploads: aws.Int64(2), + UploadIdMarker: aws.String("valuefrompreviousresponse"), } result, err := svc.ListMultipartUploads(input) @@ -1748,15 +1748,18 @@ func ExampleS3_PutBucketWebsite_shared00() { fmt.Println(result) } -// To create an object. -// The following example creates an object. If the bucket is versioning enabled, S3 -// returns version ID in response. +// To upload an object and specify server-side encryption and object tags +// The following example uploads an object. The request specifies the optional server-side +// encryption option. The request also specifies optional object tags. If the bucket +// is versioning enabled, S3 returns version ID in response. func ExampleS3_PutObject_shared00() { svc := s3.New(session.New()) input := &s3.PutObjectInput{ - Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), - Bucket: aws.String("examplebucket"), - Key: aws.String("objectkey"), + Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), + Bucket: aws.String("examplebucket"), + Key: aws.String("exampleobject"), + ServerSideEncryption: aws.String("AES256"), + Tagging: aws.String("key1=value1&key2=value2"), } result, err := svc.PutObject(input) @@ -1777,16 +1780,15 @@ func ExampleS3_PutObject_shared00() { fmt.Println(result) } -// To upload an object -// The following example uploads an object to a versioning-enabled bucket. The source -// file is specified using Windows file syntax. S3 returns VersionId of the newly created -// object. +// To create an object. +// The following example creates an object. If the bucket is versioning enabled, S3 +// returns version ID in response. func ExampleS3_PutObject_shared01() { svc := s3.New(session.New()) input := &s3.PutObjectInput{ - Body: aws.ReadSeekCloser(strings.NewReader("HappyFace.jpg")), + Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), Bucket: aws.String("examplebucket"), - Key: aws.String("HappyFace.jpg"), + Key: aws.String("objectkey"), } result, err := svc.PutObject(input) @@ -1807,19 +1809,17 @@ func ExampleS3_PutObject_shared01() { fmt.Println(result) } -// To upload object and specify user-defined metadata -// The following example creates an object. The request also specifies optional metadata. -// If the bucket is versioning enabled, S3 returns version ID in response. +// To upload an object (specify optional headers) +// The following example uploads an object. The request specifies optional request headers +// to directs S3 to use specific storage class and use server-side encryption. func ExampleS3_PutObject_shared02() { svc := s3.New(session.New()) input := &s3.PutObjectInput{ - Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), - Bucket: aws.String("examplebucket"), - Key: aws.String("exampleobject"), - Metadata: map[string]*string{ - "metadata1": aws.String("value1"), - "metadata2": aws.String("value2"), - }, + Body: aws.ReadSeekCloser(strings.NewReader("HappyFace.jpg")), + Bucket: aws.String("examplebucket"), + Key: aws.String("HappyFace.jpg"), + ServerSideEncryption: aws.String("AES256"), + StorageClass: aws.String("STANDARD_IA"), } result, err := svc.PutObject(input) @@ -1870,17 +1870,19 @@ func ExampleS3_PutObject_shared03() { fmt.Println(result) } -// To upload an object (specify optional headers) -// The following example uploads an object. The request specifies optional request headers -// to directs S3 to use specific storage class and use server-side encryption. +// To upload object and specify user-defined metadata +// The following example creates an object. The request also specifies optional metadata. +// If the bucket is versioning enabled, S3 returns version ID in response. func ExampleS3_PutObject_shared04() { svc := s3.New(session.New()) input := &s3.PutObjectInput{ - Body: aws.ReadSeekCloser(strings.NewReader("HappyFace.jpg")), - Bucket: aws.String("examplebucket"), - Key: aws.String("HappyFace.jpg"), - ServerSideEncryption: aws.String("AES256"), - StorageClass: aws.String("STANDARD_IA"), + Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), + Bucket: aws.String("examplebucket"), + Key: aws.String("exampleobject"), + Metadata: map[string]*string{ + "metadata1": aws.String("value1"), + "metadata2": aws.String("value2"), + }, } result, err := svc.PutObject(input) @@ -1901,18 +1903,17 @@ func ExampleS3_PutObject_shared04() { fmt.Println(result) } -// To upload an object and specify server-side encryption and object tags -// The following example uploads an object. The request specifies the optional server-side -// encryption option. The request also specifies optional object tags. If the bucket -// is versioning enabled, S3 returns version ID in response. +// To upload an object and specify canned ACL. +// The following example uploads and object. The request specifies optional canned ACL +// (access control list) to all READ access to authenticated users. If the bucket is +// versioning enabled, S3 returns version ID in response. func ExampleS3_PutObject_shared05() { svc := s3.New(session.New()) input := &s3.PutObjectInput{ - Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), - Bucket: aws.String("examplebucket"), - Key: aws.String("exampleobject"), - ServerSideEncryption: aws.String("AES256"), - Tagging: aws.String("key1=value1&key2=value2"), + ACL: aws.String("authenticated-read"), + Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), + Bucket: aws.String("examplebucket"), + Key: aws.String("exampleobject"), } result, err := svc.PutObject(input) @@ -1933,17 +1934,16 @@ func ExampleS3_PutObject_shared05() { fmt.Println(result) } -// To upload an object and specify canned ACL. -// The following example uploads and object. The request specifies optional canned ACL -// (access control list) to all READ access to authenticated users. If the bucket is -// versioning enabled, S3 returns version ID in response. +// To upload an object +// The following example uploads an object to a versioning-enabled bucket. The source +// file is specified using Windows file syntax. S3 returns VersionId of the newly created +// object. func ExampleS3_PutObject_shared06() { svc := s3.New(session.New()) input := &s3.PutObjectInput{ - ACL: aws.String("authenticated-read"), - Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), + Body: aws.ReadSeekCloser(strings.NewReader("HappyFace.jpg")), Bucket: aws.String("examplebucket"), - Key: aws.String("exampleobject"), + Key: aws.String("HappyFace.jpg"), } result, err := svc.PutObject(input)