Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 103 Current »

Below are the endpoints and their request and response objects for v2.0 of the Ed-Fi ODS / API Admin API.

For the most accurate and detailed documentation of active endpoints in a version, configure and launch your application with SwaggerEnabled : true (this is not recommended in production).

All functional endpoints require authentication to access. See Securing Admin API for details.

Important Information for Admin API v2.0

Please note these important details for changes between Admin API v1 and Admin API v2:

  • Admin API v2.x is only compatible with the ODS/API 7.x line of products.  For ODS/API 3.4-6.1 support with Admin API, please see the Admin API v1 line.
  • The response wrapper from Admin API v1 has been removed and objects are returned directly from their endpoint.
  • Property names which start with an underscore ("_") represents read-only properties.

Endpoint URLs and Schemas


Actions

 Click to view /actions endpoints
EndpointHTTP VerbDescriptionRequest SchemaResponse Schema (Success)
v2/actions

GET

Retrieves all actions

-
[
{
  "id": 0
  "name": "string"
  "uri": "string"
  }
]

Applications

 Click to view /applications endpoints
EndpointHTTP VerbDescriptionRequest SchemaResponse Schema (Success)
v2/applications

GET

Retrieves all applications

-
[
 {
"id": 0,
  "applicationName": "string",
   "vendorId": 0,
  "claimSetName": "string",
"profileIds": [],
  "educationOrganizationIds": [],
"odsInstanceId": 0
}
]
v2/applications

POST

Creates a new application

{
  "applicationName": "string",
  "vendorId": 0,
  "claimSetName": "string",
  "profileIds": [ 0 ],
  "educationOrganizationIds": [ 0 ],
"odsInstanceId": 0
}
{
"id": 0,
  "key": "string",
  "secret": "string"
}
v2/applications/{id}

GET

Retrieves a specific application by id 

-
{
"id": 0,
  "applicationName": "string",
 "vendorId": 0,
  "claimSetName": "string",
 "profileIds": [],
"educationOrganizationIds": [],
"odsInstanceId": 0
}
v2/applications/{id}

PUT

Updates a specific application by id

{  
  "applicationName": "string",
"vendorId": 0,
"claimSetName": "string",
"profileIds": [ 0 ],
"educationOrganizationIds": [ 0 ],
 "odsInstanceId": 0
}
HTTP response as documented below
v2/applications/{id}

DELETE

Deletes an application by id 

-
HTTP response as documented below
v2/applications/{id}/reset-credential

PUT

Resets an application credentials by id -
{
"id": 0,
  "key": "string",
  "secret": "string"
}

AuthorizationStrategies

 Click to view /authorizationStrategies endpoints
EndpointHTTP VerbDescriptionRequest SchemaResponse Schema (Success)
v2/authorizationStrategies
GET

Retrieves all auth strategies

-
[
{
  "id": 0
  "name": "string"
  "displayName": "string"
  }
]

ClaimSets

 Click to view /claimSets endpoints

Endpoint
HTTP Verb
Description
Request Schema
Response Schema (Success)
v2/claimSets
GET

Retrieves all claimsets

-
[
  {
    "id": 0,
    "name": "string",
    "_isSystemReserved": true,
    "_applications": []
  }
]
v2/claimSets
POST

Creates a new claimset.

{ "name": "string"}
HTTP response as documented below


v2/claimSets/{id}
GET

Retrieves a specific claimset by id 

-
{
  "id": 0,
  "name": "string",
  "_isSystemReserved": false,
  "_applications": [],
  "resourceClaims": [
    {
"id": "string",
     "name": "string",    
"actions": [
          { 
          "name": "string",
            "enabled": true
        }
    ], "_defaultAuthorizationStrategies": [ {
"actionId": 0,
"actionName": string, "authorizationStrategies": [
{
"authStrategyId: 0,
"authStrategyName": "string",
             "isInheritedFromParent": true
}] } ], "authorizationStrategyOverridesForCRUD": [ {  
         "actionId": 0,        
"actionName": string,
         "authorizationStrategies": [
{
"authStrategyId: 0,
"authStrategyName": "string",
          "isInheritedFromParent": true
}] } ], "children": [ "list of resource claims" ] } ] }
v2/claimSets/{id}
PUT
Update the claim set name.
{
"name": "string"
}
HTTP response as documented below
v2/claimSets/{id}

