{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/microsoft-azure-stream-analytics/json-schema/microsoft-azure-stream-analytics-transformation-schema.json",
  "title": "Transformation",
  "description": "A transformation object, containing all information associated with the named transformation. All transformations are contained under a streaming job.",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/microsoft-azure-stream-analytics-transformations-api-openapi.yml#/components/schemas/Transformation",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/$defs/SubResource"
    }
  ],
  "properties": {
    "properties": {
      "$ref": "#/$defs/TransformationProperties"
    }
  },
  "$defs": {
    "SubResource": {
      "type": "object",
      "description": "The base sub-resource model definition.",
      "properties": {
        "id": {
          "readOnly": true,
          "type": "string",
          "description": "Resource Id"
        },
        "name": {
          "type": "string",
          "description": "Resource name"
        },
        "type": {
          "readOnly": true,
          "type": "string",
          "description": "Resource type"
        }
      },
      "x-ms-azure-resource": true
    },
    "TransformationProperties": {
      "type": "object",
      "description": "The properties that are associated with a transformation.",
      "properties": {
        "streamingUnits": {
          "type": "integer",
          "format": "int32",
          "description": "Specifies the number of streaming units that the streaming job uses.",
          "default": 3
        },
        "validStreamingUnits": {
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int32",
            "description": "Specifies the number of streaming units that the streaming job can use."
          },
          "description": "Specifies the valid streaming units a streaming job can scale to."
        },
        "query": {
          "type": "string",
          "description": "Specifies the query that will be run in the streaming job. You can learn more about the Stream Analytics Query Language (SAQL) here: https://msdn.microsoft.com/library/azure/dn834998 . Required on PUT (CreateOrReplace) requests."
        },
        "etag": {
          "readOnly": true,
          "type": "string",
          "description": "The current entity tag for the transformation. This is an opaque string. You can use it to detect whether the resource has changed between requests. You can also use it in the If-Match or If-None-Match headers for write operations for optimistic concurrency."
        }
      }
    }
  }
}