{"openapi":"3.1.0","info":{"title":"ODIN Web API","description":"## Authentication and Request Process\n\nTo submit a request, first obtain an access token and then include that token when sending your API\nrequest. The process consists of three steps and can be implemented using any programming language or\nHTTP client.\n\n### Step 1: Request an Access Token\n\nSend an HTTP `POST` request to the authentication server using Basic Authentication with the\n`client_id` and `client_secret` associated with your API account.\n\nRequirements:\n\n- Use Basic Authentication with `client_id:client_secret` encoded in Base64.\n- Most HTTP libraries and frameworks provide built-in support for Basic Authentication and handle the\n  encoding automatically.\n- Include the `grant_type` form URL-encoded parameter in the request body.\n\nToken endpoint:\n\n```http\nPOST https://production-security-odin.ornl.gov/oauth2/token\nContent-Type: application/x-www-form-urlencoded\nAuthorization: Basic base64(client_id:client_secret)\n```\n\nRequest body:\n\n```text\ngrant_type=client_credentials\n```\n\n### Step 2: Retrieve the Access Token\n\nIf the authentication request is successful, the server returns an HTTP `200 OK` response containing a\nJSON payload similar to the following:\n\n```json\n{\n  \"access_token\": \"<token>\",\n  \"token_type\": \"Bearer\",\n  \"expires_in\": 300\n}\n```\n\nUse the value of the `access_token` property as your authentication credential for subsequent API\nrequests.\n\nNote: Access tokens are temporary and expire after approximately five minutes. A new token must be\nrequested after expiration.\n\n### Step 3: Submit the API Request\n\nSend your API request and include the access token in the `Authorization` header using the Bearer token\nformat:\n\n```http\nAuthorization: Bearer <access_token>\n```\n\nInclude the request payload in the request body and submit it to the appropriate API endpoint as defined\nby this API documentation.\n","version":"v1"},"servers":[{"url":"https://odin.ornl.gov","description":"Generated server url"}],"tags":[{"name":"ODIN Public Outage Information","description":"ODIN Public Web API for accessing active outage information and utility status from ODIN."},{"name":"ODIN Outage Information","description":"ODIN Web API for accessing active outage information and historical outage information."}],"paths":{"/odin/outage":{"post":{"tags":["ODIN Outage Information"],"summary":"Provide CIM or State Feed raw XML outage information to ODIN. This will respond back with processing success or failure if an error is encountered.","operationId":"insertOutageData","parameters":[{"name":"resolution","in":"query","required":false,"schema":{"type":"string"}},{"name":"seq","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"utilityId","in":"query","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/xml":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PubOutages"},{"$ref":"#/components/schemas/OutageSummaryType"}]}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/OutageDataResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/OutageDataResponse"}},"text/plain":{"schema":{"$ref":"#/components/schemas/OutageDataResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/odin/cim/outage":{"post":{"tags":["ODIN Outage Information"],"summary":"Provide CIM outage information to ODIN. This will respond back with processing success or failure if an error is encountered.","operationId":"insertCIMOutageData","parameters":[{"name":"seq","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"utilityId","in":"query","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PubOutages"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/OutageDataResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/OutageDataResponse"}},"text/plain":{"schema":{"$ref":"#/components/schemas/OutageDataResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/odin":{"get":{"tags":["ODIN Outage Information"],"summary":"Get the list of all current active outages in ODIN returned by default as CIM outage response.","operationId":"getAllActiveOutages","parameters":[{"name":"format","in":"query","description":"Can specify format of the response either as CIM (default) or JSON","required":false,"schema":{"type":"string"}},{"name":"outageKind","in":"query","description":"Sets the outage types that can be returned back such as POINT, POLYGON, ZIP, or COUNTY outage data","required":false,"schema":{"type":"array","items":{"type":"string","enum":["POINT","POLYGON","ZIP","TRACT","H3","COUNTY","STATE"]}}},{"name":"stateCd","in":"query","description":"Use the two digit FIPS State Code such as 49","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"countyCd","in":"query","description":"Use the five digit FIPS State Code and County Code such as 49017","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"pageSize","in":"query","description":"Optional number of outages to return, from 1 through 1000","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"cursor","in":"query","description":"Opaque continuation cursor returned by the previous page","required":false,"schema":{"type":"string"}},{"name":"If-None-Match","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/PubOutages"}},"application/json":{"schema":{"$ref":"#/components/schemas/PubOutages"}},"text/plain":{"schema":{"$ref":"#/components/schemas/PubOutages"}}}}},"security":[{"bearerAuth":[]}]}},"/odin/{utilityId}":{"get":{"tags":["ODIN Outage Information"],"summary":"Get the list of  current active outages in ODIN for a specific utility returned by default as CIM outage response.","operationId":"getUtilityActiveOutages","parameters":[{"name":"utilityId","in":"path","description":"Provide the EIA utility number for the utility company","required":true,"schema":{"type":"string"}},{"name":"format","in":"query","description":"Can specify format of the response either as CIM (default) or JSON","required":false,"schema":{"type":"string"}},{"name":"outageKind","in":"query","description":"Sets the outage types that can be returned back such as POINT, POLYGON, ZIP, or COUNTY outage data","required":false,"schema":{"type":"array","items":{"type":"string","enum":["POINT","POLYGON","ZIP","TRACT","H3","COUNTY","STATE"]}}},{"name":"stateCd","in":"query","description":"Use the two digit FIPS State Code such as 49","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"countyCd","in":"query","description":"Use the five digit FIPS State Code and County Code such as 49017","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"OK","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/PubOutages"}},"application/json":{"schema":{"$ref":"#/components/schemas/PubOutages"}},"text/plain":{"schema":{"$ref":"#/components/schemas/PubOutages"}}}}},"security":[{"bearerAuth":[]}]}},"/odin/outages":{"get":{"tags":["ODIN Outage Information"],"summary":"Get a list of all current / active outages in ODIN.","description":"You can use parameters like bbox with WGS 84 based coordinates, FIPS state / county codes, or specifying the type of outage (county, zip, etc). This will also return the outage geometry as WKT GeoJSON for that outage event.","operationId":"getActiveOutages","parameters":[{"name":"minx","in":"query","required":false,"schema":{"type":"number","format":"double"}},{"name":"miny","in":"query","required":false,"schema":{"type":"number","format":"double"}},{"name":"maxx","in":"query","required":false,"schema":{"type":"number","format":"double"}},{"name":"maxy","in":"query","required":false,"schema":{"type":"number","format":"double"}},{"name":"stateCd","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"countyCd","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"outageKind","in":"query","required":false,"schema":{"type":"string","enum":["POINT","POLYGON","ZIP","TRACT","H3","COUNTY","STATE"]}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OdinOutageArea"}}}}}},"security":[{"bearerAuth":[]}]}},"/odin/history/outages":{"get":{"tags":["ODIN Outage Information"],"summary":"Get a list of detailed historical outage information provided to ODIN.","description":"The outage information can be selected based upon the EIA utility number, FIPS state code / county code, and the date time the outage was provided to ODIN.  Please note that all requests are limited to return no more than 500 outage events at a time from the system, you will need to use the limit / offset parameters to paginate through all results.","operationId":"getCimOutages","parameters":[{"name":"eiaId","in":"query","description":"The EIA utility number for the utility company","required":false,"schema":{"type":"string"}},{"name":"stateCd","in":"query","description":"Use the two digit FIPS State Code such as 49","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"countyCd","in":"query","description":"Use the five digit FIPS State Code and County Code such as 49017","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"limit","in":"query","description":"A limit to number of outage events to return","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"offset","in":"query","description":"If paginating results, provide the last / previous offset.","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"orderBy","in":"query","required":false,"schema":{"type":"string","enum":["Created"]}},{"name":"totalOut","in":"query","description":"Use the total out to filter outage events to those with a number meters affected greater than or equal to the number provided.","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"createdStart","in":"query","description":"A yyyy-MM-dd formatted day","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"createdEnd","in":"query","description":"A yyyy-MM-dd formatted day","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"outageKind","in":"query","description":"Sets the outage types that can be returned back such as POINT, POLYGON, ZIP, or COUNTY outage data","required":false,"schema":{"type":"array","items":{"type":"string","enum":["POINT","POLYGON","ZIP","TRACT","H3","COUNTY","STATE"]}}},{"name":"ascOrder","in":"query","required":false,"schema":{"type":"boolean","default":true}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueryResultOutage"}},"application/xml":{"schema":{"$ref":"#/components/schemas/QueryResultOutage"}}}}},"security":[{"bearerAuth":[]}]}},"/odi":{"get":{"tags":["ODIN Public Outage Information"],"summary":"Get the list of all current active outages in ODIN returned by default as CIM outage response. This will only show county-level locations. Set view=county to aggregate all active outage events into one result per county.","operationId":"getAllActiveOutages_1","parameters":[{"name":"format","in":"query","description":"Can specify format of the response either as CIM (default) or JSON","required":false,"schema":{"type":"string"}},{"name":"view","in":"query","description":"Optional response view. Use county for one aggregate outage total per county.","required":false,"schema":{"type":"string"}},{"name":"stateCd","in":"query","description":"Use the two digit FIPS State Code such as 49","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"countyCd","in":"query","description":"Use the five digit FIPS State Code and County Code such as 49017","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"pageSize","in":"query","description":"Optional number of outages to return, from 1 through 1000","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"cursor","in":"query","description":"Opaque continuation cursor returned by the previous page","required":false,"schema":{"type":"string"}},{"name":"If-None-Match","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PubOutages"}},"application/xml":{"schema":{"$ref":"#/components/schemas/PubOutages"}},"text/plain":{"schema":{"$ref":"#/components/schemas/PubOutages"}}}}}}},"/odi/{utilityId}":{"get":{"tags":["ODIN Public Outage Information"],"summary":"Get the list of  current active outages in ODIN for a specific utility returned by default as CIM outage response. This will only show information aggregated at the county level.","operationId":"getUtilityOutages","parameters":[{"name":"utilityId","in":"path","description":"Provide the EIA utility number for the utility company","required":true,"schema":{"type":"string"}},{"name":"format","in":"query","description":"This can be either CIM, JSON, or XML","required":false,"schema":{"type":"string"}},{"name":"stateCd","in":"query","description":"Use the two digit FIPS State Code such as 49","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"countyCd","in":"query","description":"Use the five digit FIPS State Code and County Code such as 49017","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PubOutages"}},"application/xml":{"schema":{"$ref":"#/components/schemas/PubOutages"}},"text/plain":{"schema":{"$ref":"#/components/schemas/PubOutages"}}}}}}},"/odi/status":{"get":{"tags":["ODIN Public Outage Information"],"summary":"Get a list of all utilities that currently provide outage information to ODIN and the last or most recent update time.","operationId":"getLatestData","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UtilityStatus"}}},"application/xml":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UtilityStatus"}}},"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UtilityStatus"}}}}}}}},"/odi/map":{"get":{"tags":["ODIN Public Outage Information"],"summary":"Get a list of all current / active outages in ODIN.","description":"You can use parameters like bbox with WGS 84 based coordinates, FIPS state / county codes, and a single scale bucket. The public map endpoint uses scale to choose the safest effective representation and clamps H3 output to resolution 7.","operationId":"getMapOutages","parameters":[{"name":"minx","in":"query","required":false,"schema":{"type":"number","format":"double"}},{"name":"miny","in":"query","required":false,"schema":{"type":"number","format":"double"}},{"name":"maxx","in":"query","required":false,"schema":{"type":"number","format":"double"}},{"name":"maxy","in":"query","required":false,"schema":{"type":"number","format":"double"}},{"name":"stateCd","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"countyCd","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"scale","in":"query","description":"Requested display scale bucket: STATE, COUNTY, H3_LOW, H3_MEDIUM, H3_HIGH, or NATIVE.","required":false,"schema":{"type":"string","enum":["STATE","COUNTY","H3_LOW","H3_MEDIUM","H3_HIGH","NATIVE"]}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OdinOutageArea"}}}}}}}},"/odi/data/{dataId}":{"get":{"tags":["ODIN Public Outage Information"],"summary":"Get success / error response for the given data id.","operationId":"getDataResponse","parameters":[{"name":"dataId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutageDataResponse"}},"application/xml":{"schema":{"$ref":"#/components/schemas/OutageDataResponse"}},"text/plain":{"schema":{"$ref":"#/components/schemas/OutageDataResponse"}}}}}}}},"components":{"schemas":{"CoordinateSystem":{"type":"object","properties":{"crsUrn":{"type":"string","xml":{"namespace":"http://iec.ch/TC57/2014/PubOutages#"}}},"required":["crsUrn"]},"DateTimeInterval":{"type":"object","properties":{"end":{"type":"string","xml":{"namespace":"http://iec.ch/TC57/2014/PubOutages#"}},"start":{"type":"string","xml":{"namespace":"http://iec.ch/TC57/2014/PubOutages#"}}}},"EstimatedRestorationTime":{"type":"object","properties":{"confidenceKind":{"type":"string","enum":["high","low"],"xml":{"namespace":"http://iec.ch/TC57/2014/PubOutages#"}},"ert":{"type":"string","xml":{"namespace":"http://iec.ch/TC57/2014/PubOutages#"}},"ertSource":{"type":"string","xml":{"namespace":"http://iec.ch/TC57/2014/PubOutages#"}}},"required":["confidenceKind","ert","ertSource"]},"Incident":{"type":"object","properties":{"cause":{"type":"string","xml":{"namespace":"http://iec.ch/TC57/2014/PubOutages#"}},"location":{"$ref":"#/components/schemas/Location","xml":{"name":"Location","namespace":"http://iec.ch/TC57/2014/PubOutages#"}}},"required":["cause","location"]},"Location":{"type":"object","properties":{"direction":{"type":"string","xml":{"namespace":"http://iec.ch/TC57/2014/PubOutages#"}},"geoInfoReference":{"type":"string","xml":{"namespace":"http://iec.ch/TC57/2014/PubOutages#"}},"kind":{"type":"string","enum":["electricalNetwork","other","specialRestrictionLand","weatherZone"],"xml":{"namespace":"http://iec.ch/TC57/2014/PubOutages#"}},"type":{"type":"string","xml":{"namespace":"http://iec.ch/TC57/2014/PubOutages#"}},"coordinateSystem":{"$ref":"#/components/schemas/CoordinateSystem","xml":{"name":"CoordinateSystem","namespace":"http://iec.ch/TC57/2014/PubOutages#"}},"positionPoints":{"type":"array","items":{"$ref":"#/components/schemas/PositionPoint"},"xml":{"name":"PositionPoints","namespace":"http://iec.ch/TC57/2014/PubOutages#"}}},"required":["positionPoints"]},"Name":{"type":"object","properties":{"name":{"type":"string","xml":{"namespace":"http://iec.ch/TC57/2014/PubOutages#"}},"nameType":{"type":"string","xml":{"namespace":"http://iec.ch/TC57/2014/PubOutages#"}},"nameTypeAuthority":{"type":"string","xml":{"namespace":"http://iec.ch/TC57/2014/PubOutages#"}}}},"Outage":{"type":"object","properties":{"cause":{"type":"string","xml":{"namespace":"http://iec.ch/TC57/2014/PubOutages#"}},"causeKind":{"type":"string","enum":["animal","lightningStrike","lineDown","poleDown","treeDown","planned","unplanned","equipment","vegetation","weatherOtherThanLightning","lightning","wildlifeOrAnimals","publicOrThirdPartyInterference","utilityHumanError","powerSupplyOrLossOfSupply","customerOrServiceRelated","unknown","other"],"xml":{"namespace":"http://iec.ch/TC57/2014/PubOutages#"}},"communityDescriptor":{"type":"string","xml":{"namespace":"http://iec.ch/TC57/2014/PubOutages#"}},"customersRestored":{"type":"integer","xml":{"namespace":"http://iec.ch/TC57/2014/PubOutages#"}},"metersAffected":{"type":"integer","xml":{"namespace":"http://iec.ch/TC57/2014/PubOutages#"}},"originalCustomersServed":{"type":"integer","xml":{"namespace":"http://iec.ch/TC57/2014/PubOutages#"}},"originalMetersAffected":{"type":"integer","xml":{"namespace":"http://iec.ch/TC57/2014/PubOutages#"}},"outageKind":{"type":"string","enum":["closed","confirmed","partiallyRestored","predicted","restored","outageReported","Investigating","other"],"xml":{"namespace":"http://iec.ch/TC57/2014/PubOutages#"}},"reportedStartTime":{"type":"string","xml":{"namespace":"http://iec.ch/TC57/2014/PubOutages#"}},"statusKind":{"type":"string","enum":["arrived","assigned","awaitingCrewAssignment","enroute","fieldComplete","other"],"xml":{"namespace":"http://iec.ch/TC57/2014/PubOutages#"}},"utilityDisclaimer":{"type":"string","xml":{"namespace":"http://iec.ch/TC57/2014/PubOutages#"}},"actualPeriod":{"$ref":"#/components/schemas/DateTimeInterval","xml":{"namespace":"http://iec.ch/TC57/2014/PubOutages#"}},"estimatedPeriod":{"$ref":"#/components/schemas/DateTimeInterval","xml":{"namespace":"http://iec.ch/TC57/2014/PubOutages#"}},"estimatedRestorationTime":{"$ref":"#/components/schemas/EstimatedRestorationTime","xml":{"name":"EstimatedRestorationTime","namespace":"http://iec.ch/TC57/2014/PubOutages#"}},"incident":{"$ref":"#/components/schemas/Incident","xml":{"name":"Incident","namespace":"http://iec.ch/TC57/2014/PubOutages#"}},"outageArea":{"$ref":"#/components/schemas/OutageArea","xml":{"name":"OutageArea","namespace":"http://iec.ch/TC57/2014/PubOutages#"}},"names":{"type":"array","items":{"$ref":"#/components/schemas/Name"},"xml":{"name":"Names","namespace":"http://iec.ch/TC57/2014/PubOutages#"}},"mrid":{"type":"string","xml":{"name":"mRID","namespace":"http://iec.ch/TC57/2014/PubOutages#"}}},"required":["mrid","reportedStartTime","statusKind"]},"OutageArea":{"type":"object","properties":{"earliestReportedTime":{"type":"string","xml":{"namespace":"http://iec.ch/TC57/2014/PubOutages#"}},"metersServed":{"type":"integer","xml":{"namespace":"http://iec.ch/TC57/2014/PubOutages#"}},"outageAreaKind":{"type":"string","enum":["borough","county","parish","serviceArea","state","township","ward","zipcode","tract","h3"],"xml":{"namespace":"http://iec.ch/TC57/2014/PubOutages#"}}},"required":["earliestReportedTime","metersServed","outageAreaKind"]},"PositionPoint":{"type":"object","properties":{"sequenceNumber":{"type":"integer","xml":{"namespace":"http://iec.ch/TC57/2014/PubOutages#"}},"xPosition":{"type":"string","xml":{"namespace":"http://iec.ch/TC57/2014/PubOutages#"}},"yPosition":{"type":"string","xml":{"namespace":"http://iec.ch/TC57/2014/PubOutages#"}},"zPosition":{"type":"string","xml":{"namespace":"http://iec.ch/TC57/2014/PubOutages#"}}},"required":["sequenceNumber","xPosition","yPosition"]},"PubOutages":{"type":"object","properties":{"outage":{"type":"array","items":{"$ref":"#/components/schemas/Outage"},"xml":{"name":"Outage","namespace":"http://iec.ch/TC57/2014/PubOutages#"}}},"xml":{"name":"PubOutages","namespace":"http://iec.ch/TC57/2014/PubOutages#"}},"OutageSummaryType":{"type":"object","properties":{"totals":{"$ref":"#/components/schemas/TotalsType"},"regions":{"$ref":"#/components/schemas/RegionsType"},"coopID":{"type":"string","xml":{"attribute":true}},"rusID":{"type":"string","xml":{"attribute":true}}},"required":["regions","totals"],"xml":{"name":"outageSummary"}},"RegionType":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"nbrOut":{"type":"integer","format":"int32"},"nbrServed":{"type":"integer","format":"int32"},"countyFIPSId":{"type":"string"},"stateFIPSId":{"type":"string"}},"required":["id","name","nbrOut","nbrServed"]},"RegionsType":{"type":"object","properties":{"region":{"type":"array","items":{"$ref":"#/components/schemas/RegionType"}},"type":{"type":"string","xml":{"attribute":true}}},"required":["region"]},"TotalsType":{"type":"object","properties":{"nbrOut":{"type":"integer","format":"int32"},"nbrServed":{"type":"integer","format":"int32"}},"required":["nbrOut","nbrServed"]},"OutageDataMessage":{"type":"object","properties":{"severity":{"type":"string","enum":["INFO","ERROR","WARN"]},"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"occurrences":{"type":"integer","format":"int32"}}},"OutageDataResponse":{"type":"object","properties":{"status":{"type":"string"},"errors":{"type":"array","items":{"type":"string"}},"messages":{"type":"array","items":{"$ref":"#/components/schemas/OutageDataMessage"}},"outageId":{"type":"string"},"dataId":{"type":"string"}}},"OdinOutageArea":{"type":"object","properties":{"id":{"type":"string"},"feature":{"type":"object","additionalProperties":{}},"metersOut":{"type":"integer","format":"int32"},"stateName":{"type":"string"},"countyName":{"type":"string"},"zipCode":{"type":"string"},"tract":{"type":"string"},"outages":{"type":"array","items":{"$ref":"#/components/schemas/OutageSelection"}},"outageType":{"type":"string","enum":["STATE","COUNTY","ZIP","CUSTOM_AREA","POINT","TRACT","H3"]},"sourceType":{"type":"string"},"precisionLabel":{"type":"string"},"generalized":{"type":"boolean"},"h3Resolution":{"type":"integer","format":"int32"},"asFeatureObject":{"type":"string","writeOnly":true}}},"OutageEnvelope":{"type":"object","properties":{"minX":{"type":"number","format":"double"},"minY":{"type":"number","format":"double"},"maxX":{"type":"number","format":"double"},"maxY":{"type":"number","format":"double"}}},"OutageSelection":{"type":"object","properties":{"reported":{"type":"integer","format":"int32"},"state":{"type":"string"},"stateName":{"type":"string"},"county":{"type":"string"},"zip":{"type":"string"},"tract":{"type":"string"},"utilityId":{"type":"string"},"utilityName":{"type":"string"},"metersOut":{"type":"integer","format":"int32"},"metersServed":{"type":"integer","format":"int32"},"dataGeometry":{"type":"string"},"outageBbox":{"type":"string"},"envelope":{"$ref":"#/components/schemas/OutageEnvelope"},"areaId":{"type":"string"},"cellIds":{"type":"array","items":{"type":"string"}},"outageKind":{"type":"string"},"outageIndex":{"type":"integer","format":"int32"},"seq":{"type":"integer","format":"int32"}}},"QueryResultOutage":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/Outage"}},"offset":{"type":"integer","format":"int32"},"limit":{"type":"integer","format":"int32"},"total":{"type":"integer","format":"int64"},"sortField":{"type":"string"},"sortDirection":{"type":"string"}}},"UtilityStatus":{"type":"object","properties":{"receivedDate":{"type":"string","format":"date-time"},"eiaId":{"type":"string"},"name":{"type":"string"},"dataId":{"type":"string"},"hasError":{"type":"boolean"},"vendor":{"type":"string"},"dataResolution":{"type":"string"},"totalOutages":{"type":"integer","format":"int32"},"outageFeed":{"type":"integer","format":"int32"}}}},"securitySchemes":{"bearerAuth":{"type":"oauth2","description":"ODIN API clients authenticate with OAuth2 client credentials.\n\n1. Register a client and obtain a client_id and client_secret.\n2. Request an access token from `https://production-security-odin.ornl.gov/oauth2/token`.\n3. Send the returned access_token as: Authorization: Bearer <access_token>.\n","flows":{"clientCredentials":{"tokenUrl":"https://production-security-odin.ornl.gov/oauth2/token","scopes":{"api":"Access secured ODIN API endpoints"}}}}}}}