DELETE

Deletes a claimset by id -HTTP response as documented below
v2/claimSets/{claimSetId}/resourceClaimActions

POST

Add resourceclaimaction association to claim set. At least one action should be enabled. Valid actions are read, create, update, delete, readchanges.
resouceclaimId is required fields.

{
"resouceclaimId" : 0,
"resourceClaimActions":
[
{
    "name": "string",
    "enabled": true
}
]
}

HTTP response as documented below

v2/claimSets/{claimSetId}/
resourceClaimActions/{resourceClaimId}





PUT

Updates  the resourceclaimActions to a  specific resource claim on a claimset. At least one action should be enabled. Valid actions are read, create, update, delete, readchanges. 

{   
"resourceClaimActions": [    
  { 
    "name": "string",
    "enabled": true
  }
 ]
}
HTTP response as documented below
v2/claimSets/{claimSetId}/resourceClaimActions/
{resourceClaimId}/overrideAuthorizationStrategy


POST

Override the default authorization strategies on provided resource claim for a specific action.

ex: actionName = read,  authorizationStrategies= [ "Ownershipbased" ]

{
"actionName": string,
"authorizationStrategies: []
}

HTTP response as documented below

v2/claimSets/{claimSetId}/resourceClaimActions/
{resourceClaimId}/resetAuthorizationStrategies

POST

Reset to default authorization strategies on provided resource claim.

-
HTTP response as documented below
v2/claimSets/{claimSetId}/
resourceClaimActions/{resourceClaimId}

DELETE

Deletes a resource claims association from a claim set

-
HTTP response as documented below
v2/claimSets/copy
POST

Copy the existing claimset and create new.

{
 "originalId": 0,
 "name": "string"
}
HTTP response as documented below


v2/claimSets/import

POST

Import new claimset 

{
  "name": "string",
  "resourceClaims": [
    {
      "name": "string",       
"actions": [
          { 
            "name": "read",
            "enabled": true
          },
          { 
            "name": "create",
            "enabled": true
          },
          { 
            "name": "update",
            "enabled": true
          },
          { 
            "name": "delete",
            "enabled": true
          },
          { 
            "name": "readChanges",
            "enabled": true
          }
  ],
     "authorizationStrategyOverridesForCRUD": [ {
"actionName": string, "authorizationStrategies": [] } ], "children": [        "list of resource claims" ] } ] }
HTTP response as documented below
v2/claimSets/{id}/export

GET

Retrieves a specific claimset by id 

-
{
  "id": 0,
  "name": "string",
  "_isSystemReserved": false,
  "_applications": [],
  "resourceClaims": [
    {
      "id": "string",
    "name": "string",
"actions": [
          { 
            "name": "read",
            "enabled": true
          },
          { 
            "name": "create",
            "enabled": true
          },
          { 
            "name": "update",
            "enabled": true
          },
          { 
            "name": "delete",
            "enabled": true
          },
          { 
            "name": "readChanges",
            "enabled": true
          }
  ],
    "_defaultAuthorizationStrategiesForCRUD": [
        {
          "actionId": 0,
          "actionName": string,
          "authorizationStrategies": [
           {
          "authStrategyId: 0,
          "authStrategyName": "string",
          "isInheritedFromParent": true
           }]          
        }
      ],
  "authorizationStrategyOverridesForCRUD": [
        {   
        "actionId": 0,        
        "actionName": string,
          "authorizationStrategies": [
           {
        "authStrategyId: 0,
        "authStrategyName": "string",
          "isInheritedFromParent": true
           }] 
        }
      ],
      "children": [
        "list of resource claims"
      ]
    }
  ]
}

OdsInstances

 Click to view /odsInstances endpoints
EndpointHTTP VerbDescriptionRequest SchemaResponse Schema (Success)
v2/odsInstances
GET

