Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/amazon-cloudwatch:amazon-cloudwatch-transformer-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.1.0
info:
title: Amazon CloudWatch Transformer API
version: '2010-08-01'
description: Generated from AWS's published Smithy model for Amazon CloudWatch. 4 operation(s).
contact:
name: Amazon Web Services
url: https://aws.amazon.com/contact-us/
license:
name: Apache 2.0
identifier: Apache-2.0
url: https://github.com/aws/api-models-aws/blob/main/LICENSE
servers:
- url: https://logs.{region}.amazonaws.com
variables:
region:
default: us-east-1
security:
- sigv4: []
paths:
/#DeleteTransformer:
post:
operationId: DeleteTransformer
summary: Delete Transformer
description: Deletes the log transformer for the specified log group. As soon as you do this, the transformation of
incoming log events according to that transformer stops. If this account has an account-level transformer that applies
to this log group, the log group begins using that account-level transformer when this log-group level transformer
is deleted. After you delete a transformer, be sure to edit any metric filters or subscription filters that relied
on the transformed versions of the log events.
responses:
'200':
description: Success
content:
application/x-amz-json-1.1:
schema:
type: string
'400':
description: InvalidOperationException; InvalidParameterException; OperationAbortedException; ResourceNotFoundException
content:
application/x-amz-json-1.1:
schema:
$ref: '#/components/schemas/InvalidOperationException'
'500':
description: ServiceUnavailableException
content:
application/x-amz-json-1.1:
schema:
$ref: '#/components/schemas/ServiceUnavailableException'
parameters:
- name: X-Amz-Target
in: header
required: true
schema:
type: string
enum:
- Logs_20140328.DeleteTransformer
requestBody:
required: true
content:
application/x-amz-json-1.1:
schema:
$ref: '#/components/schemas/DeleteTransformerRequest'
tags:
- Transformer
/#GetTransformer:
post:
operationId: GetTransformer
summary: Get Transformer
description: Returns the information about the log transformer associated with this log group. This operation returns
data only for transformers created at the log group level. To get information for an account-level transformer, use
DescribeAccountPolicies.
responses:
'200':
description: Success
content:
application/x-amz-json-1.1:
schema:
$ref: '#/components/schemas/GetTransformerResponse'
'400':
description: InvalidOperationException; InvalidParameterException; ResourceNotFoundException
content:
application/x-amz-json-1.1:
schema:
$ref: '#/components/schemas/InvalidOperationException'
'500':
description: ServiceUnavailableException
content:
application/x-amz-json-1.1:
schema:
$ref: '#/components/schemas/ServiceUnavailableException'
parameters:
- name: X-Amz-Target
in: header
required: true
schema:
type: string
enum:
- Logs_20140328.GetTransformer
requestBody:
required: true
content:
application/x-amz-json-1.1:
schema:
$ref: '#/components/schemas/GetTransformerRequest'
tags:
- Transformer
/#PutTransformer:
post:
operationId: PutTransformer
summary: Put Transformer
description: Creates or updates a log transformer for a single log group. You use log transformers to transform log
events into a different format, making them easier for you to process and analyze. You can also transform logs from
different sources into standardized formats that contains relevant, source-specific information. After you have created
a transformer, CloudWatch Logs performs the transformations at the time of log ingestion. You can then refer to the
transformed versions of the logs during operations such as querying with CloudWatch Logs Insights or creating metric
filters or subscription filers. You can also use a transformer to copy metadata from metadata keys into the log events
themselves. This metadata can include log group name, log stream name, account ID and Region. A transformer for a
log group is a series of processors, where each processor applies one type of transformation to the log events ingested
into this log group. The processors work one after another, in the order that you list them, like a pipeline. For
more information about the available processors to use in a transformer, see Processors that you can use. Having log
events in standardized format enables visibi
responses:
'200':
description: Success
content:
application/x-amz-json-1.1:
schema:
type: string
'400':
description: InvalidOperationException; InvalidParameterException; LimitExceededException; OperationAbortedException;
ResourceNotFoundException
content:
application/x-amz-json-1.1:
schema:
$ref: '#/components/schemas/InvalidOperationException'
'500':
description: ServiceUnavailableException
content:
application/x-amz-json-1.1:
schema:
$ref: '#/components/schemas/ServiceUnavailableException'
parameters:
- name: X-Amz-Target
in: header
required: true
schema:
type: string
enum:
- Logs_20140328.PutTransformer
requestBody:
required: true
content:
application/x-amz-json-1.1:
schema:
$ref: '#/components/schemas/PutTransformerRequest'
tags:
- Transformer
/#TestTransformer:
post:
operationId: TestTransformer
summary: Test Transformer
description: Use this operation to test a log transformer. You enter the transformer configuration and a set of log
events to test with. The operation responds with an array that includes the original log events and the transformed
versions.
responses:
'200':
description: Success
content:
application/x-amz-json-1.1:
schema:
$ref: '#/components/schemas/TestTransformerResponse'
'400':
description: InvalidOperationException; InvalidParameterException
content:
application/x-amz-json-1.1:
schema:
$ref: '#/components/schemas/InvalidOperationException'
'500':
description: ServiceUnavailableException
content:
application/x-amz-json-1.1:
schema:
$ref: '#/components/schemas/ServiceUnavailableException'
parameters:
- name: X-Amz-Target
in: header
required: true
schema:
type: string
enum:
- Logs_20140328.TestTransformer
requestBody:
required: true
content:
application/x-amz-json-1.1:
schema:
$ref: '#/components/schemas/TestTransformerRequest'
tags:
- Transformer
components:
securitySchemes:
sigv4:
type: apiKey
in: header
name: Authorization
description: AWS Signature Version 4. The Authorization header carries an AWS4-HMAC-SHA256 signature over the canonical
request, with X-Amz-Date (and X-Amz-Security-Token for temporary credentials). Not a bearer token.
x-aws-sigv4:
signingName: logs
schemas:
AddKeyEntry:
type: object
properties:
key:
type: string
description: The key of the new entry to be added to the log event
value:
type: string
description: The value of the new entry to be added to the log event
overwriteIfExists:
type: boolean
description: Specifies whether to overwrite the value if the key already exists in the log event. If you omit this,
the default is false.
required:
- key
- value
AddKeys:
type: object
properties:
entries:
type: array
items:
$ref: '#/components/schemas/AddKeyEntry'
description: An array of objects, where each object contains the information about one key to add to the log event.
required:
- entries
CSV:
type: object
properties:
quoteCharacter:
type: string
description: The character used used as a text qualifier for a single column of data. If you omit this, the double
quotation mark " character is used.
delimiter:
type: string
description: The character used to separate each column in the original comma-separated value log event. If you
omit this, the processor looks for the comma , character as the delimiter.
columns:
type: array
items:
type: string
description: An array of names to use for the columns in the transformed log event. If you omit this, default column
names ([column_1, column_2 ...]) are used.
source:
type: string
description: The path to the field in the log event that has the comma separated values to be parsed. If you omit
this value, the whole log message is processed.
destination:
type: string
description: The path to the parent field to put transformed key value pairs under. If you omit this value, the
key value pairs will be placed under the root node.
CopyValue:
type: object
properties:
entries:
type: array
items:
$ref: '#/components/schemas/CopyValueEntry'
description: An array of CopyValueEntry objects, where each object contains the information about one field value
to copy.
required:
- entries
CopyValueEntry:
type: object
properties:
source:
type: string
description: The key to copy.
target:
type: string
description: The key of the field to copy the value to.
overwriteIfExists:
type: boolean
description: Specifies whether to overwrite the value if the destination key already exists. If you omit this, the
default is false.
required:
- source
- target
DateTimeConverter:
type: object
properties:
source:
type: string
description: The key to apply the date conversion to.
target:
type: string
description: The JSON field to store the result in.
targetFormat:
type: string
description: The datetime format to use for the converted data in the target field. If you omit this, the default
of yyyy-MM-dd'T'HH:mm:ss.SSS'Z is used.
matchPatterns:
type: array
items:
type: string
description: A list of patterns to match against the source field.
sourceTimezone:
type: string
description: The time zone of the source field. If you omit this, the default used is the UTC zone.
targetTimezone:
type: string
description: The time zone of the target field. If you omit this, the default used is the UTC zone.
locale:
type: string
description: The locale of the source field. If you omit this, the default of locale.ROOT is used.
required:
- source
- target
- matchPatterns
DeleteKeys:
type: object
properties:
withKeys:
type: array
items:
type: string
description: The list of keys to delete.
required:
- withKeys
DeleteTransformerRequest:
type: object
properties:
logGroupIdentifier:
type: string
description: Specify either the name or ARN of the log group to delete the transformer for. If the log group is
in a source account and you are using a monitoring account, you must use the log group ARN.
required:
- logGroupIdentifier
GetTransformerRequest:
type: object
properties:
logGroupIdentifier:
type: string
description: Specify either the name or ARN of the log group to return transformer information for. If the log group
is in a source account and you are using a monitoring account, you must use the log group ARN.
required:
- logGroupIdentifier
GetTransformerResponse:
type: object
properties:
logGroupIdentifier:
type: string
description: The ARN of the log group that you specified in your request.
creationTime:
type: integer
description: The creation time of the transformer, expressed as the number of milliseconds after Jan 1, 1970 00:00:00
UTC.
lastModifiedTime:
type: integer
description: The date and time when this transformer was most recently modified, expressed as the number of milliseconds
after Jan 1, 1970 00:00:00 UTC.
transformerConfig:
type: array
items:
$ref: '#/components/schemas/Processor'
description: This sructure contains the configuration of the requested transformer.
Grok:
type: object
properties:
source:
type: string
description: The path to the field in the log event that you want to parse. If you omit this value, the whole log
message is parsed.
match:
type: string
description: The grok pattern to match against the log event. For a list of supported grok patterns, see Supported
grok patterns.
required:
- match
InvalidOperationException:
type: object
properties:
message:
type: string
ListToMap:
type: object
properties:
source:
type: string
description: The key in the log event that has a list of objects that will be converted to a map.
key:
type: string
description: The key of the field to be extracted as keys in the generated map
valueKey:
type: string
description: If this is specified, the values that you specify in this parameter will be extracted from the source
objects and put into the values of the generated map. Otherwise, original objects in the source list will be put
into the values of the generated map.
target:
type: string
description: The key of the field that will hold the generated map
flatten:
type: boolean
description: A Boolean value to indicate whether the list will be flattened into single items. Specify true to flatten
the list. The default is false
flattenedElement:
type: string
enum:
- first
- last
description: If you set flatten to true, use flattenedElement to specify which element, first or last, to keep.
You must specify this parameter if flatten is true
required:
- source
- key
LowerCaseString:
type: object
properties:
withKeys:
type: array
items:
type: string
description: The array caontaining the keys of the fields to convert to lowercase.
required:
- withKeys
MoveKeyEntry:
type: object
properties:
source:
type: string
description: The key to move.
target:
type: string
description: The key to move to.
overwriteIfExists:
type: boolean
description: Specifies whether to overwrite the value if the destination key already exists. If you omit this, the
default is false.
required:
- source
- target
MoveKeys:
type: object
properties:
entries:
type: array
items:
$ref: '#/components/schemas/MoveKeyEntry'
description: An array of objects, where each object contains the information about one key to move.
required:
- entries
ParseCloudfront:
type: object
properties:
source:
type: string
description: Omit this parameter and the whole log message will be processed by this processor. No other value than
@message is allowed for source.
ParseJSON:
type: object
properties:
source:
type: string
description: Path to the field in the log event that will be parsed. Use dot notation to access child fields. For
example, store.book
destination:
type: string
description: The location to put the parsed key value pair into. If you omit this parameter, it is placed under
the root node.
ParseKeyValue:
type: object
properties:
source:
type: string
description: Path to the field in the log event that will be parsed. Use dot notation to access child fields. For
example, store.book
destination:
type: string
description: The destination field to put the extracted key-value pairs into
fieldDelimiter:
type: string
description: The field delimiter string that is used between key-value pairs in the original log events. If you
omit this, the ampersand & character is used.
keyValueDelimiter:
type: string
description: The delimiter string to use between the key and value in each pair in the transformed log event. If
you omit this, the equal = character is used.
keyPrefix:
type: string
description: If you want to add a prefix to all transformed keys, specify it here.
nonMatchValue:
type: string
description: A value to insert into the value field in the result, when a key-value pair is not successfully split.
overwriteIfExists:
type: boolean
description: Specifies whether to overwrite the value if the destination key already exists. If you omit this, the
default is false.
ParsePostgres:
type: object
properties:
source:
type: string
description: Omit this parameter and the whole log message will be processed by this processor. No other value than
@message is allowed for source.
ParseRoute53:
type: object
properties:
source:
type: string
description: Omit this parameter and the whole log message will be processed by this processor. No other value than
@message is allowed for source.
ParseToOCSF:
type: object
properties:
source:
type: string
description: The path to the field in the log event that you want to parse. If you omit this value, the whole log
message is parsed.
eventSource:
type: string
enum:
- CloudTrail
- Route53Resolver
- VPCFlow
- EKSAudit
- AWSWAF
description: Specify the service or process that produces the log events that will be converted with this processor.
ocsfVersion:
type: string
enum:
- V1.1
- V1.5
description: Specify which version of the OCSF schema to use for the transformed log events.
mappingVersion:
type: string
description: The version of the OCSF mapping to use for parsing log data.
required:
- eventSource
- ocsfVersion
ParseVPC:
type: object
properties:
source:
type: string
description: Omit this parameter and the whole log message will be processed by this processor. No other value than
@message is allowed for source.
ParseWAF:
type: object
properties:
source:
type: string
description: Omit this parameter and the whole log message will be processed by this processor. No other value than
@message is allowed for source.
Processor:
type: object
properties:
addKeys:
$ref: '#/components/schemas/AddKeys'
copyValue:
$ref: '#/components/schemas/CopyValue'
csv:
$ref: '#/components/schemas/CSV'
dateTimeConverter:
$ref: '#/components/schemas/DateTimeConverter'
deleteKeys:
$ref: '#/components/schemas/DeleteKeys'
grok:
$ref: '#/components/schemas/Grok'
listToMap:
$ref: '#/components/schemas/ListToMap'
lowerCaseString:
$ref: '#/components/schemas/LowerCaseString'
moveKeys:
$ref: '#/components/schemas/MoveKeys'
parseCloudfront:
$ref: '#/components/schemas/ParseCloudfront'
parseJSON:
$ref: '#/components/schemas/ParseJSON'
parseKeyValue:
$ref: '#/components/schemas/ParseKeyValue'
parseRoute53:
$ref: '#/components/schemas/ParseRoute53'
parseToOCSF:
$ref: '#/components/schemas/ParseToOCSF'
parsePostgres:
$ref: '#/components/schemas/ParsePostgres'
parseVPC:
$ref: '#/components/schemas/ParseVPC'
parseWAF:
$ref: '#/components/schemas/ParseWAF'
renameKeys:
$ref: '#/components/schemas/RenameKeys'
splitString:
$ref: '#/components/schemas/SplitString'
substituteString:
$ref: '#/components/schemas/SubstituteString'
trimString:
$ref: '#/components/schemas/TrimString'
typeConverter:
$ref: '#/components/schemas/TypeConverter'
upperCaseString:
$ref: '#/components/schemas/UpperCaseString'
PutTransformerRequest:
type: object
properties:
logGroupIdentifier:
type: string
description: Specify either the name or ARN of the log group to create the transformer for.
transformerConfig:
type: array
items:
$ref: '#/components/schemas/Processor'
description: This structure contains the configuration of this log transformer. A log transformer is an array of
processors, where each processor applies one type of transformation to the log events that are ingested.
required:
- logGroupIdentifier
- transformerConfig
RenameKeyEntry:
type: object
properties:
key:
type: string
description: The key to rename
renameTo:
type: string
description: The string to use for the new key name
overwriteIfExists:
type: boolean
description: Specifies whether to overwrite the existing value if the destination key already exists. The default
is false
required:
- key
- renameTo
RenameKeys:
type: object
properties:
entries:
type: array
items:
$ref: '#/components/schemas/RenameKeyEntry'
description: An array of RenameKeyEntry objects, where each object contains the information about a single key to
rename.
required:
- entries
ServiceUnavailableException:
type: object
properties:
message:
type: string
SplitString:
type: object
properties:
entries:
type: array
items:
$ref: '#/components/schemas/SplitStringEntry'
description: An array of SplitStringEntry objects, where each object contains the information about one field to
split.
required:
- entries
SplitStringEntry:
type: object
properties:
source:
type: string
description: The key of the field to split.
delimiter:
type: string
description: The separator characters to split the string entry on.
required:
- source
- delimiter
SubstituteString:
type: object
properties:
entries:
type: array
items:
$ref: '#/components/schemas/SubstituteStringEntry'
description: An array of objects, where each object contains the information about one key to match and replace.
required:
- entries
SubstituteStringEntry:
type: object
properties:
source:
type: string
description: The key to modify
from:
type: string
description: The regular expression string to be replaced. Special regex characters such as [ and ] must be escaped
using \\ when using double quotes and with \ when using single quotes. For more information, see Class Pattern
on the Oracle web site.
to:
type: string
description: The string to be substituted for each match of from
required:
- source
- from
- to
TestTransformerRequest:
type: object
properties:
transformerConfig:
type: array
items:
$ref: '#/components/schemas/Processor'
description: This structure contains the configuration of this log transformer that you want to test. A log transformer
is an array of processors, where each processor applies one type of transformation to the log events that are
ingested.
logEventMessages:
type: array
items:
type: string
description: An array of the raw log events that you want to use to test this transformer.
required:
- transformerConfig
- logEventMessages
TestTransformerResponse:
type: object
properties:
transformedLogs:
type: array
items:
$ref: '#/components/schemas/TransformedLogRecord'
description: An array where each member of the array includes both the original version and the transformed version
of one of the log events that you input.
TransformedLogRecord:
type: object
properties:
eventNumber:
type: integer
description: The event number.
eventMessage:
type: string
description: The original log event message before it was transformed.
transformedEventMessage:
type: string
description: The log event message after being transformed.
TrimString:
type: object
properties:
withKeys:
type: array
items:
type: string
description: The array containing the keys of the fields to trim.
required:
- withKeys
TypeConverter:
type: object
properties:
entries:
type: array
items:
$ref: '#/components/schemas/TypeConverterEntry'
description: An array of TypeConverterEntry objects, where each object contains the information about one field
to change the type of.
required:
- entries
TypeConverterEntry:
type: object
properties:
key:
type: string
description: The key with the value that is to be converted to a different type.
type:
type: string
enum:
- boolean
- integer
- double
- string
description: The type to convert the field value to. Valid values are integer, double, string and boolean.
required:
- key
- type
UpperCaseString:
type: object
properties:
withKeys:
type: array
items:
type: string
description: The array of containing the keys of the field to convert to uppercase.
required:
- withKeys
x-provenance:
method: harvested
publisher: Amazon Web Services
source: https://raw.githubusercontent.com/aws/api-models-aws/3cd98287b471c106254abd89279cc87308d38bfd/models/cloudwatch-logs/service/2014-03-28/cloudwatch-logs-2014-03-28.json
note: converted by smithy-to-openapi.py from AWS's Smithy model (roadmap#1001)