{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2018-05-10",
    "auth":[
      "aws.auth#sigv4a",
      "aws.auth#sigv4"
    ],
    "endpointPrefix":"sustainability",
    "protocol":"rest-json",
    "protocols":["rest-json"],
    "serviceFullName":"AWS Sustainability",
    "serviceId":"Sustainability",
    "signatureVersion":"v4",
    "signingName":"sustainability",
    "uid":"sustainability-2018-05-10"
  },
  "operations":{
    "GetEstimatedCarbonEmissions":{
      "name":"GetEstimatedCarbonEmissions",
      "http":{
        "method":"POST",
        "requestUri":"/v1/estimated-carbon-emissions",
        "responseCode":200
      },
      "input":{"shape":"GetEstimatedCarbonEmissionsRequest"},
      "output":{"shape":"GetEstimatedCarbonEmissionsResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"}
      ],
      "readonly":true
    },
    "GetEstimatedCarbonEmissionsDimensionValues":{
      "name":"GetEstimatedCarbonEmissionsDimensionValues",
      "http":{
        "method":"POST",
        "requestUri":"/v1/estimated-carbon-emissions-dimension-values",
        "responseCode":200
      },
      "input":{"shape":"GetEstimatedCarbonEmissionsDimensionValuesRequest"},
      "output":{"shape":"GetEstimatedCarbonEmissionsDimensionValuesResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"}
      ],
      "readonly":true
    }
  },
  "shapes":{
    "AccessDeniedException":{
      "type":"structure",
      "required":["Message"],
      "members":{
        "Message":{
          "shape":"String",
          "locationName":"message"
        }
      },
      "error":{
        "httpStatusCode":403,
        "senderFault":true
      },
      "exception":true
    },
    "Dimension":{
      "type":"string",
      "enum":[
        "USAGE_ACCOUNT_ID",
        "REGION",
        "SERVICE"
      ]
    },
    "DimensionEntry":{
      "type":"structure",
      "required":[
        "Dimension",
        "Value"
      ],
      "members":{
        "Dimension":{"shape":"Dimension"},
        "Value":{"shape":"String"}
      }
    },
    "DimensionEntryList":{
      "type":"list",
      "member":{"shape":"DimensionEntry"}
    },
    "DimensionList":{
      "type":"list",
      "member":{"shape":"Dimension"}
    },
    "DimensionListMap":{
      "type":"map",
      "key":{"shape":"Dimension"},
      "value":{"shape":"DimensionValueList"}
    },
    "DimensionValueList":{
      "type":"list",
      "member":{"shape":"String"}
    },
    "DimensionsMap":{
      "type":"map",
      "key":{"shape":"Dimension"},
      "value":{"shape":"String"}
    },
    "Double":{
      "type":"double",
      "box":true
    },
    "Emissions":{
      "type":"structure",
      "required":[
        "Value",
        "Unit"
      ],
      "members":{
        "Value":{"shape":"Double"},
        "Unit":{"shape":"EmissionsUnit"}
      }
    },
    "EmissionsMap":{
      "type":"map",
      "key":{"shape":"EmissionsType"},
      "value":{"shape":"Emissions"}
    },
    "EmissionsType":{
      "type":"string",
      "enum":[
        "TOTAL_LBM_CARBON_EMISSIONS",
        "TOTAL_MBM_CARBON_EMISSIONS",
        "TOTAL_SCOPE_1_CARBON_EMISSIONS",
        "TOTAL_SCOPE_2_LBM_CARBON_EMISSIONS",
        "TOTAL_SCOPE_2_MBM_CARBON_EMISSIONS",
        "TOTAL_SCOPE_3_LBM_CARBON_EMISSIONS",
        "TOTAL_SCOPE_3_MBM_CARBON_EMISSIONS"
      ]
    },
    "EmissionsTypeList":{
      "type":"list",
      "member":{"shape":"EmissionsType"}
    },
    "EmissionsUnit":{
      "type":"string",
      "enum":["MTCO2e"]
    },
    "EstimatedCarbonEmissions":{
      "type":"structure",
      "required":[
        "TimePeriod",
        "DimensionsValues",
        "ModelVersion",
        "EmissionsValues"
      ],
      "members":{
        "TimePeriod":{"shape":"TimePeriod"},
        "DimensionsValues":{"shape":"DimensionsMap"},
        "ModelVersion":{"shape":"ModelVersion"},
        "EmissionsValues":{"shape":"EmissionsMap"}
      }
    },
    "EstimatedCarbonEmissionsList":{
      "type":"list",
      "member":{"shape":"EstimatedCarbonEmissions"}
    },
    "FilterExpression":{
      "type":"structure",
      "members":{
        "Dimensions":{"shape":"DimensionListMap"}
      }
    },
    "GetEstimatedCarbonEmissionsDimensionValuesRequest":{
      "type":"structure",
      "required":[
        "TimePeriod",
        "Dimensions"
      ],
      "members":{
        "TimePeriod":{"shape":"TimePeriod"},
        "Dimensions":{"shape":"DimensionList"},
        "MaxResults":{"shape":"MaxResults"},
        "NextToken":{"shape":"NextToken"}
      }
    },
    "GetEstimatedCarbonEmissionsDimensionValuesResponse":{
      "type":"structure",
      "members":{
        "Results":{"shape":"DimensionEntryList"},
        "NextToken":{"shape":"NextToken"}
      }
    },
    "GetEstimatedCarbonEmissionsRequest":{
      "type":"structure",
      "required":["TimePeriod"],
      "members":{
        "TimePeriod":{"shape":"TimePeriod"},
        "GroupBy":{"shape":"DimensionList"},
        "FilterBy":{"shape":"FilterExpression"},
        "EmissionsTypes":{"shape":"EmissionsTypeList"},
        "Granularity":{"shape":"TimeGranularity"},
        "GranularityConfiguration":{"shape":"GranularityConfiguration"},
        "MaxResults":{"shape":"MaxResults"},
        "NextToken":{"shape":"NextToken"}
      }
    },
    "GetEstimatedCarbonEmissionsResponse":{
      "type":"structure",
      "required":["Results"],
      "members":{
        "Results":{"shape":"EstimatedCarbonEmissionsList"},
        "NextToken":{"shape":"NextToken"}
      }
    },
    "GranularityConfiguration":{
      "type":"structure",
      "members":{
        "FiscalYearStartMonth":{"shape":"Month"}
      }
    },
    "InternalServerException":{
      "type":"structure",
      "required":["Message"],
      "members":{
        "Message":{
          "shape":"String",
          "locationName":"message"
        }
      },
      "error":{"httpStatusCode":500},
      "exception":true,
      "fault":true,
      "retryable":{"throttling":false}
    },
    "MaxResults":{
      "type":"integer",
      "box":true,
      "max":5000,
      "min":1
    },
    "ModelVersion":{
      "type":"string",
      "pattern":"v(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?"
    },
    "Month":{
      "type":"integer",
      "box":true,
      "max":12,
      "min":1
    },
    "NextToken":{
      "type":"string",
      "max":2000,
      "min":1
    },
    "String":{"type":"string"},
    "ThrottlingException":{
      "type":"structure",
      "required":["Message"],
      "members":{
        "Message":{
          "shape":"String",
          "locationName":"message"
        }
      },
      "error":{
        "httpStatusCode":429,
        "senderFault":true
      },
      "exception":true,
      "retryable":{"throttling":false}
    },
    "TimeGranularity":{
      "type":"string",
      "enum":[
        "YEARLY_CALENDAR",
        "YEARLY_FISCAL",
        "QUARTERLY_CALENDAR",
        "QUARTERLY_FISCAL",
        "MONTHLY"
      ]
    },
    "TimePeriod":{
      "type":"structure",
      "required":[
        "Start",
        "End"
      ],
      "members":{
        "Start":{"shape":"Timestamp"},
        "End":{"shape":"Timestamp"}
      }
    },
    "Timestamp":{
      "type":"timestamp",
      "timestampFormat":"iso8601"
    },
    "ValidationException":{
      "type":"structure",
      "required":["Message"],
      "members":{
        "Message":{
          "shape":"String",
          "locationName":"message"
        }
      },
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    }
  }
}