Retrieves all ODS Instances

-
[
{
  "id": 0,
  "name": "string",
  "instanceType": "string"
  }
]
v2/odsInstances

POST

Creates a new ODS instance. 

Note: Will validate the connection string to be proper format.

Only 'name' and 'connectionString' are required fields.

instanceType is used to, for example, document the database segmentation strategy being used. It is not restricted to a set of possible values.


{    
"name": "string"
"instanceType": "string",
"connectionString": "string"
}
HTTP response as documented below
v2/odsInstances/{id}

GET

Retrieves a specific ODS instance by id

-
{
  "id": 0,
  "name": "string",
  "instanceType": "string",
   "odsInstanceContexts": [    
      {
  "id": 0,
"odsInstanceId": 0,
  "contextKey": "string",
  "contextValue": "string"
}],
"odsInstanceDerivatives": [
      {
"id": 0,
"odsInstanceId": 0,
"derivativeType": "string"
}]
}
v2/odsInstances/{id}

PUT

Updates a specific ODS instance by id.

Note: Will validate the connection string to be proper format.

On update the connection string is optional.

If user is not intending to update the connection string value as part of update, then empty value will be passed. So that the existing connection string will be retained as plain text or encrypted value.

{  
  "name": "string"
  "instanceType": "string",
  "connectionString": "string"
}
HTTP response as documented below
v2/odsInstances/{id}

DELETE

Deletes an ODS instance by id

-HTTP response as documented below
v2/odsInstances/{id}/applications

GET

Retrieves list of applications assigned to a specific ODS instance. 

-[
  {
      "id": 0,
      "applicationName": "string",
      "vendorId": 0,
      "claimSetName": "string",
      "profileIds": [],
      "educationOrganizationIds": [],
      "odsInstanceId": 0
   }
]

OdsInstanceContexts

 Click to view /odsInstanceContexts endpoints
EndpointHTTP VerbDescriptionRequest SchemaResponse Schema (Success)
v2/odsInstanceContexts
GET

Retrieves all ODS Instance contexts

-
[
{
  "id": 0,
"odsInstanceId": 0,
  "contextKey": "string",
  "contextValue": "string"
  }
]
v2/odsInstanceContexts

POST

Creates a new ODS instance context

All the fields are required.

ex: contextKey = "SchoolYear"

contextValue = "2023"

{    
"odsInstanceId": 0
"contextKey": "string",
"contextValue": "string"
}
HTTP response as documented below
v2/odsInstanceContexts/{id}

GET

Retrieves a specific ODS instance  context by id

-
{
  "id": 0,
"odsInstanceId": 0,
  "contextKey": "string",
  "contextValue": "string"
}
v2/odsInstanceContexts/{id}

PUT

Updates a specific ODS instance context by id.


{
"odsInstanceId": 0
"contextKey": "string",
"contextValue": "string"
}
HTTP response as documented below
v2/odsInstanceContexts/{id}

DELETE

Deletes an ODS instance context by id

-HTTP response as documented below

OdsInstanceDerivatives

 Click to view /odsInstanceDerivatives endpoints
EndpointHTTP VerbDescriptionRequest SchemaResponse Schema (Success)
v2/odsInstanceDerivatives
GET

Retrieves all ODS Instance derivatives

-
[
{
  "id": 0,
"odsInstanceId": 0,
  "derivativeType": "string"
}
]
v2/odsInstanceDerivatives

POST

Creates a new ODS instance derivative

All the fields are required.

Note: Will validate the connection string to be proper format.

Derivative types would be "ReadReplica" or "Snapshot"

{    
"odsInstanceId": 0
"derivativeType": "string",
"connectionString": "string"
}
HTTP response as documented below
v2/odsInstanceDerivatives

/{id}

GET

Retrieves a specific ODS instance derivative by id

-
{
  "id": 0,
"odsInstanceId": 0,
  "derivativeType": "string"
}
v2/odsInstanceDerivatives/{id}

PUT

Updates a specific ODS instance derivative by id.

