@@ -1827,6 +1827,43 @@ namespace CloudWatchLogs
18271827 return SubmitAsync (&CloudWatchLogsClient::GetLogGroupFields, request, handler, context);
18281828 }
18291829
1830+ /* *
1831+ * <p>Retrieves a large logging object (LLO) and streams it back. This API is used
1832+ * to fetch the content of large portions of log events that have been ingested
1833+ * through the PutOpenTelemetryLogs API. When log events contain fields that would
1834+ * cause the total event size to exceed 1MB, CloudWatch Logs automatically
1835+ * processes up to 10 fields, starting with the largest fields. Each field is
1836+ * truncated as needed to keep the total event size as close to 1MB as possible.
1837+ * The excess portions are stored as Large Log Objects (LLOs) and these fields are
1838+ * processed separately and LLO reference system fields (in the format
1839+ * <code>@ptr.$[path.to.field]</code>) are added. The path in the reference field
1840+ * reflects the original JSON structure where the large field was located. For
1841+ * example, this could be <code>@ptr.$['input']['message']</code>,
1842+ * <code>@ptr.$['AAA']['BBB']['CCC']['DDD']</code>, <code>@ptr.$['AAA']</code>, or
1843+ * any other path matching your log structure.</p><p><h3>See Also:</h3> <a
1844+ * href="http://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/GetLogObject">AWS
1845+ * API Reference</a></p>
1846+ */
1847+ virtual Model::GetLogObjectOutcome GetLogObject (Model::GetLogObjectRequest& request) const ;
1848+
1849+ /* *
1850+ * A Callable wrapper for GetLogObject that returns a future to the operation so that it can be executed in parallel to other requests.
1851+ */
1852+ template <typename GetLogObjectRequestT = Model::GetLogObjectRequest>
1853+ Model::GetLogObjectOutcomeCallable GetLogObjectCallable (GetLogObjectRequestT& request) const
1854+ {
1855+ return SubmitCallable (&CloudWatchLogsClient::GetLogObject, request);
1856+ }
1857+
1858+ /* *
1859+ * An Async wrapper for GetLogObject that queues the request into a thread executor and triggers associated callback when operation has finished.
1860+ */
1861+ template <typename GetLogObjectRequestT = Model::GetLogObjectRequest>
1862+ void GetLogObjectAsync (GetLogObjectRequestT& request, const GetLogObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr ) const
1863+ {
1864+ return SubmitAsync (&CloudWatchLogsClient::GetLogObject, request, handler, context);
1865+ }
1866+
18301867 /* *
18311868 * <p>Retrieves all of the fields and values of a single log event. All fields are
18321869 * retrieved, even if the original query that produced the
@@ -2105,17 +2142,20 @@ namespace CloudWatchLogs
21052142
21062143 /* *
21072144 * <p>Creates an account-level data protection policy, subscription filter policy,
2108- * or field index policy that applies to all log groups or a subset of log groups
2109- * in the account.</p> <p>To use this operation, you must be signed on with the
2110- * correct permissions depending on the type of policy that you are creating.</p>
2111- * <ul> <li> <p>To create a data protection policy, you must have the
2112- * <code>logs:PutDataProtectionPolicy</code> and <code>logs:PutAccountPolicy</code>
2113- * permissions.</p> </li> <li> <p>To create a subscription filter policy, you must
2114- * have the <code>logs:PutSubscriptionFilter</code> and
2115- * <code>logs:PutAccountPolicy</code> permissions.</p> </li> <li> <p>To create a
2116- * transformer policy, you must have the <code>logs:PutTransformer</code> and
2117- * <code>logs:PutAccountPolicy</code> permissions.</p> </li> <li> <p>To create a
2118- * field index policy, you must have the <code>logs:PutIndexPolicy</code> and
2145+ * field index policy, transformer policy, or metric extraction policy that applies
2146+ * to all log groups or a subset of log groups in the account.</p> <p>To use this
2147+ * operation, you must be signed on with the correct permissions depending on the
2148+ * type of policy that you are creating.</p> <ul> <li> <p>To create a data
2149+ * protection policy, you must have the <code>logs:PutDataProtectionPolicy</code>
2150+ * and <code>logs:PutAccountPolicy</code> permissions.</p> </li> <li> <p>To create
2151+ * a subscription filter policy, you must have the
2152+ * <code>logs:PutSubscriptionFilter</code> and <code>logs:PutAccountPolicy</code>
2153+ * permissions.</p> </li> <li> <p>To create a transformer policy, you must have the
2154+ * <code>logs:PutTransformer</code> and <code>logs:PutAccountPolicy</code>
2155+ * permissions.</p> </li> <li> <p>To create a field index policy, you must have the
2156+ * <code>logs:PutIndexPolicy</code> and <code>logs:PutAccountPolicy</code>
2157+ * permissions.</p> </li> <li> <p>To create a metric extraction policy, you must
2158+ * have the <code>logs:PutMetricExtractionPolicy</code> and
21192159 * <code>logs:PutAccountPolicy</code> permissions.</p> </li> </ul> <p> <b>Data
21202160 * protection policy</b> </p> <p>A data protection policy can help safeguard
21212161 * sensitive data that's ingested by your log groups by auditing and masking the
@@ -2245,8 +2285,53 @@ namespace CloudWatchLogs
22452285 * instead of <code>PutAccountPolicy</code>. If you do so, that log group will use
22462286 * only that log-group level policy, and will ignore the account-level policy that
22472287 * you create with <a
2248- * href="https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutAccountPolicy.html">PutAccountPolicy</a>.</p><p><h3>See
2249- * Also:</h3> <a
2288+ * href="https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutAccountPolicy.html">PutAccountPolicy</a>.</p>
2289+ * <p> <b>Metric extraction policy</b> </p> <p>A metric extraction policy controls
2290+ * whether CloudWatch Metrics can be created through the Embedded Metrics Format
2291+ * (EMF) for log groups in your account. By default, EMF metric creation is enabled
2292+ * for all log groups. You can use metric extraction policies to disable EMF metric
2293+ * creation for your entire account or specific log groups.</p> <p>When a policy
2294+ * disables EMF metric creation for a log group, log events in the EMF format are
2295+ * still ingested, but no CloudWatch Metrics are created from them.</p>
2296+ * <p>Creating a policy disables metrics for AWS features that use EMF to create
2297+ * metrics, such as CloudWatch Container Insights and CloudWatch Application
2298+ * Signals. To prevent turning off those features by accident, we recommend that
2299+ * you exclude the underlying log-groups through a selection-criteria such as
2300+ * <code>LogGroupNamePrefix NOT IN ["/aws/containerinsights",
2301+ * "/aws/ecs/containerinsights", "/aws/application-signals/data"]</code>.</p>
2302+ * <p>Each account can have either one account-level metric extraction
2303+ * policy that applies to all log groups, or up to 5 policies that are each scoped
2304+ * to a subset of log groups with the <code>selectionCriteria</code> parameter. The
2305+ * selection criteria supports filtering by <code>LogGroupName</code> and
2306+ * <code>LogGroupNamePrefix</code> using the operators <code>IN</code> and
2307+ * <code>NOT IN</code>. You can specify up to 50 values in each <code>IN</code> or
2308+ * <code>NOT IN</code> list.</p> <p>The selection criteria can be specified in
2309+ * these formats:</p> <p> <code>LogGroupName IN ["log-group-1",
2310+ * "log-group-2"]</code> </p> <p> <code>LogGroupNamePrefix NOT IN ["/aws/prefix1",
2311+ * "/aws/prefix2"]</code> </p> <p>If you have multiple account-level metric
2312+ * extraction policies with selection criteria, no two of them can have overlapping
2313+ * criteria. For example, if you have one policy with selection criteria
2314+ * <code>LogGroupNamePrefix IN ["my-log"]</code>, you can't have another metric
2315+ * extraction policy with selection criteria <code>LogGroupNamePrefix IN
2316+ * ["/my-log-prod"]</code> or <code>LogGroupNamePrefix IN ["/my-logging"]</code>,
2317+ * as the set of log groups matching these prefixes would be a subset of the log
2318+ * groups matching the first policy's prefix, creating an overlap.</p> <p>When
2319+ * using <code>NOT IN</code>, only one policy with this operator is allowed per
2320+ * account.</p> <p>When combining policies with <code>IN</code> and <code>NOT
2321+ * IN</code> operators, the overlap check ensures that policies don't have
2322+ * conflicting effects. Two policies with <code>IN</code> and <code>NOT IN</code>
2323+ * operators do not overlap if and only if every value in the <code>IN
2324+ * </code>policy is completely contained within some value in the <code>NOT
2325+ * IN</code> policy. For example:</p> <ul> <li> <p>If you have a <code>NOT
2326+ * IN</code> policy for prefix <code>"/aws/lambda"</code>, you can create an
2327+ * <code>IN</code> policy for the exact log group name
2328+ * <code>"/aws/lambda/function1"</code> because the set of log groups matching
2329+ * <code>"/aws/lambda/function1"</code> is a subset of the log groups matching
2330+ * <code>"/aws/lambda"</code>.</p> </li> <li> <p>If you have a <code>NOT IN</code>
2331+ * policy for prefix <code>"/aws/lambda"</code>, you cannot create an
2332+ * <code>IN</code> policy for prefix <code>"/aws"</code> because the set of log
2333+ * groups matching <code>"/aws"</code> is not a subset of the log groups matching
2334+ * <code>"/aws/lambda"</code>.</p> </li> </ul><p><h3>See Also:</h3> <a
22502335 * href="http://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/PutAccountPolicy">AWS
22512336 * API Reference</a></p>
22522337 */
0 commit comments