{
  "openapi": "3.0.1",
  "info": {
    "title": "AWS Cloud Pricing Cost Impact Report",
    "description": "Read official AWS public USD offer files for Lambda, S3, and RDS and emit stable price changes and cost-impact report rows.",
    "version": "0.1",
    "x-build-id": "qsWutyaBLo5yBlZaN"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/taroyamada~aws-cloud-pricing-cost-impact-report/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-taroyamada-aws-cloud-pricing-cost-impact-report",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/taroyamada~aws-cloud-pricing-cost-impact-report/runs": {
      "post": {
        "operationId": "runs-sync-taroyamada-aws-cloud-pricing-cost-impact-report",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/taroyamada~aws-cloud-pricing-cost-impact-report/run-sync": {
      "post": {
        "operationId": "run-sync-taroyamada-aws-cloud-pricing-cost-impact-report",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "scopes"
        ],
        "properties": {
          "scopes": {
            "title": "Pricing scopes",
            "minItems": 1,
            "type": "array",
            "description": "Each scope selects one supported AWS service and one required AWS region. Scope order is normalized for durable state.",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "serviceCode",
                "region"
              ],
              "properties": {
                "label": {
                  "type": "string",
                  "title": "Scope label",
                  "description": "Optional buyer label copied into report scope metadata."
                },
                "serviceCode": {
                  "type": "string",
                  "title": "AWS service code",
                  "description": "Supported v1 services only. AmazonEC2 is intentionally not supported.",
                  "default": "AWSLambda"
                },
                "region": {
                  "type": "string",
                  "title": "AWS region",
                  "description": "Required AWS region code, for example us-east-1 or ap-northeast-1.",
                  "pattern": "^[a-z0-9]+(-[a-z0-9]+)+-[0-9]+$"
                },
                "filters": {
                  "type": "object",
                  "title": "Optional price filters",
                  "description": "Narrow the official region price file before rows and cost estimates are produced.",
                  "additionalProperties": false,
                  "properties": {
                    "productFamily": {
                      "type": "string",
                      "title": "Product family",
                      "description": "Optional exact, case-insensitive AWS product family filter; partial matches are rejected."
                    },
                    "usageType": {
                      "type": "string",
                      "title": "Usage type",
                      "description": "Optional exact, case-insensitive AWS usage type filter; partial matches are rejected."
                    },
                    "operation": {
                      "type": "string",
                      "title": "Operation",
                      "description": "Optional exact, case-insensitive AWS operation filter; partial matches are rejected."
                    },
                    "unit": {
                      "type": "string",
                      "title": "Price dimension unit",
                      "description": "Optional exact, case-insensitive price dimension unit filter."
                    },
                    "offerTermCode": {
                      "type": "string",
                      "title": "Offer term code",
                      "description": "Optional exact, case-insensitive offerTermCode filter. Required to select one Reserved pricing alternative when more than one is present."
                    },
                    "tier": {
                      "type": "string",
                      "title": "Price tier",
                      "description": "Optional exact, case-insensitive price-dimension tier/key filter. Reserved tiers are mutually exclusive for cost estimates."
                    },
                    "termTypes": {
                      "type": "array",
                      "title": "Term types",
                      "description": "AWS term types to include. Runtime accepts OnDemand and Reserved.",
                      "items": {
                        "type": "string"
                      },
                      "minItems": 1,
                      "uniqueItems": true,
                      "default": [
                        "OnDemand"
                      ]
                    },
                    "skus": {
                      "type": "array",
                      "title": "AWS SKUs",
                      "description": "Optional exact AWS SKU allowlist.",
                      "items": {
                        "type": "string"
                      },
                      "uniqueItems": true
                    },
                    "descriptionIncludes": {
                      "type": "array",
                      "title": "Description contains",
                      "description": "Optional case-insensitive substrings required in the price dimension description. This is not a product selector; use exact attributes for S3 storage classes.",
                      "items": {
                        "type": "string"
                      },
                      "uniqueItems": true
                    },
                    "attributes": {
                      "type": "object",
                      "title": "Product attributes",
                      "description": "Exact case-insensitive product attribute matches. For S3 Standard, specify discriminating attributes such as storageClass and volumeType; descriptionIncludes alone is fail-closed when Standard and Standard-IA both match.",
                      "additionalProperties": true
                    }
                  }
                },
                "usage": {
                  "type": "object",
                  "title": "Monthly usage assumptions",
                  "description": "Map the exact AWS price-list unit to a non-negative monthly quantity, for example Requests or GB-Seconds.",
                  "additionalProperties": true
                }
              }
            },
            "default": [
              {
                "serviceCode": "AWSLambda",
                "region": "us-east-1",
                "usage": {
                  "Requests": 1000000,
                  "GB-Seconds": 100000
                }
              }
            ]
          },
          "mode": {
            "title": "Run mode",
            "enum": [
              "report",
              "watch"
            ],
            "type": "string",
            "description": "report creates a current cost-impact report; watch emits stable SKU/term changes.",
            "default": "report"
          },
          "initialRunMode": {
            "title": "Initial run mode",
            "enum": [
              "baseline_only",
              "emit_current"
            ],
            "type": "string",
            "description": "baseline_only stores the first successful snapshot with zero rows; emit_current permits current rows/report output on a new scope fingerprint.",
            "default": "baseline_only"
          },
          "generateReport": {
            "title": "Generate cost-impact report",
            "type": "boolean",
            "description": "Emit one aws_cost_impact_report row when the selected mode has a report-worthy observation.",
            "default": true
          },
          "emitUnchanged": {
            "title": "Emit unchanged rows",
            "type": "boolean",
            "description": "When false, repeated identical rows and reports are suppressed. The default watch no-change run emits zero rows and zero charges.",
            "default": false
          },
          "emitRawRows": {
            "title": "Emit raw price rows",
            "type": "boolean",
            "description": "Emit canonical aws_price_row rows and an aws_price_export handoff row. Use filters and maxChargeUsd for broad services.",
            "default": false
          },
          "maxChargeUsd": {
            "title": "Maximum run charge",
            "minimum": 0,
            "maximum": 100000,
            "type": "number",
            "description": "Hard PAY_PER_EVENT cap. A run exceeding it fails before delivery and state commit.",
            "default": 25
          },
          "dryRun": {
            "title": "Dry run",
            "type": "boolean",
            "description": "Return deterministic sample rows without network access, delivery, charges, or state writes.",
            "default": false
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}