{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/microsoft-azure-cost-management/json-schema/microsoft-azure-cost-management-export-execution-list-result-schema.json",
  "title": "ExportExecutionListResult",
  "description": "Result of listing the run history of an export.",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_superseded/microsoft-azure-cost-management-exports-api-openapi.yml#/components/schemas/ExportExecutionListResult",
  "type": "object",
  "properties": {
    "value": {
      "type": "array",
      "description": "A list of export runs.",
      "items": {
        "$ref": "#/$defs/ExportRun"
      },
      "readOnly": true
    }
  },
  "$defs": {
    "CommonExportProperties": {
      "type": "object",
      "description": "The common properties of the export.",
      "properties": {
        "format": {
          "$ref": "#/$defs/FormatType",
          "description": "The format of the export being delivered."
        },
        "deliveryInfo": {
          "$ref": "#/$defs/ExportDeliveryInfo",
          "description": "Has delivery information for the export."
        },
        "definition": {
          "$ref": "#/$defs/ExportDefinition",
          "description": "Has the definition for the export."
        },
        "runHistory": {
          "$ref": "#/$defs/ExportExecutionListResult",
          "description": "If requested, has the most recent run history for the export."
        },
        "partitionData": {
          "type": "boolean",
          "description": "If set to true, exported data will be partitioned by size and placed in a blob directory together with a manifest file."
        },
        "dataOverwriteBehavior": {
          "$ref": "#/$defs/DataOverwriteBehaviorType",
          "description": "Allow customers to select overwrite data(OverwritePreviousReport) for exports. This setting will enable overwrite data for the same month in customer storage account. By default set to CreateNewReport."
        },
        "compressionMode": {
          "$ref": "#/$defs/CompressionModeType",
          "description": "Allow customers to select compress data for exports. This setting will enable destination file compression scheme at runtime. By default set to None. Gzip is for csv and snappy for parquet."
        },
        "exportDescription": {
          "type": "string",
          "description": "The export description set by customer at time of export creation/update."
        },
        "nextRunTimeEstimate": {
          "type": "string",
          "format": "date-time",
          "description": "If the export has an active schedule, provides an estimate of the next run time.",
          "readOnly": true
        },
        "systemSuspensionContext": {
          "$ref": "#/$defs/ExportSuspensionContext",
          "description": "The export suspension reason if export is in SystemSuspended state. This is not populated currently.",
          "readOnly": true
        }
      },
      "required": [
        "deliveryInfo",
        "definition"
      ]
    },
    "CompressionModeType": {
      "type": "string",
      "description": "Allow customers to select compress data for exports. This setting will enable destination file compression scheme at runtime. By default set to None. Gzip is for csv and snappy for parquet.",
      "enum": [
        "gzip",
        "snappy",
        "none"
      ],
      "x-ms-enum": {
        "name": "CompressionModeType",
        "modelAsString": true,
        "values": [
          {
            "name": "gzip",
            "value": "gzip"
          },
          {
            "name": "snappy",
            "value": "snappy"
          },
          {
            "name": "none",
            "value": "none"
          }
        ]
      }
    },
    "CostManagementProxyResource": {
      "type": "object",
      "description": "The Resource model definition.",
      "properties": {
        "id": {
          "type": "string",
          "description": "Resource Id.",
          "readOnly": true
        },
        "name": {
          "type": "string",
          "description": "Resource name.",
          "readOnly": true
        },
        "type": {
          "type": "string",
          "description": "Resource type.",
          "readOnly": true
        },
        "eTag": {
          "type": "string",
          "description": "eTag of the resource. To handle concurrent update scenario, this field will be used to determine whether the user is updating the latest version or not."
        }
      }
    },
    "DataOverwriteBehaviorType": {
      "type": "string",
      "description": "Allow customers to select overwrite data(OverwritePreviousReport) for exports. This setting will enable overwrite data for the same month in customer storage account. By default set to CreateNewReport.",
      "enum": [
        "OverwritePreviousReport",
        "CreateNewReport"
      ],
      "x-ms-enum": {
        "name": "DataOverwriteBehaviorType",
        "modelAsString": true,
        "values": [
          {
            "name": "OverwritePreviousReport",
            "value": "OverwritePreviousReport"
          },
          {
            "name": "CreateNewReport",
            "value": "CreateNewReport"
          }
        ]
      }
    },
    "DestinationType": {
      "type": "string",
      "description": "The export delivery destination type. Currently only 'AzureBlob' is supported.",
      "enum": [
        "AzureBlob"
      ],
      "x-ms-enum": {
        "name": "DestinationType",
        "modelAsString": true,
        "values": [
          {
            "name": "AzureBlob",
            "value": "AzureBlob"
          }
        ]
      }
    },
    "ErrorDetails": {
      "type": "object",
      "description": "The details of the error.",
      "properties": {
        "code": {
          "type": "string",
          "description": "Error code.",
          "readOnly": true
        },
        "message": {
          "type": "string",
          "description": "Error message indicating why the operation failed.",
          "readOnly": true
        }
      }
    },
    "ExecutionStatus": {
      "type": "string",
      "description": "The last known status of the export run.",
      "enum": [
        "Queued",
        "InProgress",
        "Completed",
        "Failed",
        "Timeout",
        "NewDataNotAvailable",
        "DataNotAvailable"
      ],
      "x-ms-enum": {
        "name": "ExecutionStatus",
        "modelAsString": true,
        "values": [
          {
            "name": "Queued",
            "value": "Queued"
          },
          {
            "name": "InProgress",
            "value": "InProgress"
          },
          {
            "name": "Completed",
            "value": "Completed"
          },
          {
            "name": "Failed",
            "value": "Failed"
          },
          {
            "name": "Timeout",
            "value": "Timeout"
          },
          {
            "name": "NewDataNotAvailable",
            "value": "NewDataNotAvailable"
          },
          {
            "name": "DataNotAvailable",
            "value": "DataNotAvailable"
          }
        ]
      }
    },
    "ExecutionType": {
      "type": "string",
      "description": "The type of the export run.",
      "enum": [
        "OnDemand",
        "Scheduled"
      ],
      "x-ms-enum": {
        "name": "ExecutionType",
        "modelAsString": true,
        "values": [
          {
            "name": "OnDemand",
            "value": "OnDemand"
          },
          {
            "name": "Scheduled",
            "value": "Scheduled"
          }
        ]
      }
    },
    "ExportDataset": {
      "type": "object",
      "description": "The definition for data in the export.",
      "properties": {
        "granularity": {
          "$ref": "#/$defs/GranularityType",
          "description": "The granularity of rows in the export. Currently 'Daily' is supported for most cases."
        },
        "configuration": {
          "$ref": "#/$defs/ExportDatasetConfiguration",
          "description": "The export dataset configuration."
        }
      }
    },
    "ExportDatasetConfiguration": {
      "type": "object",
      "description": "This is on path to deprecation and will not be supported going forward.",
      "properties": {
        "columns": {
          "type": "array",
          "description": "Array of column names to be included in the export. If not provided then the export will include all available columns. The available columns can vary by customer channel (see examples).",
          "items": {
            "type": "string"
          }
        },
        "dataVersion": {
          "type": "string",
          "description": "The data version for the selected for the export. If not provided then the export will default to latest data version."
        },
        "filters": {
          "type": "array",
          "description": "Filters associated with the data sets.",
          "items": {
            "$ref": "#/$defs/FilterItems"
          },
          "x-ms-identifiers": [
            "name"
          ]
        }
      }
    },
    "ExportDefinition": {
      "type": "object",
      "description": "The definition of an export.",
      "properties": {
        "type": {
          "$ref": "#/$defs/ExportType",
          "description": "The type of the export. Note that 'Usage' is equivalent to 'ActualCost' and is applicable to exports that do not yet provide data for charges or amortization for service reservations."
        },
        "timeframe": {
          "$ref": "#/$defs/TimeframeType",
          "description": "The time frame for pulling data for the export. If custom, then a specific time period must be provided."
        },
        "timePeriod": {
          "$ref": "#/$defs/ExportTimePeriod",
          "description": "Has time period for pulling data for the export."
        },
        "dataSet": {
          "$ref": "#/$defs/ExportDataset",
          "description": "The definition for data in the export."
        }
      },
      "required": [
        "type",
        "timeframe"
      ]
    },
    "ExportDeliveryDestination": {
      "type": "object",
      "description": "This represents the blob storage account location where exports of costs will be delivered. There are two ways to configure the destination. The approach recommended for most customers is to specify the resourceId of the storage account. This requires a one-time registration of the account's subscription with the Microsoft.CostManagementExports resource provider in order to give Cost Management services access to the storage. When creating an export in the Azure portal this registration is performed automatically but API users may need to register the subscription explicitly (for more information see https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-supported-services ). Another way to configure the destination is available ONLY to Partners with a Microsoft Partner Agreement plan who are global admins of their billing account. These Partners, instead of specifying the resourceId of a storage account, can specify the storage account name along with a SAS token for the account. This allows exports of costs to a storage account in any tenant. The SAS token should be created for the blob service with Service/Container/Object resource types and with Read/Write/Delete/List/Add/Create permissions (for more information see https://docs.microsoft.com/en-us/azure/cost-management-billing/costs/export-cost-data-storage-account-sas-key ).",
      "properties": {
        "type": {
          "$ref": "#/$defs/DestinationType",
          "description": "The export delivery destination type. Currently only 'AzureBlob' is supported."
        },
        "resourceId": {
          "type": "string",
          "description": "The resource id of the storage account where exports will be delivered. This is not required if a sasToken and storageAccount are specified."
        },
        "container": {
          "type": "string",
          "description": "The name of the container where exports will be uploaded. If the container does not exist it will be created."
        },
        "rootFolderPath": {
          "type": "string",
          "description": "The name of the directory where exports will be uploaded."
        },
        "sasToken": {
          "type": "string",
          "format": "password",
          "description": "A SAS token for the storage account. For a restricted set of Azure customers this together with storageAccount can be specified instead of resourceId. Note: the value returned by the API for this property will always be obfuscated. Returning this same obfuscated value will not result in the SAS token being updated. To update this value a new SAS token must be specified.",
          "x-ms-secret": true
        },
        "storageAccount": {
          "type": "string",
          "description": "The storage account where exports will be uploaded. For a restricted set of Azure customers this together with sasToken can be specified instead of resourceId."
        }
      },
      "required": [
        "container"
      ]
    },
    "ExportDeliveryInfo": {
      "type": "object",
      "description": "The delivery information associated with a export.",
      "properties": {
        "destination": {
          "$ref": "#/$defs/ExportDeliveryDestination",
          "description": "Has destination for the export being delivered."
        }
      },
      "required": [
        "destination"
      ]
    },
    "ExportExecutionListResult": {
      "type": "object",
      "description": "Result of listing the run history of an export.",
      "properties": {
        "value": {
          "type": "array",
          "description": "A list of export runs.",
          "items": {
            "$ref": "#/$defs/ExportRun"
          },
          "readOnly": true
        }
      }
    },
    "ExportRun": {
      "type": "object",
      "description": "An export run.",
      "properties": {
        "properties": {
          "$ref": "#/$defs/ExportRunProperties",
          "description": "The properties of the export run.",
          "x-ms-client-flatten": true
        }
      },
      "allOf": [
        {
          "$ref": "#/$defs/CostManagementProxyResource"
        }
      ]
    },
    "ExportRunProperties": {
      "type": "object",
      "description": "The properties of the export run.",
      "properties": {
        "executionType": {
          "$ref": "#/$defs/ExecutionType",
          "description": "The type of the export run."
        },
        "status": {
          "$ref": "#/$defs/ExecutionStatus",
          "description": "The last known status of the export run."
        },
        "submittedBy": {
          "type": "string",
          "description": "The identifier for the entity that triggered the export. For on-demand runs it is the user email. For scheduled runs it is 'System'."
        },
        "submittedTime": {
          "type": "string",
          "format": "date-time",
          "description": "The time when export was queued to be run."
        },
        "processingStartTime": {
          "type": "string",
          "format": "date-time",
          "description": "The time when export was picked up to be run."
        },
        "processingEndTime": {
          "type": "string",
          "format": "date-time",
          "description": "The time when the export run finished."
        },
        "startDate": {
          "type": "string",
          "format": "date-time",
          "description": "The start datetime for the export."
        },
        "endDate": {
          "type": "string",
          "format": "date-time",
          "description": "The end datetime for the export."
        },
        "fileName": {
          "type": "string",
          "description": "The name of the exported file."
        },
        "manifestFile": {
          "type": "string",
          "description": "The manifest file location(URI location) for the exported files."
        },
        "runSettings": {
          "$ref": "#/$defs/CommonExportProperties",
          "description": "The export settings that were in effect for this run."
        },
        "error": {
          "$ref": "#/$defs/ErrorDetails",
          "description": "The details of any error."
        }
      }
    },
    "ExportSuspensionContext": {
      "type": "object",
      "description": "The properties of the export run. This is not populated currently.",
      "properties": {
        "suspensionCode": {
          "type": "string",
          "description": "The code for export suspension."
        },
        "suspensionReason": {
          "type": "string",
          "description": "The detailed reason for export suspension."
        },
        "suspensionTime": {
          "type": "string",
          "format": "date-time",
          "description": "The time when the export was suspended."
        }
      }
    },
    "ExportTimePeriod": {
      "type": "object",
      "description": "The date range for data in the export. This should only be specified with timeFrame set to 'Custom'. The maximum date range is 1 calendar month.",
      "properties": {
        "from": {
          "type": "string",
          "format": "date-time",
          "description": "The start date for export data."
        },
        "to": {
          "type": "string",
          "format": "date-time",
          "description": "The end date for export data."
        }
      },
      "required": [
        "from",
        "to"
      ]
    },
    "ExportType": {
      "type": "string",
      "description": "The type of the export. Note that 'Usage' is equivalent to 'ActualCost' and is applicable to exports that do not yet provide data for charges or amortization for service reservations.",
      "enum": [
        "Usage",
        "ActualCost",
        "AmortizedCost",
        "FocusCost",
        "PriceSheet",
        "ReservationTransactions",
        "ReservationRecommendations",
        "ReservationDetails"
      ],
      "x-ms-enum": {
        "name": "ExportType",
        "modelAsString": true,
        "values": [
          {
            "name": "Usage",
            "value": "Usage"
          },
          {
            "name": "ActualCost",
            "value": "ActualCost"
          },
          {
            "name": "AmortizedCost",
            "value": "AmortizedCost"
          },
          {
            "name": "FocusCost",
            "value": "FocusCost"
          },
          {
            "name": "PriceSheet",
            "value": "PriceSheet"
          },
          {
            "name": "ReservationTransactions",
            "value": "ReservationTransactions"
          },
          {
            "name": "ReservationRecommendations",
            "value": "ReservationRecommendations"
          },
          {
            "name": "ReservationDetails",
            "value": "ReservationDetails"
          }
        ]
      }
    },
    "FilterItemNames": {
      "type": "string",
      "description": "The name of the filter. This is currently only supported for Export Definition type of ReservationRecommendations. Supported names are ['ReservationScope', 'LookBackPeriod', 'ResourceType']",
      "enum": [
        "ReservationScope",
        "ResourceType",
        "LookBackPeriod"
      ],
      "x-ms-enum": {
        "name": "FilterItemNames",
        "modelAsString": true,
        "values": [
          {
            "name": "ReservationScope",
            "value": "ReservationScope"
          },
          {
            "name": "ResourceType",
            "value": "ResourceType"
          },
          {
            "name": "LookBackPeriod",
            "value": "LookBackPeriod"
          }
        ]
      }
    },
    "FilterItems": {
      "type": "object",
      "description": "Will contain the filter name and value to operate on. This is currently only supported for Export Definition type of ReservationRecommendations.",
      "properties": {
        "name": {
          "$ref": "#/$defs/FilterItemNames",
          "description": "The name of the filter. This is currently only supported for Export Definition type of ReservationRecommendations. Supported names are ['ReservationScope', 'LookBackPeriod', 'ResourceType']"
        },
        "value": {
          "type": "string",
          "description": "Value to filter by. Currently values supported per name are, for 'ReservationScope' supported values are ['Single', 'Shared'], for 'LookBackPeriod' supported values are ['Last7Days', 'Last30Days', 'Last60Days'] and for 'ResourceType' supported values are ['VirtualMachines', 'SQLDatabases', 'PostgreSQL', 'ManagedDisk', 'MySQL', 'RedHat', 'MariaDB', 'RedisCache', 'CosmosDB', 'SqlDataWarehouse', 'SUSELinux', 'AppService', 'BlockBlob', 'AzureDataExplorer', 'VMwareCloudSimple']."
        }
      }
    },
    "FormatType": {
      "type": "string",
      "description": "The format of the export being delivered.",
      "enum": [
        "Csv",
        "Parquet"
      ],
      "x-ms-enum": {
        "name": "FormatType",
        "modelAsString": true,
        "values": [
          {
            "name": "Csv",
            "value": "Csv"
          },
          {
            "name": "Parquet",
            "value": "Parquet"
          }
        ]
      }
    },
    "GranularityType": {
      "type": "string",
      "description": "The granularity of rows in the export. Currently 'Daily' is supported for most cases.",
      "enum": [
        "Daily",
        "Monthly"
      ],
      "x-ms-enum": {
        "name": "GranularityType",
        "modelAsString": true,
        "values": [
          {
            "name": "Daily",
            "value": "Daily"
          },
          {
            "name": "Monthly",
            "value": "Monthly"
          }
        ]
      }
    },
    "TimeframeType": {
      "type": "string",
      "description": "The time frame for pulling data for the export. If custom, then a specific time period must be provided.",
      "enum": [
        "MonthToDate",
        "BillingMonthToDate",
        "TheLastMonth",
        "TheLastBillingMonth",
        "WeekToDate",
        "Custom",
        "TheCurrentMonth"
      ],
      "x-ms-enum": {
        "name": "TimeframeType",
        "modelAsString": true,
        "values": [
          {
            "name": "MonthToDate",
            "value": "MonthToDate"
          },
          {
            "name": "BillingMonthToDate",
            "value": "BillingMonthToDate"
          },
          {
            "name": "TheLastMonth",
            "value": "TheLastMonth"
          },
          {
            "name": "TheLastBillingMonth",
            "value": "TheLastBillingMonth"
          },
          {
            "name": "WeekToDate",
            "value": "WeekToDate"
          },
          {
            "name": "Custom",
            "value": "Custom"
          },
          {
            "name": "TheCurrentMonth",
            "value": "TheCurrentMonth"
          }
        ]
      }
    }
  }
}