Skip to content

Commit 9be2bc5

Browse files
author
AWS
committed
CloudWatch Observability Access Manager Update: This release introduces support for Source Accounts to define which Metrics and Logs to share with the Monitoring Account
1 parent 42c9a33 commit 9be2bc5

File tree

2 files changed

+97
-24
lines changed

2 files changed

+97
-24
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"type": "feature",
3+
"category": "CloudWatch Observability Access Manager",
4+
"contributor": "",
5+
"description": "This release introduces support for Source Accounts to define which Metrics and Logs to share with the Monitoring Account"
6+
}

services/oam/src/main/resources/codegen-resources/service-2.json

Lines changed: 91 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
"endpointPrefix":"oam",
66
"jsonVersion":"1.1",
77
"protocol":"rest-json",
8+
"protocols":["rest-json"],
89
"serviceFullName":"CloudWatch Observability Access Manager",
910
"serviceId":"OAM",
1011
"signatureVersion":"v4",
@@ -28,7 +29,7 @@
2829
{"shape":"ServiceQuotaExceededException"},
2930
{"shape":"InvalidParameterException"}
3031
],
31-
"documentation":"<p>Creates a link between a source account and a sink that you have created in a monitoring account.</p> <p>Before you create a link, you must create a sink in the monitoring account and create a sink policy in that account. The sink policy must permit the source account to link to it. You can grant permission to source accounts by granting permission to an entire organization or to individual accounts.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/OAM/latest/APIReference/API_CreateSink.html\">CreateSink</a> and <a href=\"https://docs.aws.amazon.com/OAM/latest/APIReference/API_PutSinkPolicy.html\">PutSinkPolicy</a>.</p> <p>Each monitoring account can be linked to as many as 100,000 source accounts.</p> <p>Each source account can be linked to as many as five monitoring accounts.</p>"
32+
"documentation":"<p>Creates a link between a source account and a sink that you have created in a monitoring account. After the link is created, data is sent from the source account to the monitoring account. When you create a link, you can optionally specify filters that specify which metric namespaces and which log groups are shared from the source account to the monitoring account.</p> <p>Before you create a link, you must create a sink in the monitoring account and create a sink policy in that account. The sink policy must permit the source account to link to it. You can grant permission to source accounts by granting permission to an entire organization or to individual accounts.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/OAM/latest/APIReference/API_CreateSink.html\">CreateSink</a> and <a href=\"https://docs.aws.amazon.com/OAM/latest/APIReference/API_PutSinkPolicy.html\">PutSinkPolicy</a>.</p> <p>Each monitoring account can be linked to as many as 100,000 source accounts.</p> <p>Each source account can be linked to as many as five monitoring accounts.</p>"
3233
},
3334
"CreateSink":{
3435
"name":"CreateSink",
@@ -46,7 +47,7 @@
4647
{"shape":"ServiceQuotaExceededException"},
4748
{"shape":"InvalidParameterException"}
4849
],
49-
"documentation":"<p>Use this to create a <i>sink</i> in the current account, so that it can be used as a monitoring account in CloudWatch cross-account observability. A sink is a resource that represents an attachment point in a monitoring account. Source accounts can link to the sink to send observability data.</p> <p>After you create a sink, you must create a sink policy that allows source accounts to attach to it. For more information, see <a href=\"https://docs.aws.amazon.com/OAM/latest/APIReference/API_PutSinkPolicy.html\">PutSinkPolicy</a>.</p> <p>Each account can contain one sink. If you delete a sink, you can then create a new one in that account.</p>"
50+
"documentation":"<p>Use this to create a <i>sink</i> in the current account, so that it can be used as a monitoring account in CloudWatch cross-account observability. A sink is a resource that represents an attachment point in a monitoring account. Source accounts can link to the sink to send observability data.</p> <p>After you create a sink, you must create a sink policy that allows source accounts to attach to it. For more information, see <a href=\"https://docs.aws.amazon.com/OAM/latest/APIReference/API_PutSinkPolicy.html\">PutSinkPolicy</a>.</p> <p>Each account can contain one sink per Region. If you delete a sink, you can then create a new one in that Region.</p>"
5051
},
5152
"DeleteLink":{
5253
"name":"DeleteLink",
@@ -261,13 +262,13 @@
261262
{"shape":"InvalidParameterException"},
262263
{"shape":"ResourceNotFoundException"}
263264
],
264-
"documentation":"<p>Use this operation to change what types of data are shared from a source account to its linked monitoring account sink. You can't change the sink or change the monitoring account with this operation.</p> <p>To update the list of tags associated with the sink, use <a href=\"https://docs.aws.amazon.com/OAM/latest/APIReference/API_TagResource.html\">TagResource</a>.</p>"
265+
"documentation":"<p>Use this operation to change what types of data are shared from a source account to its linked monitoring account sink. You can't change the sink or change the monitoring account with this operation.</p> <p>When you update a link, you can optionally specify filters that specify which metric namespaces and which log groups are shared from the source account to the monitoring account.</p> <p>To update the list of tags associated with the sink, use <a href=\"https://docs.aws.amazon.com/OAM/latest/APIReference/API_TagResource.html\">TagResource</a>.</p>"
265266
}
266267
},
267268
"shapes":{
268269
"Arn":{
269270
"type":"string",
270-
"pattern":"arn:(\\w|-)+:oam:.+:.+:.+.*"
271+
"pattern":"^arn:(\\w|-)+:oam:.+:.+:.+"
271272
},
272273
"ConflictException":{
273274
"type":"structure",
@@ -299,6 +300,10 @@
299300
"shape":"LabelTemplate",
300301
"documentation":"<p>Specify a friendly human-readable name to use to identify this source account when you are viewing data from it in the monitoring account.</p> <p>You can use a custom label or use the following variables:</p> <ul> <li> <p> <code>$AccountName</code> is the name of the account</p> </li> <li> <p> <code>$AccountEmail</code> is the globally unique email address of the account</p> </li> <li> <p> <code>$AccountEmailNoDomain</code> is the email address of the account without the domain name</p> </li> </ul>"
301302
},
303+
"LinkConfiguration":{
304+
"shape":"LinkConfiguration",
305+
"documentation":"<p>Use this structure to optionally create filters that specify that only some metric namespaces or log groups are to be shared from the source account to the monitoring account.</p>"
306+
},
302307
"ResourceTypes":{
303308
"shape":"ResourceTypesInput",
304309
"documentation":"<p>An array of strings that define which types of data that the source account shares with the monitoring account.</p>"
@@ -332,6 +337,10 @@
332337
"shape":"String",
333338
"documentation":"<p>The exact label template that you specified, with the variables not resolved.</p>"
334339
},
340+
"LinkConfiguration":{
341+
"shape":"LinkConfiguration",
342+
"documentation":"<p>This structure includes filters that specify which metric namespaces and which log groups are shared from the source account to the monitoring account.</p>"
343+
},
335344
"ResourceTypes":{
336345
"shape":"ResourceTypesOutput",
337346
"documentation":"<p>The resource types supported by this link.</p>"
@@ -440,6 +449,10 @@
440449
"shape":"String",
441450
"documentation":"<p>The exact label template that was specified when the link was created, with the template variables not resolved.</p>"
442451
},
452+
"LinkConfiguration":{
453+
"shape":"LinkConfiguration",
454+
"documentation":"<p>This structure includes filters that specify which metric namespaces and which log groups are shared from the source account to the monitoring account.</p>"
455+
},
443456
"ResourceTypes":{
444457
"shape":"ResourceTypesOutput",
445458
"documentation":"<p>The resource types supported by this link.</p>"
@@ -498,17 +511,17 @@
498511
"GetSinkPolicyOutput":{
499512
"type":"structure",
500513
"members":{
514+
"Policy":{
515+
"shape":"String",
516+
"documentation":"<p>The policy that you specified, in JSON format.</p>"
517+
},
501518
"SinkArn":{
502519
"shape":"String",
503520
"documentation":"<p>The ARN of the sink.</p>"
504521
},
505522
"SinkId":{
506523
"shape":"String",
507524
"documentation":"<p>The random ID string that Amazon Web Services generated as part of the sink ARN.</p>"
508-
},
509-
"Policy":{
510-
"shape":"String",
511-
"documentation":"<p>The policy that you specified, in JSON format.</p>"
512525
}
513526
}
514527
},
@@ -531,13 +544,13 @@
531544
"InvalidParameterException":{
532545
"type":"structure",
533546
"members":{
534-
"message":{"shape":"String"},
535547
"amznErrorType":{
536548
"shape":"String",
537549
"documentation":"<p>The name of the exception.</p>",
538550
"location":"header",
539551
"locationName":"x-amzn-ErrorType"
540-
}
552+
},
553+
"message":{"shape":"String"}
541554
},
542555
"documentation":"<p>A parameter is specified incorrectly.</p>",
543556
"error":{
@@ -551,6 +564,20 @@
551564
"max":64,
552565
"min":1
553566
},
567+
"LinkConfiguration":{
568+
"type":"structure",
569+
"members":{
570+
"LogGroupConfiguration":{
571+
"shape":"LogGroupConfiguration",
572+
"documentation":"<p>Use this structure to filter which log groups are to send log events from the source account to the monitoring account.</p>"
573+
},
574+
"MetricConfiguration":{
575+
"shape":"MetricConfiguration",
576+
"documentation":"<p>Use this structure to filter which metric namespaces are to be shared from the source account to the monitoring account.</p>"
577+
}
578+
},
579+
"documentation":"<p>Use this structure to optionally create filters that specify that only some metric namespaces or log groups are to be shared from the source account to the monitoring account.</p>"
580+
},
554581
"ListAttachedLinksInput":{
555582
"type":"structure",
556583
"required":["SinkIdentifier"],
@@ -750,16 +777,48 @@
750777
}
751778
}
752779
},
780+
"LogGroupConfiguration":{
781+
"type":"structure",
782+
"required":["Filter"],
783+
"members":{
784+
"Filter":{
785+
"shape":"LogsFilter",
786+
"documentation":"<p>Use this field to specify which log groups are to share their log events with the monitoring account. Use the term <code>LogGroupName</code> and one or more of the following operands. Use single quotation marks (') around log group names. The matching of log group names is case sensitive. Each filter has a limit of five conditional operands. Conditional operands are <code>AND</code> and <code>OR</code>.</p> <ul> <li> <p> <code>=</code> and <code>!=</code> </p> </li> <li> <p> <code>AND</code> </p> </li> <li> <p> <code>OR</code> </p> </li> <li> <p> <code>LIKE</code> and <code>NOT LIKE</code>. These can be used only as prefix searches. Include a <code>%</code> at the end of the string that you want to search for and include.</p> </li> <li> <p> <code>IN</code> and <code>NOT IN</code>, using parentheses <code>( )</code> </p> </li> </ul> <p>Examples:</p> <ul> <li> <p> <code>LogGroupName IN ('This-Log-Group', 'Other-Log-Group')</code> includes only the log groups with names <code>This-Log-Group</code> and <code>Other-Log-Group</code>.</p> </li> <li> <p> <code>LogGroupName NOT IN ('Private-Log-Group', 'Private-Log-Group-2')</code> includes all log groups except the log groups with names <code>Private-Log-Group</code> and <code>Private-Log-Group-2</code>.</p> </li> <li> <p> <code>LogGroupName LIKE 'aws/lambda/%' OR LogGroupName LIKE 'AWSLogs%'</code> includes all log groups that have names that start with <code>aws/lambda/</code> or <code>AWSLogs</code>.</p> </li> </ul> <note> <p>If you are updating a link that uses filters, you can specify <code>*</code> as the only value for the <code>filter</code> parameter to delete the filter and share all log groups with the monitoring account.</p> </note>"
787+
}
788+
},
789+
"documentation":"<p>This structure contains the <code>Filter</code> parameter which you can use to specify which log groups are to share log events from this source account to the monitoring account.</p>"
790+
},
791+
"LogsFilter":{
792+
"type":"string",
793+
"max":2000,
794+
"min":1
795+
},
796+
"MetricConfiguration":{
797+
"type":"structure",
798+
"required":["Filter"],
799+
"members":{
800+
"Filter":{
801+
"shape":"MetricsFilter",
802+
"documentation":"<p>Use this field to specify which metrics are to be shared with the monitoring account. Use the term <code>Namespace</code> and one or more of the following operands. Use single quotation marks (') around namespace names. The matching of namespace names is case sensitive. Each filter has a limit of five conditional operands. Conditional operands are <code>AND</code> and <code>OR</code>.</p> <ul> <li> <p> <code>=</code> and <code>!=</code> </p> </li> <li> <p> <code>AND</code> </p> </li> <li> <p> <code>OR</code> </p> </li> <li> <p> <code>LIKE</code> and <code>NOT LIKE</code>. These can be used only as prefix searches. Include a <code>%</code> at the end of the string that you want to search for and include.</p> </li> <li> <p> <code>IN</code> and <code>NOT IN</code>, using parentheses <code>( )</code> </p> </li> </ul> <p>Examples:</p> <ul> <li> <p> <code>Namespace NOT LIKE 'AWS/%'</code> includes only namespaces that don't start with <code>AWS/</code>, such as custom namespaces.</p> </li> <li> <p> <code>Namespace IN ('AWS/EC2', 'AWS/ELB', 'AWS/S3')</code> includes only the metrics in the EC2, Elastic Load Balancing, and Amazon S3 namespaces. </p> </li> <li> <p> <code>Namespace = 'AWS/EC2' OR Namespace NOT LIKE 'AWS/%'</code> includes only the EC2 namespace and your custom namespaces.</p> </li> </ul> <note> <p>If you are updating a link that uses filters, you can specify <code>*</code> as the only value for the <code>filter</code> parameter to delete the filter and share all metric namespaces with the monitoring account.</p> </note>"
803+
}
804+
},
805+
"documentation":"<p>This structure contains the <code>Filter</code> parameter which you can use to specify which metric namespaces are to be shared from this source account to the monitoring account.</p>"
806+
},
807+
"MetricsFilter":{
808+
"type":"string",
809+
"max":2000,
810+
"min":1
811+
},
753812
"MissingRequiredParameterException":{
754813
"type":"structure",
755814
"members":{
756-
"message":{"shape":"String"},
757815
"amznErrorType":{
758816
"shape":"String",
759817
"documentation":"<p>The name of the exception.</p>",
760818
"location":"header",
761819
"locationName":"x-amzn-ErrorType"
762-
}
820+
},
821+
"message":{"shape":"String"}
763822
},
764823
"documentation":"<p>A required parameter is missing from the request.</p>",
765824
"error":{
@@ -772,40 +831,40 @@
772831
"PutSinkPolicyInput":{
773832
"type":"structure",
774833
"required":[
775-
"SinkIdentifier",
776-
"Policy"
834+
"Policy",
835+
"SinkIdentifier"
777836
],
778837
"members":{
779-
"SinkIdentifier":{
780-
"shape":"ResourceIdentifier",
781-
"documentation":"<p>The ARN of the sink to attach this policy to.</p>"
782-
},
783838
"Policy":{
784839
"shape":"SinkPolicy",
785840
"documentation":"<p>The JSON policy to use. If you are updating an existing policy, the entire existing policy is replaced by what you specify here.</p> <p>The policy must be in JSON string format with quotation marks escaped and no newlines.</p> <p>For examples of different types of policies, see the <b>Examples</b> section on this page.</p>"
841+
},
842+
"SinkIdentifier":{
843+
"shape":"ResourceIdentifier",
844+
"documentation":"<p>The ARN of the sink to attach this policy to.</p>"
786845
}
787846
}
788847
},
789848
"PutSinkPolicyOutput":{
790849
"type":"structure",
791850
"members":{
851+
"Policy":{
852+
"shape":"String",
853+
"documentation":"<p>The policy that you specified.</p>"
854+
},
792855
"SinkArn":{
793856
"shape":"String",
794857
"documentation":"<p>The ARN of the sink.</p>"
795858
},
796859
"SinkId":{
797860
"shape":"String",
798861
"documentation":"<p>The random ID string that Amazon Web Services generated as part of the sink ARN.</p>"
799-
},
800-
"Policy":{
801-
"shape":"String",
802-
"documentation":"<p>The policy that you specified.</p>"
803862
}
804863
}
805864
},
806865
"ResourceIdentifier":{
807866
"type":"string",
808-
"pattern":"[a-zA-Z0-9][a-zA-Z0-9_:\\.\\-\\/]{0,2047}"
867+
"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_:\\.\\-\\/]{0,2047}$"
809868
},
810869
"ResourceNotFoundException":{
811870
"type":"structure",
@@ -865,7 +924,7 @@
865924
},
866925
"SinkName":{
867926
"type":"string",
868-
"pattern":"[a-zA-Z0-9_\\.\\-]{1,255}"
927+
"pattern":"^[a-zA-Z0-9_\\.\\-]{1,255}$"
869928
},
870929
"SinkPolicy":{"type":"string"},
871930
"String":{"type":"string"},
@@ -968,6 +1027,10 @@
9681027
"shape":"ResourceIdentifier",
9691028
"documentation":"<p>The ARN of the link that you want to update.</p>"
9701029
},
1030+
"LinkConfiguration":{
1031+
"shape":"LinkConfiguration",
1032+
"documentation":"<p>Use this structure to filter which metric namespaces and which log groups are to be shared from the source account to the monitoring account.</p>"
1033+
},
9711034
"ResourceTypes":{
9721035
"shape":"ResourceTypesInput",
9731036
"documentation":"<p>An array of strings that define which types of data that the source account will send to the monitoring account.</p> <p>Your input here replaces the current set of data types that are shared.</p>"
@@ -993,6 +1056,10 @@
9931056
"shape":"LabelTemplate",
9941057
"documentation":"<p>The exact label template that was specified when the link was created, with the template variables not resolved.</p>"
9951058
},
1059+
"LinkConfiguration":{
1060+
"shape":"LinkConfiguration",
1061+
"documentation":"<p>This structure includes filters that specify which metric namespaces and which log groups are shared from the source account to the monitoring account.</p>"
1062+
},
9961063
"ResourceTypes":{
9971064
"shape":"ResourceTypesOutput",
9981065
"documentation":"<p>The resource types now supported by this link.</p>"

0 commit comments

Comments
 (0)