openapi: 3.0.2
info:
version: v3.3
title: "SIF IN derived API"
description: Systems Interoperability Framework⢠SIF Infrastructure Specification 3.3
host: "apihost.example.com"
basePath: "v3"
# /////////////////////////////////////////////////////////////
x-tagGroups:
- name: "SIF Infrastructure Services"
tags:
- "SIFInfrastructureServicesOverview"
- "environment"
- "provisionRequest"
- "queue"
- "subscription"
- "job"
- "state"
- name: "Utility Services"
tags:
- "UtilityServicesOverview"
- "alert"
- "codeSet"
- "namespace"
- "provider"
- "xquery"
- "zone"
- name: "Privacy Services"
tags:
- "PrivacyServicesOverview"
- "pod"
# /////////////////////////////////////////////////////////////
tags:
- name: "SIFInfrastructureServicesOverview"
x-displayName: "SIF Infrastructure Services Overview"
description: >-
externalDocs:
description: "SIF Infrastructure Services Domain in SIF NZ Data Model"
url: "https://sifnzmodel.azurewebsites.net/SIFNZ-v3.3index.html"
- name: "environment"
description: >-
The Consumer Environment Service is the gateway to all other services. It scopes the Consumer's possible interactions with the infrastructure and any Provider Services accessible from it. The Environment Service provides the set of (possibly customized) information the Application needs to interoperate successfully.
- name: "provisionRequest"
description: >-
If an Environment supports self-provisioning Consumers than either this section must initially contain all the rights the Consumer has to all Services in all Zones, or the provisionRequests Infrastructure Service must be present in the Consumer's Environment to allow additional rights to be obtained.
- name: "queue"
description: >-
The Queues Service supports creation, deletion and querying of Queue (Instance) / Queue Messages Service pairs.
- name: "subscription"
description: >-
A Consumer uses the Subscriptions Infrastructure Service to subscribe to Events published by one or more Service Providers.
- name: "job"
description: >-
All functional services must use this object design to track state. While Events may be published back to the objects creator, they must not be published to the Consumer when the event was generated based on its request (since results were included in the response). Each functional service should define the expectations of how management of the job is managed for both the Consumer and Provider. For instance, certain optional fields may need to be included in-order-to successfully cause a job to be created.
- name: "state"
description: >-
For states updatable by the Consumer, it creates a new state much like it would a single object. The actual result (state or error) is included in the response. Each functional service should define the expectations for which Adaptor is responsible for updating the phase status. NOTE The "states" collection represented here is reserved for future capabilities.
- name: "UtilityServicesOverview"
x-displayName: "Utility Services Overview"
description: >-
externalDocs:
description: "Utility Services Domain in SIF NZ Data Model"
url: "https://sifnzmodel.azurewebsites.net/SIFNZ-v3.3index.html"
- name: "alert"
description: >-
Alerts form a system wide log that can be protected, as it may contain sensitive data. Ideally an Alert should contain as much identifying information about the problem being reported as possible.
- name: "codeSet"
description: >-
The Code Set Registry Service provides a way for all legal codes to be defined outside of the SIF Specification while allowing changes (additions and replacements) of external code set values to be easily verified by the recipient so as not to break existing Consumer / Provider interoperability.
- name: "namespace"
description: >-
The Namespaces Registry contains the set of XML namespace URIs and their corresponding schema location URLs that are currently valid within the Environment.
- name: "provider"
description: >-
All potentially accessible Services have an entry in the Providers Registry (including the Providers Registry Utility Service itself), although full or even partial Consumer access to that Service is determined by the access rights currently granted in the Consumer's Environment object, and is not guaranteed.
- name: "xquery"
description: >-
This collection defines the entire set of named queries that Consumers may legally issue for execution by Service Providers. A Consumer specifies the ID of a Named XQuery in a Query Request to a specific Service Provider, along with a set of values for any associated script parameters.
- name: "zone"
description: >-
Zone identifiers are chosen by the administrator and can follow any convention that best meets the needs of the deploying organization. The Zone in which the Service is to be found always qualifies every Consumer request for any Provider Service. Each Service Consumer is assigned a "default" Zone at Registration time, which is used whenever a specific Zone is not explicitly included in one of its Provider Service Requests.
- name: "PrivacyServicesOverview"
x-displayName: "Privacy Services Overview"
description: >-
externalDocs:
description: "Privacy Services Domain in SIF NZ Data Model"
url: "https://sifnzmodel.azurewebsites.net/SIFNZ-v3.3index.html"
- name: "pod"
description: >-
This object contains information about privacy obligations.
# /////////////////////////////////////////////////////////////
paths:
# /////////////////////////////////////////////////////////////
/environments/{id}:
post:
tags:
- "environment"
summary: Default operation to create a single environment
operationId: createenvironment
requestBody:
description: CRUD operation on environment
content:
application/json:
schema:
type: object
properties:
environment:
$ref: 'jsonSchema.yaml#/properties/environment'
example:
"environment": {
"fingerprint": "f5688c40-97d2-11e6-ae22-56b6b6499611",
"sessionToken": "a579ff69-0148-1000-007f-14109fdcaf83",
"solutionId": "production",
"defaultZone": {
"description": "The zone for the local school district.",
"properties": {
"property": ["john.smith@district.k12.wa.us",
"(360)555-1234"]
}
},
"authenticationMethod": "SIF_HMACSHA256",
"instanceId": 1,
"userToken": "MmZkMjVmODItYjAxMC00NTFiLWFjZTEtNmRjNTI4MWYwZjdlOmhpdHNAbnNpcA==",
"consumerName": "Example Consumer",
"applicationInfo": {
"applicationKey": "Example",
"supportedInfrastructureVersion": 3.1,
"dataModelNamespace": "http://www.sifassociation.org/datamodel/na/3.3",
"transport": "REST",
"applicationProduct": {
"vendorName": "SIF Association",
"productName": "Fingertips Classroom App",
"productVersion": "1.0.4",
"iconURI": "https://www.sifassociation.org/PublishingImages/SIF%20Assoc%20symbol_LARGE.png "
}
},
"infrastructureServices": {
"infrastructureService": ["https://testharness.sifassociation.org/SIFConnector/AdaptorServer/0f 21cf0b-014c-1000-007f-00505686707f/environment/0f21cf0b-014c-1000-007f00505686707f",
"https://testharness.sifassociation.org/SIFConnector/AdaptorSer ver/0f21cf0b-014c-1000-007f-00505686707f/requests"]
},
"provisionedZones": {
"provisionedZone": {
"services": {
"service": [{
"rights": {
"right": "APPROVED"
}
},
{
"rights": {
"right": "APPROVED"
}
}]
}
}
}
}
application/xml:
schema:
type: object
properties:
environment:
$ref: 'jsonSchema.yaml#/properties/environment'
example: >-
f5688c40-97d2-11e6-ae22-56b6b6499611
a579ff69-0148-1000-007f-14109fdcaf83
production
The zone for the local school district.
john.smith@district.k12.wa.us
(360)555-1234
SIF_HMACSHA256
1
MmZkMjVmODItYjAxMC00NTFiLWFjZTEtNmRjNTI4MWYwZjdlOmhpdHNAbnNpcA==
Example Consumer
Example
3.1
http://www.sifassociation.org/datamodel/na/3.3
REST
SIF Association
Fingertips Classroom App
1.0.4
https://www.sifassociation.org/PublishingImages/SIF%20Assoc%20symbol_LARGE.png
https://testharness.sifassociation.org/SIFConnector/AdaptorServer/0f 21cf0b-014c-1000-007f-00505686707f/environment/0f21cf0b-014c-1000-007f00505686707f
https://testharness.sifassociation.org/SIFConnector/AdaptorSer ver/0f21cf0b-014c-1000-007f-00505686707f/requests
APPROVED
APPROVED
put:
tags:
- "environment"
summary: Default operation to update a single environment
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
operationId: updateenvironment
requestBody:
description: CRUD operation on environment
content:
application/json:
schema:
type: object
properties:
environment:
$ref: 'jsonSchema.yaml#/properties/environment'
example:
"environment": {
"fingerprint": "f5688c40-97d2-11e6-ae22-56b6b6499611",
"sessionToken": "a579ff69-0148-1000-007f-14109fdcaf83",
"solutionId": "production",
"defaultZone": {
"description": "The zone for the local school district.",
"properties": {
"property": ["john.smith@district.k12.wa.us",
"(360)555-1234"]
}
},
"authenticationMethod": "SIF_HMACSHA256",
"instanceId": 1,
"userToken": "MmZkMjVmODItYjAxMC00NTFiLWFjZTEtNmRjNTI4MWYwZjdlOmhpdHNAbnNpcA==",
"consumerName": "Example Consumer",
"applicationInfo": {
"applicationKey": "Example",
"supportedInfrastructureVersion": 3.1,
"dataModelNamespace": "http://www.sifassociation.org/datamodel/na/3.3",
"transport": "REST",
"applicationProduct": {
"vendorName": "SIF Association",
"productName": "Fingertips Classroom App",
"productVersion": "1.0.4",
"iconURI": "https://www.sifassociation.org/PublishingImages/SIF%20Assoc%20symbol_LARGE.png "
}
},
"infrastructureServices": {
"infrastructureService": ["https://testharness.sifassociation.org/SIFConnector/AdaptorServer/0f 21cf0b-014c-1000-007f-00505686707f/environment/0f21cf0b-014c-1000-007f00505686707f",
"https://testharness.sifassociation.org/SIFConnector/AdaptorSer ver/0f21cf0b-014c-1000-007f-00505686707f/requests"]
},
"provisionedZones": {
"provisionedZone": {
"services": {
"service": [{
"rights": {
"right": "APPROVED"
}
},
{
"rights": {
"right": "APPROVED"
}
}]
}
}
}
}
application/xml:
schema:
type: object
properties:
environment:
$ref: 'jsonSchema.yaml#/properties/environment'
example: >-
f5688c40-97d2-11e6-ae22-56b6b6499611
a579ff69-0148-1000-007f-14109fdcaf83
production
The zone for the local school district.
john.smith@district.k12.wa.us
(360)555-1234
SIF_HMACSHA256
1
MmZkMjVmODItYjAxMC00NTFiLWFjZTEtNmRjNTI4MWYwZjdlOmhpdHNAbnNpcA==
Example Consumer
Example
3.1
http://www.sifassociation.org/datamodel/na/3.3
REST
SIF Association
Fingertips Classroom App
1.0.4
https://www.sifassociation.org/PublishingImages/SIF%20Assoc%20symbol_LARGE.png
https://testharness.sifassociation.org/SIFConnector/AdaptorServer/0f 21cf0b-014c-1000-007f-00505686707f/environment/0f21cf0b-014c-1000-007f00505686707f
https://testharness.sifassociation.org/SIFConnector/AdaptorSer ver/0f21cf0b-014c-1000-007f-00505686707f/requests
APPROVED
APPROVED
get:
tags:
- "environment"
summary: Default operation to get a single environment
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: object
properties:
environment:
$ref: 'jsonSchema.yaml#/properties/environment'
example:
"environment": {
"fingerprint": "f5688c40-97d2-11e6-ae22-56b6b6499611",
"sessionToken": "a579ff69-0148-1000-007f-14109fdcaf83",
"solutionId": "production",
"defaultZone": {
"description": "The zone for the local school district.",
"properties": {
"property": ["john.smith@district.k12.wa.us",
"(360)555-1234"]
}
},
"authenticationMethod": "SIF_HMACSHA256",
"instanceId": 1,
"userToken": "MmZkMjVmODItYjAxMC00NTFiLWFjZTEtNmRjNTI4MWYwZjdlOmhpdHNAbnNpcA==",
"consumerName": "Example Consumer",
"applicationInfo": {
"applicationKey": "Example",
"supportedInfrastructureVersion": 3.1,
"dataModelNamespace": "http://www.sifassociation.org/datamodel/na/3.3",
"transport": "REST",
"applicationProduct": {
"vendorName": "SIF Association",
"productName": "Fingertips Classroom App",
"productVersion": "1.0.4",
"iconURI": "https://www.sifassociation.org/PublishingImages/SIF%20Assoc%20symbol_LARGE.png "
}
},
"infrastructureServices": {
"infrastructureService": ["https://testharness.sifassociation.org/SIFConnector/AdaptorServer/0f 21cf0b-014c-1000-007f-00505686707f/environment/0f21cf0b-014c-1000-007f00505686707f",
"https://testharness.sifassociation.org/SIFConnector/AdaptorSer ver/0f21cf0b-014c-1000-007f-00505686707f/requests"]
},
"provisionedZones": {
"provisionedZone": {
"services": {
"service": [{
"rights": {
"right": "APPROVED"
}
},
{
"rights": {
"right": "APPROVED"
}
}]
}
}
}
}
application/xml:
schema:
type: object
properties:
environment:
$ref: 'jsonSchema.yaml#/properties/environment'
example: >-
f5688c40-97d2-11e6-ae22-56b6b6499611
a579ff69-0148-1000-007f-14109fdcaf83
production
The zone for the local school district.
john.smith@district.k12.wa.us
(360)555-1234
SIF_HMACSHA256
1
MmZkMjVmODItYjAxMC00NTFiLWFjZTEtNmRjNTI4MWYwZjdlOmhpdHNAbnNpcA==
Example Consumer
Example
3.1
http://www.sifassociation.org/datamodel/na/3.3
REST
SIF Association
Fingertips Classroom App
1.0.4
https://www.sifassociation.org/PublishingImages/SIF%20Assoc%20symbol_LARGE.png
https://testharness.sifassociation.org/SIFConnector/AdaptorServer/0f 21cf0b-014c-1000-007f-00505686707f/environment/0f21cf0b-014c-1000-007f00505686707f
https://testharness.sifassociation.org/SIFConnector/AdaptorSer ver/0f21cf0b-014c-1000-007f-00505686707f/requests
APPROVED
APPROVED
delete:
tags:
- "environment"
summary: Default operation to delete a single environment
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
responses:
'200':
description: successful operation
# /////////////////////////////////////////////////////////////
/provisionRequests/{id}:
post:
tags:
- "provisionRequest"
summary: Default operation to create a single provisionRequest
operationId: createprovisionRequest
requestBody:
description: CRUD operation on provisionRequest
content:
application/json:
schema:
type: object
properties:
provisionRequest:
$ref: 'jsonSchema.yaml#/properties/provisionRequest'
example:
"provisionRequest": {
"provisionedZones": {
"provisionedZone": {
"services": {
"service": {
"rights": {
"right": ["REQUESTED",
"REQUESTED"]
}
}
}
}
}
}
application/xml:
schema:
type: object
properties:
provisionRequest:
$ref: 'jsonSchema.yaml#/properties/provisionRequest'
example: >-
REQUESTED
REQUESTED
put:
tags:
- "provisionRequest"
summary: Default operation to update a single provisionRequest
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
operationId: updateprovisionRequest
requestBody:
description: CRUD operation on provisionRequest
content:
application/json:
schema:
type: object
properties:
provisionRequest:
$ref: 'jsonSchema.yaml#/properties/provisionRequest'
example:
"provisionRequest": {
"provisionedZones": {
"provisionedZone": {
"services": {
"service": {
"rights": {
"right": ["REQUESTED",
"REQUESTED"]
}
}
}
}
}
}
application/xml:
schema:
type: object
properties:
provisionRequest:
$ref: 'jsonSchema.yaml#/properties/provisionRequest'
example: >-
REQUESTED
REQUESTED
get:
tags:
- "provisionRequest"
summary: Default operation to get a single provisionRequest
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: object
properties:
provisionRequest:
$ref: 'jsonSchema.yaml#/properties/provisionRequest'
example:
"provisionRequest": {
"provisionedZones": {
"provisionedZone": {
"services": {
"service": {
"rights": {
"right": ["REQUESTED",
"REQUESTED"]
}
}
}
}
}
}
application/xml:
schema:
type: object
properties:
provisionRequest:
$ref: 'jsonSchema.yaml#/properties/provisionRequest'
example: >-
REQUESTED
REQUESTED
delete:
tags:
- "provisionRequest"
summary: Default operation to delete a single provisionRequest
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
responses:
'200':
description: successful operation
# /////////////////////////////////////////////////////////////
/queues/{id}:
post:
tags:
- "queue"
summary: Default operation to create a single queue
operationId: createqueue
requestBody:
description: CRUD operation on queue
content:
application/json:
schema:
type: object
properties:
queue:
$ref: 'jsonSchema.yaml#/properties/queue'
example:
"queue": {
"polling": "IMMEDIATE",
"name": "StudentConsumer",
"maxConcurrentConnections": 3
}
application/xml:
schema:
type: object
properties:
queue:
$ref: 'jsonSchema.yaml#/properties/queue'
example: >-
IMMEDIATE
StudentConsumer
3
put:
tags:
- "queue"
summary: Default operation to update a single queue
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
operationId: updatequeue
requestBody:
description: CRUD operation on queue
content:
application/json:
schema:
type: object
properties:
queue:
$ref: 'jsonSchema.yaml#/properties/queue'
example:
"queue": {
"polling": "IMMEDIATE",
"name": "StudentConsumer",
"maxConcurrentConnections": 3
}
application/xml:
schema:
type: object
properties:
queue:
$ref: 'jsonSchema.yaml#/properties/queue'
example: >-
IMMEDIATE
StudentConsumer
3
get:
tags:
- "queue"
summary: Default operation to get a single queue
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: object
properties:
queue:
$ref: 'jsonSchema.yaml#/properties/queue'
example:
"queue": {
"polling": "IMMEDIATE",
"name": "StudentConsumer",
"maxConcurrentConnections": 3
}
application/xml:
schema:
type: object
properties:
queue:
$ref: 'jsonSchema.yaml#/properties/queue'
example: >-
IMMEDIATE
StudentConsumer
3
delete:
tags:
- "queue"
summary: Default operation to delete a single queue
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
responses:
'200':
description: successful operation
# /////////////////////////////////////////////////////////////
/subscriptions/{id}:
post:
tags:
- "subscription"
summary: Default operation to create a single subscription
operationId: createsubscription
requestBody:
description: CRUD operation on subscription
content:
application/json:
schema:
type: object
properties:
subscription:
$ref: 'jsonSchema.yaml#/properties/subscription'
example:
"subscription": {
"zoneId": "auSchoolTestingZone",
"contextId": "DEFAULT",
"serviceType": "OBJECT",
"serviceName": "StudentPersonals",
"queueId": "e23fce44-7871-48eb-8952-e27733f59b30"
}
application/xml:
schema:
type: object
properties:
subscription:
$ref: 'jsonSchema.yaml#/properties/subscription'
example: >-
auSchoolTestingZone
DEFAULT
OBJECT
StudentPersonals
e23fce44-7871-48eb-8952-e27733f59b30
put:
tags:
- "subscription"
summary: Default operation to update a single subscription
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
operationId: updatesubscription
requestBody:
description: CRUD operation on subscription
content:
application/json:
schema:
type: object
properties:
subscription:
$ref: 'jsonSchema.yaml#/properties/subscription'
example:
"subscription": {
"zoneId": "auSchoolTestingZone",
"contextId": "DEFAULT",
"serviceType": "OBJECT",
"serviceName": "StudentPersonals",
"queueId": "e23fce44-7871-48eb-8952-e27733f59b30"
}
application/xml:
schema:
type: object
properties:
subscription:
$ref: 'jsonSchema.yaml#/properties/subscription'
example: >-
auSchoolTestingZone
DEFAULT
OBJECT
StudentPersonals
e23fce44-7871-48eb-8952-e27733f59b30
get:
tags:
- "subscription"
summary: Default operation to get a single subscription
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: object
properties:
subscription:
$ref: 'jsonSchema.yaml#/properties/subscription'
example:
"subscription": {
"zoneId": "auSchoolTestingZone",
"contextId": "DEFAULT",
"serviceType": "OBJECT",
"serviceName": "StudentPersonals",
"queueId": "e23fce44-7871-48eb-8952-e27733f59b30"
}
application/xml:
schema:
type: object
properties:
subscription:
$ref: 'jsonSchema.yaml#/properties/subscription'
example: >-
auSchoolTestingZone
DEFAULT
OBJECT
StudentPersonals
e23fce44-7871-48eb-8952-e27733f59b30
delete:
tags:
- "subscription"
summary: Default operation to delete a single subscription
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
responses:
'200':
description: successful operation
# /////////////////////////////////////////////////////////////
/jobs/{id}:
post:
tags:
- "job"
summary: Default operation to create a single job
operationId: createjob
requestBody:
description: CRUD operation on job
content:
application/json:
schema:
type: object
properties:
job:
$ref: 'jsonSchema.yaml#/properties/job'
example:
"job": {
"name": "rolloverStudent",
"description": "Rollover Student from year X to year Y",
"state": "NOTSTARTED",
"stateDescription": "Not Started",
"created": "2018-09-04T09:06:56.362+08:00",
"timeout": "P30D",
"phases": {
"phase": [{
"name": "oldYearEnrolment",
"states": {
"state": {
"type": "NOTSTARTED"
}
},
"required": true,
"rights": {
"right": "APPROVED"
},
"statesRights": {
"right": ["APPROVED",
"APPROVED"]
}
},
{
"name": "newYearEnrolment",
"states": {
"state": {
"type": "NOTSTARTED"
}
},
"required": true,
"rights": {
"right": "APPROVED"
},
"statesRights": {
"right": ["APPROVED",
"APPROVED"]
}
}]
},
"initialization": {
"payload": {
"property": ["future",
"user1",
"vendora",
"3pi",
2018]
}
}
}
application/xml:
schema:
type: object
properties:
job:
$ref: 'jsonSchema.yaml#/properties/job'
example: >-
rolloverStudent
Rollover Student from year X to year Y
NOTSTARTED
Not Started
2018-09-04T09:06:56.362+08:00
P30D
oldYearEnrolment
NOTSTARTED
true
APPROVED
APPROVED
APPROVED
newYearEnrolment
NOTSTARTED
true
APPROVED
APPROVED
APPROVED
future
user1
vendora
3pi
2018
put:
tags:
- "job"
summary: Default operation to update a single job
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
operationId: updatejob
requestBody:
description: CRUD operation on job
content:
application/json:
schema:
type: object
properties:
job:
$ref: 'jsonSchema.yaml#/properties/job'
example:
"job": {
"name": "rolloverStudent",
"description": "Rollover Student from year X to year Y",
"state": "NOTSTARTED",
"stateDescription": "Not Started",
"created": "2018-09-04T09:06:56.362+08:00",
"timeout": "P30D",
"phases": {
"phase": [{
"name": "oldYearEnrolment",
"states": {
"state": {
"type": "NOTSTARTED"
}
},
"required": true,
"rights": {
"right": "APPROVED"
},
"statesRights": {
"right": ["APPROVED",
"APPROVED"]
}
},
{
"name": "newYearEnrolment",
"states": {
"state": {
"type": "NOTSTARTED"
}
},
"required": true,
"rights": {
"right": "APPROVED"
},
"statesRights": {
"right": ["APPROVED",
"APPROVED"]
}
}]
},
"initialization": {
"payload": {
"property": ["future",
"user1",
"vendora",
"3pi",
2018]
}
}
}
application/xml:
schema:
type: object
properties:
job:
$ref: 'jsonSchema.yaml#/properties/job'
example: >-
rolloverStudent
Rollover Student from year X to year Y
NOTSTARTED
Not Started
2018-09-04T09:06:56.362+08:00
P30D
oldYearEnrolment
NOTSTARTED
true
APPROVED
APPROVED
APPROVED
newYearEnrolment
NOTSTARTED
true
APPROVED
APPROVED
APPROVED
future
user1
vendora
3pi
2018
get:
tags:
- "job"
summary: Default operation to get a single job
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: object
properties:
job:
$ref: 'jsonSchema.yaml#/properties/job'
example:
"job": {
"name": "rolloverStudent",
"description": "Rollover Student from year X to year Y",
"state": "NOTSTARTED",
"stateDescription": "Not Started",
"created": "2018-09-04T09:06:56.362+08:00",
"timeout": "P30D",
"phases": {
"phase": [{
"name": "oldYearEnrolment",
"states": {
"state": {
"type": "NOTSTARTED"
}
},
"required": true,
"rights": {
"right": "APPROVED"
},
"statesRights": {
"right": ["APPROVED",
"APPROVED"]
}
},
{
"name": "newYearEnrolment",
"states": {
"state": {
"type": "NOTSTARTED"
}
},
"required": true,
"rights": {
"right": "APPROVED"
},
"statesRights": {
"right": ["APPROVED",
"APPROVED"]
}
}]
},
"initialization": {
"payload": {
"property": ["future",
"user1",
"vendora",
"3pi",
2018]
}
}
}
application/xml:
schema:
type: object
properties:
job:
$ref: 'jsonSchema.yaml#/properties/job'
example: >-
rolloverStudent
Rollover Student from year X to year Y
NOTSTARTED
Not Started
2018-09-04T09:06:56.362+08:00
P30D
oldYearEnrolment
NOTSTARTED
true
APPROVED
APPROVED
APPROVED
newYearEnrolment
NOTSTARTED
true
APPROVED
APPROVED
APPROVED
future
user1
vendora
3pi
2018
delete:
tags:
- "job"
summary: Default operation to delete a single job
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
responses:
'200':
description: successful operation
# /////////////////////////////////////////////////////////////
/states/{id}:
post:
tags:
- "state"
summary: Default operation to create a single state
operationId: createstate
requestBody:
description: CRUD operation on state
content:
application/json:
schema:
type: object
properties:
state:
$ref: 'jsonSchema.yaml#/properties/state'
application/xml:
schema:
type: object
properties:
state:
$ref: 'jsonSchema.yaml#/properties/state'
put:
tags:
- "state"
summary: Default operation to update a single state
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
operationId: updatestate
requestBody:
description: CRUD operation on state
content:
application/json:
schema:
type: object
properties:
state:
$ref: 'jsonSchema.yaml#/properties/state'
application/xml:
schema:
type: object
properties:
state:
$ref: 'jsonSchema.yaml#/properties/state'
get:
tags:
- "state"
summary: Default operation to get a single state
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: object
properties:
state:
$ref: 'jsonSchema.yaml#/properties/state'
application/xml:
schema:
type: object
properties:
state:
$ref: 'jsonSchema.yaml#/properties/state'
delete:
tags:
- "state"
summary: Default operation to delete a single state
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
responses:
'200':
description: successful operation
# /////////////////////////////////////////////////////////////
/alerts/{id}:
post:
tags:
- "alert"
summary: Default operation to create a single alert
operationId: createalert
requestBody:
description: CRUD operation on alert
content:
application/json:
schema:
type: object
properties:
alert:
$ref: 'jsonSchema.yaml#/properties/alert'
application/xml:
schema:
type: object
properties:
alert:
$ref: 'jsonSchema.yaml#/properties/alert'
put:
tags:
- "alert"
summary: Default operation to update a single alert
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
operationId: updatealert
requestBody:
description: CRUD operation on alert
content:
application/json:
schema:
type: object
properties:
alert:
$ref: 'jsonSchema.yaml#/properties/alert'
application/xml:
schema:
type: object
properties:
alert:
$ref: 'jsonSchema.yaml#/properties/alert'
get:
tags:
- "alert"
summary: Default operation to get a single alert
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: object
properties:
alert:
$ref: 'jsonSchema.yaml#/properties/alert'
application/xml:
schema:
type: object
properties:
alert:
$ref: 'jsonSchema.yaml#/properties/alert'
delete:
tags:
- "alert"
summary: Default operation to delete a single alert
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
responses:
'200':
description: successful operation
# /////////////////////////////////////////////////////////////
/codeSets/{id}:
post:
tags:
- "codeSet"
summary: Default operation to create a single codeSet
operationId: createcodeSet
requestBody:
description: CRUD operation on codeSet
content:
application/json:
schema:
type: object
properties:
codeSet:
$ref: 'jsonSchema.yaml#/properties/codeSet'
application/xml:
schema:
type: object
properties:
codeSet:
$ref: 'jsonSchema.yaml#/properties/codeSet'
put:
tags:
- "codeSet"
summary: Default operation to update a single codeSet
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
operationId: updatecodeSet
requestBody:
description: CRUD operation on codeSet
content:
application/json:
schema:
type: object
properties:
codeSet:
$ref: 'jsonSchema.yaml#/properties/codeSet'
application/xml:
schema:
type: object
properties:
codeSet:
$ref: 'jsonSchema.yaml#/properties/codeSet'
get:
tags:
- "codeSet"
summary: Default operation to get a single codeSet
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: object
properties:
codeSet:
$ref: 'jsonSchema.yaml#/properties/codeSet'
application/xml:
schema:
type: object
properties:
codeSet:
$ref: 'jsonSchema.yaml#/properties/codeSet'
delete:
tags:
- "codeSet"
summary: Default operation to delete a single codeSet
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
responses:
'200':
description: successful operation
# /////////////////////////////////////////////////////////////
/namespaces/{id}:
post:
tags:
- "namespace"
summary: Default operation to create a single namespace
operationId: createnamespace
requestBody:
description: CRUD operation on namespace
content:
application/json:
schema:
type: object
properties:
namespace:
$ref: 'jsonSchema.yaml#/properties/namespace'
application/xml:
schema:
type: object
properties:
namespace:
$ref: 'jsonSchema.yaml#/properties/namespace'
put:
tags:
- "namespace"
summary: Default operation to update a single namespace
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
operationId: updatenamespace
requestBody:
description: CRUD operation on namespace
content:
application/json:
schema:
type: object
properties:
namespace:
$ref: 'jsonSchema.yaml#/properties/namespace'
application/xml:
schema:
type: object
properties:
namespace:
$ref: 'jsonSchema.yaml#/properties/namespace'
get:
tags:
- "namespace"
summary: Default operation to get a single namespace
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: object
properties:
namespace:
$ref: 'jsonSchema.yaml#/properties/namespace'
application/xml:
schema:
type: object
properties:
namespace:
$ref: 'jsonSchema.yaml#/properties/namespace'
delete:
tags:
- "namespace"
summary: Default operation to delete a single namespace
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
responses:
'200':
description: successful operation
# /////////////////////////////////////////////////////////////
/providers/{id}:
post:
tags:
- "provider"
summary: Default operation to create a single provider
operationId: createprovider
requestBody:
description: CRUD operation on provider
content:
application/json:
schema:
type: object
properties:
provider:
$ref: 'jsonSchema.yaml#/properties/provider'
application/xml:
schema:
type: object
properties:
provider:
$ref: 'jsonSchema.yaml#/properties/provider'
put:
tags:
- "provider"
summary: Default operation to update a single provider
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
operationId: updateprovider
requestBody:
description: CRUD operation on provider
content:
application/json:
schema:
type: object
properties:
provider:
$ref: 'jsonSchema.yaml#/properties/provider'
application/xml:
schema:
type: object
properties:
provider:
$ref: 'jsonSchema.yaml#/properties/provider'
get:
tags:
- "provider"
summary: Default operation to get a single provider
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: object
properties:
provider:
$ref: 'jsonSchema.yaml#/properties/provider'
application/xml:
schema:
type: object
properties:
provider:
$ref: 'jsonSchema.yaml#/properties/provider'
delete:
tags:
- "provider"
summary: Default operation to delete a single provider
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
responses:
'200':
description: successful operation
# /////////////////////////////////////////////////////////////
/xquerys/{id}:
post:
tags:
- "xquery"
summary: Default operation to create a single xquery
operationId: createxquery
requestBody:
description: CRUD operation on xquery
content:
application/json:
schema:
type: object
properties:
xquery:
$ref: 'jsonSchema.yaml#/properties/xquery'
application/xml:
schema:
type: object
properties:
xquery:
$ref: 'jsonSchema.yaml#/properties/xquery'
put:
tags:
- "xquery"
summary: Default operation to update a single xquery
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
operationId: updatexquery
requestBody:
description: CRUD operation on xquery
content:
application/json:
schema:
type: object
properties:
xquery:
$ref: 'jsonSchema.yaml#/properties/xquery'
application/xml:
schema:
type: object
properties:
xquery:
$ref: 'jsonSchema.yaml#/properties/xquery'
get:
tags:
- "xquery"
summary: Default operation to get a single xquery
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: object
properties:
xquery:
$ref: 'jsonSchema.yaml#/properties/xquery'
application/xml:
schema:
type: object
properties:
xquery:
$ref: 'jsonSchema.yaml#/properties/xquery'
delete:
tags:
- "xquery"
summary: Default operation to delete a single xquery
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
responses:
'200':
description: successful operation
# /////////////////////////////////////////////////////////////
/zones/{id}:
post:
tags:
- "zone"
summary: Default operation to create a single zone
operationId: createzone
requestBody:
description: CRUD operation on zone
content:
application/json:
schema:
type: object
properties:
zone:
$ref: 'jsonSchema.yaml#/properties/zone'
application/xml:
schema:
type: object
properties:
zone:
$ref: 'jsonSchema.yaml#/properties/zone'
put:
tags:
- "zone"
summary: Default operation to update a single zone
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
operationId: updatezone
requestBody:
description: CRUD operation on zone
content:
application/json:
schema:
type: object
properties:
zone:
$ref: 'jsonSchema.yaml#/properties/zone'
application/xml:
schema:
type: object
properties:
zone:
$ref: 'jsonSchema.yaml#/properties/zone'
get:
tags:
- "zone"
summary: Default operation to get a single zone
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: object
properties:
zone:
$ref: 'jsonSchema.yaml#/properties/zone'
application/xml:
schema:
type: object
properties:
zone:
$ref: 'jsonSchema.yaml#/properties/zone'
delete:
tags:
- "zone"
summary: Default operation to delete a single zone
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
responses:
'200':
description: successful operation
# /////////////////////////////////////////////////////////////
/pods/{id}:
post:
tags:
- "pod"
summary: Default operation to create a single pod
operationId: createpod
requestBody:
description: CRUD operation on pod
content:
application/json:
schema:
type: object
properties:
pod:
$ref: 'jsonSchema.yaml#/properties/pod'
example:
"pod": {
"podStatus": "Live",
"podToken": 1,
"podVersion": "1.0.2",
"partyId": "Compass",
"privacyList": {
"privacy": [{
"default": "Y",
"dataModelNamespace": "http://www.sifinfo.org/infrastructure/2.x",
"dataModelVersionMin": 2.4,
"dataModelVersionMax": 2.8,
"privacyObligationsDocument": {
"contract": {
"contractURI": "http://www.vic.priv.contract.edu.au/contract.pdf",
"contractName": "Sample contract ABC",
"dateValidFrom": "2018-03-01",
"dateValidTo": "2018-06-01",
"contractVersion": 0.2,
"lawList": {
"law": [{
"lawName": "APP1",
"lawDescription": "XXXXX"
},
{
"lawName": "APP2",
"lawDescription": "yyyy"
}]
},
"studentDataIPRights": "Victorian Department of Education"
},
"legalRequirements": {
"clauseList": {
"clause": {
"clauseLabel": "Data Access",
"clauseReference": "US-I.3",
"clauseContent": "The agent shall access only data necessary to accomplish the business task for which it is contracted.",
"obligationList": {
"obligation": {
"obligationDescription": "Restrict access to data fields to match the state profile.",
"obligationURL": "https://thewave.sde.ok.gov/thewave/Portals/0/2%20x%20Wave%20Requirements_v1%2010.pdf",
"benchmarkList": {
"benchmark": {
"benchmarkName": "Oklahoma State Profile"
}
}
}
}
}
}
},
"technicalRequirements": {
"dataAccess": {
"clauseList": {
"clause": {
"clauseReference": "US-I.3"
}
},
"fieldList": {
"field": [{
"fieldName": "/SchoolInfo/@RefId",
"controlrights": "R"
},
{
"fieldName": "/SchoolInfo/LocalId",
"controlrights": "R"
},
{
"fieldName": "/SchoolInfo/ACARAId",
"controlrights": "RW"
},
{
"fieldName": "/StudentPersonal/@RefId",
"controlrights": "RW"
},
{
"fieldName": "/StudentPersonal/LocalId",
"controlrights": "RW"
},
{
"fieldName": "/StudentPersonal/FirstAUSchoolEnrollment",
"controlrights": "RW"
}]
}
},
"conditionList": {
"condition": [{
"typeOfCondition": "XQUERYTEMPLATE",
"conditionName": "RetrieveByGrade",
"conditionDescription": "Returns a StudentJoin of StudentPersonal and StudentSchoolEnrollment for the GradeLevel specified as a parameter."
},
{
"typeOfCondition": "contextId",
"conditionName": "CurrentEnrollment",
"conditionDescription": "Only works with student data whose records indicate they are currently enrolled according to the StudentSchoolEnrollment SIF object.",
"propertyList": {
"property": [{
"propertyName": "Enrolled After",
"propertyValue": "/StudentSchoolEnrollment/EntryDate>=2018-09-01"
},
{
"propertyName": "Enrolled Before",
"propertyValue": "/StudentSchoolEnrollment/EntryDate<=2019-09-01"
}]
}
}]
},
"dataSubject": {
"clauseList": {
"clause": {
"clauseReference": "US-Subject1",
"obligationList": {
"obligation": {
"obligationDescription": "FERPA requires records be delivered within 45 days of a request.",
"obligationURL": "https://www2.ed.gov/policy/gen/guid/fpco/brochures/parents.html",
"benchmarkList": {
"benchmark": {
"benchmarkName": "Family Educational Rights and Privacy Act (FERPA)"
}
}
}
}
}
},
"fieldList": {
"field": [{
"fieldName": "/StudentPersonal/@RefId"
},
{
"fieldName": "/StudentPersonal/LocalId"
},
{
"fieldName": "/StudentPersonal/FirstAUSchoolEnrollment"
}]
},
"respondInDays": 45,
"requirePortability": "Y"
},
"dataDeletion": {
"deleteData": "Y",
"dataRetention": 30,
"deleteBy": "2019-07-15",
"partyToDeleteData": {
"organisation": "Local LEA",
"deletecontactInfo": {
"name": {
"familyName": "EEe",
"givenName": "Agg",
"otherGivenNames": "hh"
},
"positionTitle": "Data Owner",
"emailList": {
"email": "DataSec@localLEA.edu.au"
},
"phoneNumberList": {
"phoneNumber": {
"number": "(03) 8888-9999"
}
}
}
}
},
"securityTechnologyList": {
"securityTechnology": {
"clauseList": {
"clause": {
"clauseReference": "US-V.1.c"
}
},
"technologyName": "TLS",
"versionMin": 1.2
}
}
},
"dataController": {
"dataControllerName": "Victorian Department of Education",
"privacyPolicyURL": "http://www.vic.priv.policy.edu.au/privacy.pdf",
"privacyContactList": {
"contact": {
"name": {
"familyName": "Smith",
"givenName": "Christime",
"otherGivenNames": "Margaret"
},
"positionTitle": "Admin",
"emailList": {
"email": "chris@whoville.vic.edu.au"
},
"phoneNumberList": {
"phoneNumber": {
"number": "(03) 9600-0102"
}
}
}
},
"issuesNotificationContactList": {
"contact": {
"name": {
"familyName": "BBBB",
"givenName": "AAA",
"otherGivenNames": "CCC"
},
"positionTitle": "Data Security",
"emailList": {
"email": "DataSec@whoville.edu.au"
},
"phoneNumberList": {
"phoneNumber": {
"number": "(03) 8888-9999"
}
}
}
}
},
"dataProcessor": {
"dataProcessorName": "CEOProcessor2",
"privacyPolicyURL": "www.ceo.priv.policy.edu.au",
"privacyContactList": {
"contact": {
"name": {
"familyName": "Woodall",
"givenName": "Charles",
"otherGivenNames": "William"
},
"positionTitle": "Admin",
"emailList": {
"email": "drseuss@whoville.k12.ceo.edu.au"
},
"phoneNumberList": {
"phoneNumber": {
"number": "(08) 8555-0102"
}
}
}
},
"notifyDataControllerOnAccessRequests": "Y",
"dataProcessorContactForAccessRequestsList": {
"contact": {
"name": {
"familyName": "XXX",
"givenName": "YYY",
"otherGivenNames": "ZZZ"
},
"positionTitle": "Privacy Officer",
"emailList": {
"email": "off@whoville.au"
},
"phoneNumberList": {
"phoneNumber": {
"number": "(03) 9999-9999"
}
}
}
},
"purposeList": {
"purpose": ["Admin System",
"Australian Schools List"]
},
"alternatePurposeList": {
"alternatePurpose": "Student Portal"
},
"deidentifiedPurposeList": {
"deidentifiedPurpose": "Research"
},
"dataUsageMarketingAllowed": "N",
"personalInformationUpdatedFromSource": 10,
"dataBreachNotification": "Y",
"dataBreachContactList": {
"contact": {
"name": {
"familyName": "XXX",
"givenName": "YYY",
"otherGivenNames": "ZZZ"
},
"positionTitle": "Privacy Officer",
"emailList": {
"email": "off@whoville.au"
},
"phoneNumberList": {
"phoneNumber": {
"number": "(03) 9999-9999"
}
}
}
},
"employeesMustComplyWithAgreement": "Y",
"employeeConfidentialityAgreement": "Y",
"employeeTrainingList": {
"employeeTraining": {
"trainingName": {},
"trainingURL": {}
}
},
"passwordEmployeeAccessStandard": {
"standardName": {},
"standardURL": {}
},
"securityTestRequiredList": {
"securityTestRequired": [{
"testType": "Pen Test",
"testFrequency": "Annual",
"remediationRequiredIn": "7 days",
"shareResults": "Y"
},
{
"testType": "Vulnerability Test",
"testFrequency": "Monthly",
"remediationRequiredIn": "24hours",
"shareResults": "Y"
}]
},
"countryImpactedList": {
"countryImpacted": [{
"country": 1101,
"usage": "Stored/Processed/Exposed"
},
{
"country": 1102,
"usage": "Exposed"
}]
}
},
"dataSubProcessorList": {
"dataSubProcessor": [{
"subProcessorName": "One",
"privacyPolicyURL": "www.one.edu.au",
"privacyContactList": {
"contact": {
"name": {
"familyName": "First",
"givenName": "Charles",
"otherGivenNames": "William"
},
"positionTitle": "Admin",
"emailList": {
"email": "drseuss@whoville.k12.ceo.edu.au"
},
"phoneNumberList": {
"phoneNumber": {
"number": "(08) 8555-0102"
}
}
}
},
"purposeList": {
"purpose": "Attendance"
}
},
{
"subProcessorName": "Two",
"privacyPolicyURL": "www.two.edu.au",
"privacyContactList": {
"contact": {
"name": {
"familyName": "Two",
"givenName": "Charles",
"otherGivenNames": "William"
},
"positionTitle": "Admin",
"emailList": {
"email": "drseuss@whoville.k12.ceo.edu.au"
},
"phoneNumberList": {
"phoneNumber": {
"number": "(08) 8555-0102"
}
}
}
},
"purposeList": {
"purpose": "TimeTabling"
}
},
{
"subProcessorName": "Three",
"privacyPolicyURL": "www.three.edu.au",
"privacyContactList": {
"contact": {
"name": {
"familyName": "Third",
"givenName": "Charles",
"otherGivenNames": "William"
},
"positionTitle": "Admin",
"emailList": {
"email": "drseuss@whoville.k12.ceo.edu.au"
},
"phoneNumberList": {
"phoneNumber": {
"number": "(08) 8555-0102"
}
}
}
},
"purposeList": {
"purpose": "StudentPortal"
}
}]
}
}
},
{
"default": "N",
"appIDList": {
"appID": "TT12"
},
"adapterFingerprintList": {
"adapterFingerprint": "b4ef12ce-7025-11e8-adc0-fa7ae01bbebc"
},
"zoneContextList": {
"zoneContext": {
"zoneId": 4001,
"contextId": {}
}
},
"endpointList": {},
"privacyObligationsDocument": {
"technicalRequirements": {
"dataAccess": {
"fieldList": {
"field": [{
"fieldName": "/SchoolInfo/@RefId",
"controlrights": "R"
},
{
"fieldName": "/SchoolInfo/LocalId",
"controlrights": "R"
},
{
"fieldName": "/SchoolInfo/ACARAId",
"controlrights": "R"
},
{
"fieldName": "/StudentPersonal/@RefId",
"controlrights": "R"
},
{
"fieldName": "/StudentPersonal/LocalId",
"controlrights": "R"
},
{
"fieldName": "/StudentPersonal/FirstAUSchoolEnrollment",
"controlrights": "R"
},
{
"fieldName": "/TimeTable/*",
"controlrights": "RW"
}]
}
}
}
}
},
{
"default": "N",
"adapterFingerprintList": {
"adapterFingerprint": "b4ef12ce-7025-11e8-adc0-fa7ae01bbebc"
},
"zoneContextList": {
"zoneContext": {
"zoneId": 4002,
"contextId": {}
}
},
"dataModelNamespace": "http://www.sifinfo.org/infrastructure/2.x",
"dataModelVersionMin": 2.3,
"dataModelVersionMax": 2.9
},
{
"default": "N",
"adapterFingerprintList": {
"adapterFingerprint": "b4ef12ce-7025-11e8-adc0-fa7ae01bbebc"
},
"zoneContextList": {
"zoneContext": {
"zoneId": 4003,
"contextId": {}
}
},
"dataModelNamespace": "http://www.sifinfo.org/infrastructure/2.x",
"dataModelVersionMin": 2.1,
"dataModelVersionMax": 2.8,
"privacyObligationsDocument": {
"technicalRequirements": {
"securityTechnologyList": {
"securityTechnology": {
"technologyName": "SSL",
"technologyDescription": {},
"referenceURL": {}
}
}
}
}
}]
}
}
application/xml:
schema:
type: object
properties:
pod:
$ref: 'jsonSchema.yaml#/properties/pod'
example: >-
Live
1
1.0.2
Compass
Y
http://www.sifinfo.org/infrastructure/2.x
2.4
2.8
http://www.vic.priv.contract.edu.au/contract.pdf
Sample contract ABC
2018-03-01
2018-06-01
0.2
APP1
XXXXX
APP2
yyyy
Victorian Department of Education
Data Access
US-I.3
The agent shall access only data necessary to accomplish the business task for which it is contracted.
Restrict access to data fields to match the state profile.
https://thewave.sde.ok.gov/thewave/Portals/0/2%20x%20Wave%20Requirements_v1%2010.pdf
Oklahoma State Profile
US-I.3
/SchoolInfo/@RefId
R
/SchoolInfo/LocalId
R
/SchoolInfo/ACARAId
RW
/StudentPersonal/@RefId
RW
/StudentPersonal/LocalId
RW
/StudentPersonal/FirstAUSchoolEnrollment
RW
XQUERYTEMPLATE
RetrieveByGrade
Returns a StudentJoin of StudentPersonal and StudentSchoolEnrollment for the GradeLevel specified as a parameter.
contextId
CurrentEnrollment
Only works with student data whose records indicate they are currently enrolled according to the StudentSchoolEnrollment SIF object.
Enrolled After
/StudentSchoolEnrollment/EntryDate>=2018-09-01
Enrolled Before
/StudentSchoolEnrollment/EntryDate<=2019-09-01
US-Subject1
FERPA requires records be delivered within 45 days of a request.
https://www2.ed.gov/policy/gen/guid/fpco/brochures/parents.html
Family Educational Rights and Privacy Act (FERPA)
/StudentPersonal/@RefId
/StudentPersonal/LocalId
/StudentPersonal/FirstAUSchoolEnrollment
45
Y
Y
30
2019-07-15
Local LEA
EEe
Agg
hh
Data Owner
DataSec@localLEA.edu.au
(03) 8888-9999
US-V.1.c
TLS
1.2
Victorian Department of Education
http://www.vic.priv.policy.edu.au/privacy.pdf
Smith
Christime
Margaret
Admin
chris@whoville.vic.edu.au
(03) 9600-0102
BBBB
AAA
CCC
Data Security
DataSec@whoville.edu.au
(03) 8888-9999
CEOProcessor2
www.ceo.priv.policy.edu.au
Woodall
Charles
William
Admin
drseuss@whoville.k12.ceo.edu.au
(08) 8555-0102
Y
XXX
YYY
ZZZ
Privacy Officer
off@whoville.au
(03) 9999-9999
Admin System
Australian Schools List
Student Portal
Research
N
10
Y
XXX
YYY
ZZZ
Privacy Officer
off@whoville.au
(03) 9999-9999
Y
Y
Pen Test
Annual
7 days
Y
Vulnerability Test
Monthly
24hours
Y
1101
Stored/Processed/Exposed
1102
Exposed
One
www.one.edu.au
First
Charles
William
Admin
drseuss@whoville.k12.ceo.edu.au
(08) 8555-0102
Attendance
Two
www.two.edu.au
Two
Charles
William
Admin
drseuss@whoville.k12.ceo.edu.au
(08) 8555-0102
TimeTabling
Three
www.three.edu.au
Third
Charles
William
Admin
drseuss@whoville.k12.ceo.edu.au
(08) 8555-0102
StudentPortal
N
TT12
b4ef12ce-7025-11e8-adc0-fa7ae01bbebc
4001
/SchoolInfo/@RefId
R
/SchoolInfo/LocalId
R
/SchoolInfo/ACARAId
R
/StudentPersonal/@RefId
R
/StudentPersonal/LocalId
R
/StudentPersonal/FirstAUSchoolEnrollment
R
/TimeTable/*
RW
N
b4ef12ce-7025-11e8-adc0-fa7ae01bbebc
4002
http://www.sifinfo.org/infrastructure/2.x
2.3
2.9
N
b4ef12ce-7025-11e8-adc0-fa7ae01bbebc
4003
http://www.sifinfo.org/infrastructure/2.x
2.1
2.8
SSL
put:
tags:
- "pod"
summary: Default operation to update a single pod
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
operationId: updatepod
requestBody:
description: CRUD operation on pod
content:
application/json:
schema:
type: object
properties:
pod:
$ref: 'jsonSchema.yaml#/properties/pod'
example:
"pod": {
"podStatus": "Live",
"podToken": 1,
"podVersion": "1.0.2",
"partyId": "Compass",
"privacyList": {
"privacy": [{
"default": "Y",
"dataModelNamespace": "http://www.sifinfo.org/infrastructure/2.x",
"dataModelVersionMin": 2.4,
"dataModelVersionMax": 2.8,
"privacyObligationsDocument": {
"contract": {
"contractURI": "http://www.vic.priv.contract.edu.au/contract.pdf",
"contractName": "Sample contract ABC",
"dateValidFrom": "2018-03-01",
"dateValidTo": "2018-06-01",
"contractVersion": 0.2,
"lawList": {
"law": [{
"lawName": "APP1",
"lawDescription": "XXXXX"
},
{
"lawName": "APP2",
"lawDescription": "yyyy"
}]
},
"studentDataIPRights": "Victorian Department of Education"
},
"legalRequirements": {
"clauseList": {
"clause": {
"clauseLabel": "Data Access",
"clauseReference": "US-I.3",
"clauseContent": "The agent shall access only data necessary to accomplish the business task for which it is contracted.",
"obligationList": {
"obligation": {
"obligationDescription": "Restrict access to data fields to match the state profile.",
"obligationURL": "https://thewave.sde.ok.gov/thewave/Portals/0/2%20x%20Wave%20Requirements_v1%2010.pdf",
"benchmarkList": {
"benchmark": {
"benchmarkName": "Oklahoma State Profile"
}
}
}
}
}
}
},
"technicalRequirements": {
"dataAccess": {
"clauseList": {
"clause": {
"clauseReference": "US-I.3"
}
},
"fieldList": {
"field": [{
"fieldName": "/SchoolInfo/@RefId",
"controlrights": "R"
},
{
"fieldName": "/SchoolInfo/LocalId",
"controlrights": "R"
},
{
"fieldName": "/SchoolInfo/ACARAId",
"controlrights": "RW"
},
{
"fieldName": "/StudentPersonal/@RefId",
"controlrights": "RW"
},
{
"fieldName": "/StudentPersonal/LocalId",
"controlrights": "RW"
},
{
"fieldName": "/StudentPersonal/FirstAUSchoolEnrollment",
"controlrights": "RW"
}]
}
},
"conditionList": {
"condition": [{
"typeOfCondition": "XQUERYTEMPLATE",
"conditionName": "RetrieveByGrade",
"conditionDescription": "Returns a StudentJoin of StudentPersonal and StudentSchoolEnrollment for the GradeLevel specified as a parameter."
},
{
"typeOfCondition": "contextId",
"conditionName": "CurrentEnrollment",
"conditionDescription": "Only works with student data whose records indicate they are currently enrolled according to the StudentSchoolEnrollment SIF object.",
"propertyList": {
"property": [{
"propertyName": "Enrolled After",
"propertyValue": "/StudentSchoolEnrollment/EntryDate>=2018-09-01"
},
{
"propertyName": "Enrolled Before",
"propertyValue": "/StudentSchoolEnrollment/EntryDate<=2019-09-01"
}]
}
}]
},
"dataSubject": {
"clauseList": {
"clause": {
"clauseReference": "US-Subject1",
"obligationList": {
"obligation": {
"obligationDescription": "FERPA requires records be delivered within 45 days of a request.",
"obligationURL": "https://www2.ed.gov/policy/gen/guid/fpco/brochures/parents.html",
"benchmarkList": {
"benchmark": {
"benchmarkName": "Family Educational Rights and Privacy Act (FERPA)"
}
}
}
}
}
},
"fieldList": {
"field": [{
"fieldName": "/StudentPersonal/@RefId"
},
{
"fieldName": "/StudentPersonal/LocalId"
},
{
"fieldName": "/StudentPersonal/FirstAUSchoolEnrollment"
}]
},
"respondInDays": 45,
"requirePortability": "Y"
},
"dataDeletion": {
"deleteData": "Y",
"dataRetention": 30,
"deleteBy": "2019-07-15",
"partyToDeleteData": {
"organisation": "Local LEA",
"deletecontactInfo": {
"name": {
"familyName": "EEe",
"givenName": "Agg",
"otherGivenNames": "hh"
},
"positionTitle": "Data Owner",
"emailList": {
"email": "DataSec@localLEA.edu.au"
},
"phoneNumberList": {
"phoneNumber": {
"number": "(03) 8888-9999"
}
}
}
}
},
"securityTechnologyList": {
"securityTechnology": {
"clauseList": {
"clause": {
"clauseReference": "US-V.1.c"
}
},
"technologyName": "TLS",
"versionMin": 1.2
}
}
},
"dataController": {
"dataControllerName": "Victorian Department of Education",
"privacyPolicyURL": "http://www.vic.priv.policy.edu.au/privacy.pdf",
"privacyContactList": {
"contact": {
"name": {
"familyName": "Smith",
"givenName": "Christime",
"otherGivenNames": "Margaret"
},
"positionTitle": "Admin",
"emailList": {
"email": "chris@whoville.vic.edu.au"
},
"phoneNumberList": {
"phoneNumber": {
"number": "(03) 9600-0102"
}
}
}
},
"issuesNotificationContactList": {
"contact": {
"name": {
"familyName": "BBBB",
"givenName": "AAA",
"otherGivenNames": "CCC"
},
"positionTitle": "Data Security",
"emailList": {
"email": "DataSec@whoville.edu.au"
},
"phoneNumberList": {
"phoneNumber": {
"number": "(03) 8888-9999"
}
}
}
}
},
"dataProcessor": {
"dataProcessorName": "CEOProcessor2",
"privacyPolicyURL": "www.ceo.priv.policy.edu.au",
"privacyContactList": {
"contact": {
"name": {
"familyName": "Woodall",
"givenName": "Charles",
"otherGivenNames": "William"
},
"positionTitle": "Admin",
"emailList": {
"email": "drseuss@whoville.k12.ceo.edu.au"
},
"phoneNumberList": {
"phoneNumber": {
"number": "(08) 8555-0102"
}
}
}
},
"notifyDataControllerOnAccessRequests": "Y",
"dataProcessorContactForAccessRequestsList": {
"contact": {
"name": {
"familyName": "XXX",
"givenName": "YYY",
"otherGivenNames": "ZZZ"
},
"positionTitle": "Privacy Officer",
"emailList": {
"email": "off@whoville.au"
},
"phoneNumberList": {
"phoneNumber": {
"number": "(03) 9999-9999"
}
}
}
},
"purposeList": {
"purpose": ["Admin System",
"Australian Schools List"]
},
"alternatePurposeList": {
"alternatePurpose": "Student Portal"
},
"deidentifiedPurposeList": {
"deidentifiedPurpose": "Research"
},
"dataUsageMarketingAllowed": "N",
"personalInformationUpdatedFromSource": 10,
"dataBreachNotification": "Y",
"dataBreachContactList": {
"contact": {
"name": {
"familyName": "XXX",
"givenName": "YYY",
"otherGivenNames": "ZZZ"
},
"positionTitle": "Privacy Officer",
"emailList": {
"email": "off@whoville.au"
},
"phoneNumberList": {
"phoneNumber": {
"number": "(03) 9999-9999"
}
}
}
},
"employeesMustComplyWithAgreement": "Y",
"employeeConfidentialityAgreement": "Y",
"employeeTrainingList": {
"employeeTraining": {
"trainingName": {},
"trainingURL": {}
}
},
"passwordEmployeeAccessStandard": {
"standardName": {},
"standardURL": {}
},
"securityTestRequiredList": {
"securityTestRequired": [{
"testType": "Pen Test",
"testFrequency": "Annual",
"remediationRequiredIn": "7 days",
"shareResults": "Y"
},
{
"testType": "Vulnerability Test",
"testFrequency": "Monthly",
"remediationRequiredIn": "24hours",
"shareResults": "Y"
}]
},
"countryImpactedList": {
"countryImpacted": [{
"country": 1101,
"usage": "Stored/Processed/Exposed"
},
{
"country": 1102,
"usage": "Exposed"
}]
}
},
"dataSubProcessorList": {
"dataSubProcessor": [{
"subProcessorName": "One",
"privacyPolicyURL": "www.one.edu.au",
"privacyContactList": {
"contact": {
"name": {
"familyName": "First",
"givenName": "Charles",
"otherGivenNames": "William"
},
"positionTitle": "Admin",
"emailList": {
"email": "drseuss@whoville.k12.ceo.edu.au"
},
"phoneNumberList": {
"phoneNumber": {
"number": "(08) 8555-0102"
}
}
}
},
"purposeList": {
"purpose": "Attendance"
}
},
{
"subProcessorName": "Two",
"privacyPolicyURL": "www.two.edu.au",
"privacyContactList": {
"contact": {
"name": {
"familyName": "Two",
"givenName": "Charles",
"otherGivenNames": "William"
},
"positionTitle": "Admin",
"emailList": {
"email": "drseuss@whoville.k12.ceo.edu.au"
},
"phoneNumberList": {
"phoneNumber": {
"number": "(08) 8555-0102"
}
}
}
},
"purposeList": {
"purpose": "TimeTabling"
}
},
{
"subProcessorName": "Three",
"privacyPolicyURL": "www.three.edu.au",
"privacyContactList": {
"contact": {
"name": {
"familyName": "Third",
"givenName": "Charles",
"otherGivenNames": "William"
},
"positionTitle": "Admin",
"emailList": {
"email": "drseuss@whoville.k12.ceo.edu.au"
},
"phoneNumberList": {
"phoneNumber": {
"number": "(08) 8555-0102"
}
}
}
},
"purposeList": {
"purpose": "StudentPortal"
}
}]
}
}
},
{
"default": "N",
"appIDList": {
"appID": "TT12"
},
"adapterFingerprintList": {
"adapterFingerprint": "b4ef12ce-7025-11e8-adc0-fa7ae01bbebc"
},
"zoneContextList": {
"zoneContext": {
"zoneId": 4001,
"contextId": {}
}
},
"endpointList": {},
"privacyObligationsDocument": {
"technicalRequirements": {
"dataAccess": {
"fieldList": {
"field": [{
"fieldName": "/SchoolInfo/@RefId",
"controlrights": "R"
},
{
"fieldName": "/SchoolInfo/LocalId",
"controlrights": "R"
},
{
"fieldName": "/SchoolInfo/ACARAId",
"controlrights": "R"
},
{
"fieldName": "/StudentPersonal/@RefId",
"controlrights": "R"
},
{
"fieldName": "/StudentPersonal/LocalId",
"controlrights": "R"
},
{
"fieldName": "/StudentPersonal/FirstAUSchoolEnrollment",
"controlrights": "R"
},
{
"fieldName": "/TimeTable/*",
"controlrights": "RW"
}]
}
}
}
}
},
{
"default": "N",
"adapterFingerprintList": {
"adapterFingerprint": "b4ef12ce-7025-11e8-adc0-fa7ae01bbebc"
},
"zoneContextList": {
"zoneContext": {
"zoneId": 4002,
"contextId": {}
}
},
"dataModelNamespace": "http://www.sifinfo.org/infrastructure/2.x",
"dataModelVersionMin": 2.3,
"dataModelVersionMax": 2.9
},
{
"default": "N",
"adapterFingerprintList": {
"adapterFingerprint": "b4ef12ce-7025-11e8-adc0-fa7ae01bbebc"
},
"zoneContextList": {
"zoneContext": {
"zoneId": 4003,
"contextId": {}
}
},
"dataModelNamespace": "http://www.sifinfo.org/infrastructure/2.x",
"dataModelVersionMin": 2.1,
"dataModelVersionMax": 2.8,
"privacyObligationsDocument": {
"technicalRequirements": {
"securityTechnologyList": {
"securityTechnology": {
"technologyName": "SSL",
"technologyDescription": {},
"referenceURL": {}
}
}
}
}
}]
}
}
application/xml:
schema:
type: object
properties:
pod:
$ref: 'jsonSchema.yaml#/properties/pod'
example: >-
Live
1
1.0.2
Compass
Y
http://www.sifinfo.org/infrastructure/2.x
2.4
2.8
http://www.vic.priv.contract.edu.au/contract.pdf
Sample contract ABC
2018-03-01
2018-06-01
0.2
APP1
XXXXX
APP2
yyyy
Victorian Department of Education
Data Access
US-I.3
The agent shall access only data necessary to accomplish the business task for which it is contracted.
Restrict access to data fields to match the state profile.
https://thewave.sde.ok.gov/thewave/Portals/0/2%20x%20Wave%20Requirements_v1%2010.pdf
Oklahoma State Profile
US-I.3
/SchoolInfo/@RefId
R
/SchoolInfo/LocalId
R
/SchoolInfo/ACARAId
RW
/StudentPersonal/@RefId
RW
/StudentPersonal/LocalId
RW
/StudentPersonal/FirstAUSchoolEnrollment
RW
XQUERYTEMPLATE
RetrieveByGrade
Returns a StudentJoin of StudentPersonal and StudentSchoolEnrollment for the GradeLevel specified as a parameter.
contextId
CurrentEnrollment
Only works with student data whose records indicate they are currently enrolled according to the StudentSchoolEnrollment SIF object.
Enrolled After
/StudentSchoolEnrollment/EntryDate>=2018-09-01
Enrolled Before
/StudentSchoolEnrollment/EntryDate<=2019-09-01
US-Subject1
FERPA requires records be delivered within 45 days of a request.
https://www2.ed.gov/policy/gen/guid/fpco/brochures/parents.html
Family Educational Rights and Privacy Act (FERPA)
/StudentPersonal/@RefId
/StudentPersonal/LocalId
/StudentPersonal/FirstAUSchoolEnrollment
45
Y
Y
30
2019-07-15
Local LEA
EEe
Agg
hh
Data Owner
DataSec@localLEA.edu.au
(03) 8888-9999
US-V.1.c
TLS
1.2
Victorian Department of Education
http://www.vic.priv.policy.edu.au/privacy.pdf
Smith
Christime
Margaret
Admin
chris@whoville.vic.edu.au
(03) 9600-0102
BBBB
AAA
CCC
Data Security
DataSec@whoville.edu.au
(03) 8888-9999
CEOProcessor2
www.ceo.priv.policy.edu.au
Woodall
Charles
William
Admin
drseuss@whoville.k12.ceo.edu.au
(08) 8555-0102
Y
XXX
YYY
ZZZ
Privacy Officer
off@whoville.au
(03) 9999-9999
Admin System
Australian Schools List
Student Portal
Research
N
10
Y
XXX
YYY
ZZZ
Privacy Officer
off@whoville.au
(03) 9999-9999
Y
Y
Pen Test
Annual
7 days
Y
Vulnerability Test
Monthly
24hours
Y
1101
Stored/Processed/Exposed
1102
Exposed
One
www.one.edu.au
First
Charles
William
Admin
drseuss@whoville.k12.ceo.edu.au
(08) 8555-0102
Attendance
Two
www.two.edu.au
Two
Charles
William
Admin
drseuss@whoville.k12.ceo.edu.au
(08) 8555-0102
TimeTabling
Three
www.three.edu.au
Third
Charles
William
Admin
drseuss@whoville.k12.ceo.edu.au
(08) 8555-0102
StudentPortal
N
TT12
b4ef12ce-7025-11e8-adc0-fa7ae01bbebc
4001
/SchoolInfo/@RefId
R
/SchoolInfo/LocalId
R
/SchoolInfo/ACARAId
R
/StudentPersonal/@RefId
R
/StudentPersonal/LocalId
R
/StudentPersonal/FirstAUSchoolEnrollment
R
/TimeTable/*
RW
N
b4ef12ce-7025-11e8-adc0-fa7ae01bbebc
4002
http://www.sifinfo.org/infrastructure/2.x
2.3
2.9
N
b4ef12ce-7025-11e8-adc0-fa7ae01bbebc
4003
http://www.sifinfo.org/infrastructure/2.x
2.1
2.8
SSL
get:
tags:
- "pod"
summary: Default operation to get a single pod
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: object
properties:
pod:
$ref: 'jsonSchema.yaml#/properties/pod'
example:
"pod": {
"podStatus": "Live",
"podToken": 1,
"podVersion": "1.0.2",
"partyId": "Compass",
"privacyList": {
"privacy": [{
"default": "Y",
"dataModelNamespace": "http://www.sifinfo.org/infrastructure/2.x",
"dataModelVersionMin": 2.4,
"dataModelVersionMax": 2.8,
"privacyObligationsDocument": {
"contract": {
"contractURI": "http://www.vic.priv.contract.edu.au/contract.pdf",
"contractName": "Sample contract ABC",
"dateValidFrom": "2018-03-01",
"dateValidTo": "2018-06-01",
"contractVersion": 0.2,
"lawList": {
"law": [{
"lawName": "APP1",
"lawDescription": "XXXXX"
},
{
"lawName": "APP2",
"lawDescription": "yyyy"
}]
},
"studentDataIPRights": "Victorian Department of Education"
},
"legalRequirements": {
"clauseList": {
"clause": {
"clauseLabel": "Data Access",
"clauseReference": "US-I.3",
"clauseContent": "The agent shall access only data necessary to accomplish the business task for which it is contracted.",
"obligationList": {
"obligation": {
"obligationDescription": "Restrict access to data fields to match the state profile.",
"obligationURL": "https://thewave.sde.ok.gov/thewave/Portals/0/2%20x%20Wave%20Requirements_v1%2010.pdf",
"benchmarkList": {
"benchmark": {
"benchmarkName": "Oklahoma State Profile"
}
}
}
}
}
}
},
"technicalRequirements": {
"dataAccess": {
"clauseList": {
"clause": {
"clauseReference": "US-I.3"
}
},
"fieldList": {
"field": [{
"fieldName": "/SchoolInfo/@RefId",
"controlrights": "R"
},
{
"fieldName": "/SchoolInfo/LocalId",
"controlrights": "R"
},
{
"fieldName": "/SchoolInfo/ACARAId",
"controlrights": "RW"
},
{
"fieldName": "/StudentPersonal/@RefId",
"controlrights": "RW"
},
{
"fieldName": "/StudentPersonal/LocalId",
"controlrights": "RW"
},
{
"fieldName": "/StudentPersonal/FirstAUSchoolEnrollment",
"controlrights": "RW"
}]
}
},
"conditionList": {
"condition": [{
"typeOfCondition": "XQUERYTEMPLATE",
"conditionName": "RetrieveByGrade",
"conditionDescription": "Returns a StudentJoin of StudentPersonal and StudentSchoolEnrollment for the GradeLevel specified as a parameter."
},
{
"typeOfCondition": "contextId",
"conditionName": "CurrentEnrollment",
"conditionDescription": "Only works with student data whose records indicate they are currently enrolled according to the StudentSchoolEnrollment SIF object.",
"propertyList": {
"property": [{
"propertyName": "Enrolled After",
"propertyValue": "/StudentSchoolEnrollment/EntryDate>=2018-09-01"
},
{
"propertyName": "Enrolled Before",
"propertyValue": "/StudentSchoolEnrollment/EntryDate<=2019-09-01"
}]
}
}]
},
"dataSubject": {
"clauseList": {
"clause": {
"clauseReference": "US-Subject1",
"obligationList": {
"obligation": {
"obligationDescription": "FERPA requires records be delivered within 45 days of a request.",
"obligationURL": "https://www2.ed.gov/policy/gen/guid/fpco/brochures/parents.html",
"benchmarkList": {
"benchmark": {
"benchmarkName": "Family Educational Rights and Privacy Act (FERPA)"
}
}
}
}
}
},
"fieldList": {
"field": [{
"fieldName": "/StudentPersonal/@RefId"
},
{
"fieldName": "/StudentPersonal/LocalId"
},
{
"fieldName": "/StudentPersonal/FirstAUSchoolEnrollment"
}]
},
"respondInDays": 45,
"requirePortability": "Y"
},
"dataDeletion": {
"deleteData": "Y",
"dataRetention": 30,
"deleteBy": "2019-07-15",
"partyToDeleteData": {
"organisation": "Local LEA",
"deletecontactInfo": {
"name": {
"familyName": "EEe",
"givenName": "Agg",
"otherGivenNames": "hh"
},
"positionTitle": "Data Owner",
"emailList": {
"email": "DataSec@localLEA.edu.au"
},
"phoneNumberList": {
"phoneNumber": {
"number": "(03) 8888-9999"
}
}
}
}
},
"securityTechnologyList": {
"securityTechnology": {
"clauseList": {
"clause": {
"clauseReference": "US-V.1.c"
}
},
"technologyName": "TLS",
"versionMin": 1.2
}
}
},
"dataController": {
"dataControllerName": "Victorian Department of Education",
"privacyPolicyURL": "http://www.vic.priv.policy.edu.au/privacy.pdf",
"privacyContactList": {
"contact": {
"name": {
"familyName": "Smith",
"givenName": "Christime",
"otherGivenNames": "Margaret"
},
"positionTitle": "Admin",
"emailList": {
"email": "chris@whoville.vic.edu.au"
},
"phoneNumberList": {
"phoneNumber": {
"number": "(03) 9600-0102"
}
}
}
},
"issuesNotificationContactList": {
"contact": {
"name": {
"familyName": "BBBB",
"givenName": "AAA",
"otherGivenNames": "CCC"
},
"positionTitle": "Data Security",
"emailList": {
"email": "DataSec@whoville.edu.au"
},
"phoneNumberList": {
"phoneNumber": {
"number": "(03) 8888-9999"
}
}
}
}
},
"dataProcessor": {
"dataProcessorName": "CEOProcessor2",
"privacyPolicyURL": "www.ceo.priv.policy.edu.au",
"privacyContactList": {
"contact": {
"name": {
"familyName": "Woodall",
"givenName": "Charles",
"otherGivenNames": "William"
},
"positionTitle": "Admin",
"emailList": {
"email": "drseuss@whoville.k12.ceo.edu.au"
},
"phoneNumberList": {
"phoneNumber": {
"number": "(08) 8555-0102"
}
}
}
},
"notifyDataControllerOnAccessRequests": "Y",
"dataProcessorContactForAccessRequestsList": {
"contact": {
"name": {
"familyName": "XXX",
"givenName": "YYY",
"otherGivenNames": "ZZZ"
},
"positionTitle": "Privacy Officer",
"emailList": {
"email": "off@whoville.au"
},
"phoneNumberList": {
"phoneNumber": {
"number": "(03) 9999-9999"
}
}
}
},
"purposeList": {
"purpose": ["Admin System",
"Australian Schools List"]
},
"alternatePurposeList": {
"alternatePurpose": "Student Portal"
},
"deidentifiedPurposeList": {
"deidentifiedPurpose": "Research"
},
"dataUsageMarketingAllowed": "N",
"personalInformationUpdatedFromSource": 10,
"dataBreachNotification": "Y",
"dataBreachContactList": {
"contact": {
"name": {
"familyName": "XXX",
"givenName": "YYY",
"otherGivenNames": "ZZZ"
},
"positionTitle": "Privacy Officer",
"emailList": {
"email": "off@whoville.au"
},
"phoneNumberList": {
"phoneNumber": {
"number": "(03) 9999-9999"
}
}
}
},
"employeesMustComplyWithAgreement": "Y",
"employeeConfidentialityAgreement": "Y",
"employeeTrainingList": {
"employeeTraining": {
"trainingName": {},
"trainingURL": {}
}
},
"passwordEmployeeAccessStandard": {
"standardName": {},
"standardURL": {}
},
"securityTestRequiredList": {
"securityTestRequired": [{
"testType": "Pen Test",
"testFrequency": "Annual",
"remediationRequiredIn": "7 days",
"shareResults": "Y"
},
{
"testType": "Vulnerability Test",
"testFrequency": "Monthly",
"remediationRequiredIn": "24hours",
"shareResults": "Y"
}]
},
"countryImpactedList": {
"countryImpacted": [{
"country": 1101,
"usage": "Stored/Processed/Exposed"
},
{
"country": 1102,
"usage": "Exposed"
}]
}
},
"dataSubProcessorList": {
"dataSubProcessor": [{
"subProcessorName": "One",
"privacyPolicyURL": "www.one.edu.au",
"privacyContactList": {
"contact": {
"name": {
"familyName": "First",
"givenName": "Charles",
"otherGivenNames": "William"
},
"positionTitle": "Admin",
"emailList": {
"email": "drseuss@whoville.k12.ceo.edu.au"
},
"phoneNumberList": {
"phoneNumber": {
"number": "(08) 8555-0102"
}
}
}
},
"purposeList": {
"purpose": "Attendance"
}
},
{
"subProcessorName": "Two",
"privacyPolicyURL": "www.two.edu.au",
"privacyContactList": {
"contact": {
"name": {
"familyName": "Two",
"givenName": "Charles",
"otherGivenNames": "William"
},
"positionTitle": "Admin",
"emailList": {
"email": "drseuss@whoville.k12.ceo.edu.au"
},
"phoneNumberList": {
"phoneNumber": {
"number": "(08) 8555-0102"
}
}
}
},
"purposeList": {
"purpose": "TimeTabling"
}
},
{
"subProcessorName": "Three",
"privacyPolicyURL": "www.three.edu.au",
"privacyContactList": {
"contact": {
"name": {
"familyName": "Third",
"givenName": "Charles",
"otherGivenNames": "William"
},
"positionTitle": "Admin",
"emailList": {
"email": "drseuss@whoville.k12.ceo.edu.au"
},
"phoneNumberList": {
"phoneNumber": {
"number": "(08) 8555-0102"
}
}
}
},
"purposeList": {
"purpose": "StudentPortal"
}
}]
}
}
},
{
"default": "N",
"appIDList": {
"appID": "TT12"
},
"adapterFingerprintList": {
"adapterFingerprint": "b4ef12ce-7025-11e8-adc0-fa7ae01bbebc"
},
"zoneContextList": {
"zoneContext": {
"zoneId": 4001,
"contextId": {}
}
},
"endpointList": {},
"privacyObligationsDocument": {
"technicalRequirements": {
"dataAccess": {
"fieldList": {
"field": [{
"fieldName": "/SchoolInfo/@RefId",
"controlrights": "R"
},
{
"fieldName": "/SchoolInfo/LocalId",
"controlrights": "R"
},
{
"fieldName": "/SchoolInfo/ACARAId",
"controlrights": "R"
},
{
"fieldName": "/StudentPersonal/@RefId",
"controlrights": "R"
},
{
"fieldName": "/StudentPersonal/LocalId",
"controlrights": "R"
},
{
"fieldName": "/StudentPersonal/FirstAUSchoolEnrollment",
"controlrights": "R"
},
{
"fieldName": "/TimeTable/*",
"controlrights": "RW"
}]
}
}
}
}
},
{
"default": "N",
"adapterFingerprintList": {
"adapterFingerprint": "b4ef12ce-7025-11e8-adc0-fa7ae01bbebc"
},
"zoneContextList": {
"zoneContext": {
"zoneId": 4002,
"contextId": {}
}
},
"dataModelNamespace": "http://www.sifinfo.org/infrastructure/2.x",
"dataModelVersionMin": 2.3,
"dataModelVersionMax": 2.9
},
{
"default": "N",
"adapterFingerprintList": {
"adapterFingerprint": "b4ef12ce-7025-11e8-adc0-fa7ae01bbebc"
},
"zoneContextList": {
"zoneContext": {
"zoneId": 4003,
"contextId": {}
}
},
"dataModelNamespace": "http://www.sifinfo.org/infrastructure/2.x",
"dataModelVersionMin": 2.1,
"dataModelVersionMax": 2.8,
"privacyObligationsDocument": {
"technicalRequirements": {
"securityTechnologyList": {
"securityTechnology": {
"technologyName": "SSL",
"technologyDescription": {},
"referenceURL": {}
}
}
}
}
}]
}
}
application/xml:
schema:
type: object
properties:
pod:
$ref: 'jsonSchema.yaml#/properties/pod'
example: >-
Live
1
1.0.2
Compass
Y
http://www.sifinfo.org/infrastructure/2.x
2.4
2.8
http://www.vic.priv.contract.edu.au/contract.pdf
Sample contract ABC
2018-03-01
2018-06-01
0.2
APP1
XXXXX
APP2
yyyy
Victorian Department of Education
Data Access
US-I.3
The agent shall access only data necessary to accomplish the business task for which it is contracted.
Restrict access to data fields to match the state profile.
https://thewave.sde.ok.gov/thewave/Portals/0/2%20x%20Wave%20Requirements_v1%2010.pdf
Oklahoma State Profile
US-I.3
/SchoolInfo/@RefId
R
/SchoolInfo/LocalId
R
/SchoolInfo/ACARAId
RW
/StudentPersonal/@RefId
RW
/StudentPersonal/LocalId
RW
/StudentPersonal/FirstAUSchoolEnrollment
RW
XQUERYTEMPLATE
RetrieveByGrade
Returns a StudentJoin of StudentPersonal and StudentSchoolEnrollment for the GradeLevel specified as a parameter.
contextId
CurrentEnrollment
Only works with student data whose records indicate they are currently enrolled according to the StudentSchoolEnrollment SIF object.
Enrolled After
/StudentSchoolEnrollment/EntryDate>=2018-09-01
Enrolled Before
/StudentSchoolEnrollment/EntryDate<=2019-09-01
US-Subject1
FERPA requires records be delivered within 45 days of a request.
https://www2.ed.gov/policy/gen/guid/fpco/brochures/parents.html
Family Educational Rights and Privacy Act (FERPA)
/StudentPersonal/@RefId
/StudentPersonal/LocalId
/StudentPersonal/FirstAUSchoolEnrollment
45
Y
Y
30
2019-07-15
Local LEA
EEe
Agg
hh
Data Owner
DataSec@localLEA.edu.au
(03) 8888-9999
US-V.1.c
TLS
1.2
Victorian Department of Education
http://www.vic.priv.policy.edu.au/privacy.pdf
Smith
Christime
Margaret
Admin
chris@whoville.vic.edu.au
(03) 9600-0102
BBBB
AAA
CCC
Data Security
DataSec@whoville.edu.au
(03) 8888-9999
CEOProcessor2
www.ceo.priv.policy.edu.au
Woodall
Charles
William
Admin
drseuss@whoville.k12.ceo.edu.au
(08) 8555-0102
Y
XXX
YYY
ZZZ
Privacy Officer
off@whoville.au
(03) 9999-9999
Admin System
Australian Schools List
Student Portal
Research
N
10
Y
XXX
YYY
ZZZ
Privacy Officer
off@whoville.au
(03) 9999-9999
Y
Y
Pen Test
Annual
7 days
Y
Vulnerability Test
Monthly
24hours
Y
1101
Stored/Processed/Exposed
1102
Exposed
One
www.one.edu.au
First
Charles
William
Admin
drseuss@whoville.k12.ceo.edu.au
(08) 8555-0102
Attendance
Two
www.two.edu.au
Two
Charles
William
Admin
drseuss@whoville.k12.ceo.edu.au
(08) 8555-0102
TimeTabling
Three
www.three.edu.au
Third
Charles
William
Admin
drseuss@whoville.k12.ceo.edu.au
(08) 8555-0102
StudentPortal
N
TT12
b4ef12ce-7025-11e8-adc0-fa7ae01bbebc
4001
/SchoolInfo/@RefId
R
/SchoolInfo/LocalId
R
/SchoolInfo/ACARAId
R
/StudentPersonal/@RefId
R
/StudentPersonal/LocalId
R
/StudentPersonal/FirstAUSchoolEnrollment
R
/TimeTable/*
RW
N
b4ef12ce-7025-11e8-adc0-fa7ae01bbebc
4002
http://www.sifinfo.org/infrastructure/2.x
2.3
2.9
N
b4ef12ce-7025-11e8-adc0-fa7ae01bbebc
4003
http://www.sifinfo.org/infrastructure/2.x
2.1
2.8
SSL
delete:
tags:
- "pod"
summary: Default operation to delete a single pod
parameters:
- name: id
in: path
description: >-
required: true
schema:
type: string
responses:
'200':
description: successful operation