Note: Will validate the connection string to be proper format.

On update the connection string is optional.

If user is not intending to update the connection string value as part of update, then empty value will be passed. So that the existing connection string will be retained as plain text or encrypted value.

Derivative types would be "ReadReplica" or "Snapshot"

{   
"odsInstanceId": 0
"derivativeType": "string",
"connectionString": "string"
}
HTTP response as documented below
v2/odsInstanceDerivatives/{id}

DELETE

Deletes an ODS instance derivative by id

-HTTP response as documented below

Profiles

 Click to view /profiles endpoints
EndpointHTTP VerbDescriptionRequest SchemaResponse Schema (Success)
v2/profiles

GET

Retrieves all profiles

-
[
  {
  "id": 0,
  "name":string
  }
]
v2/profiles

POST

Creates a new profile

{
"name": "string",
"definition": "string"
}
HTTP response as documented below
v2/profiles/{id}

GET

Retrieves a specific profile by id 

-
{
  "id": 0,
"name":string,
"definition":string
}
v2/profiles/{id}

PUT

Updates a specific profile by id

{
"name": "string",
"definition": "string"
}
HTTP response as documented below
v2/profiles/{id}

DELETE

Deletes a profile by id 

-
HTTP response as documented below

ResourceClaims

 Click to view /resourceClaims endpoints
EndpointHTTP VerbDescriptionRequest SchemaResponse Schema (Success)
v2/resourceClaims

GET

Retrieves all resourceclaims

-
[
{
  "id": 0
  "name": "string",
  "parentId": null,
  "parentName": "",
  "children": [
    {
  "id": 0
"name": "string",
"parentId": 0,
"parentName": "",
"children": []
}
  ]
}
]
v2/resourceClaims/{id}

GET

Retrieves a specific resource claim by id 

-
 {
  "id": 0
  "name": "string",
"parentId": null,
  "parentName": "",
  "children": [
{
    "id": 0
"name": "string",
"parentId": 0,
"parentName": "",
"children": []
}
  ]
}

Vendors

 Click to view /vendors endpoints
EndpointHTTP VerbDescriptionRequest SchemaResponse Schema (Success)
v2/vendors

GET

Retrieves all vendors

-
[
  {
  "id": 0,
    "company": "string",
    "namespacePrefixes": "string",
    "contactName": "string",
    "contactEmailAddress": "string"
  }
]
v2/vendors

POST

Creates a new vendor

{
"company": "string",
"namespacePrefixes": "string",
  "contactName": "string",
  "contactEmailAddress": "string"
}
HTTP response as documented below
v2/vendors/{id}

GET

Retrieves a specific vendor by id 

-
{
"id": 0,
  "company": "string",
  "namespacePrefixes": "string",
  "contactName": "string",
  "contactEmailAddress": "string"
}
v2/vendors/{id}

PUT

Updates a specific vendor by id

{
  "company": "string",
  "namespacePrefixes": "string",
  "contactName": "string",
  "contactEmailAddress": "string"
}
HTTP response as documented below
v2/vendors/{id}

DELETE

Deletes a vendor by id 

-
HTTP response as documented below
v2/vendors/{id}/applications

GET

Retrieves all applications associated with vendor of id -
[
 {
"id": 0,
  "applicationName": "string",
"vendorId": 0,
  "claimSetName": "string",
"profileIds": [],
  "educationOrganizationIds": [],
"odsInstanceId": 0
}
]

Common Responses

Response Code

DescriptionValid for VerbsNotes
200 SUCCESS
Request was successfulALL
201 CREATED
Resource was created successfully

POST

Response will also include a location  header which directs to the new resource
400 BAD REQUEST
Invalid request payload - See errors for detailsPOST, PUT
401 UNAUTHORIZED
Missing or invalid authentication tokenALL
403 FORBIDDEN
Authentication token is valid but resource is outside of authenticated scopeALL
404 NOT FOUND
Resource with given id  not foundALL
500 INTERNAL SERVER ERROR
Unexpected error on the system - See error for detailsALL
  • No labels