using Meitner;
using Meitner.Models.Components;
var sdk = new MeitnerSDK(security: new Security() {
Option1 = new SecurityOption1() {
ClientCredentials = "<YOUR_API_KEY_HERE>",
ClientSecret = "<YOUR_API_KEY_HERE>",
},
});
UnitCreate req = new UnitCreate() {
External = new UnitCreateExternal() {
SourceID = "12345678",
},
Title = "Norra distriktet",
Description = "Norra grundskole- och förskoleenheten",
};
var res = await sdk.Units.CreateAsync(req);
// handle responsefrom meitner import Meitner, models
import os
with Meitner(
security=models.Security(
option1=models.SecurityOption1(
client_credentials=os.getenv("MEITNER_CLIENT_CREDENTIALS", ""),
client_secret=os.getenv("MEITNER_CLIENT_SECRET", ""),
),
),
) as m_client:
res = m_client.units.create(title="Norra distriktet", external={
"source_id": "12345678",
}, description="Norra grundskole- och förskoleenheten")
# Handle response
print(res)curl --request POST \
--url https://api.meitner.se/directory/v1/unit \
--header 'Client-ID: <api-key>' \
--header 'Client-Secret: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"external": {
"sourceID": "12345678"
},
"title": "Norra distriktet",
"description": "Norra grundskole- och förskoleenheten"
}
'const options = {
method: 'POST',
headers: {
'Client-ID': '<api-key>',
'Client-Secret': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
external: {sourceID: '12345678'},
title: 'Norra distriktet',
description: 'Norra grundskole- och förskoleenheten'
})
};
fetch('https://api.meitner.se/directory/v1/unit', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.meitner.se/directory/v1/unit",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'external' => [
'sourceID' => '12345678'
],
'title' => 'Norra distriktet',
'description' => 'Norra grundskole- och förskoleenheten'
]),
CURLOPT_HTTPHEADER => [
"Client-ID: <api-key>",
"Client-Secret: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.meitner.se/directory/v1/unit"
payload := strings.NewReader("{\n \"external\": {\n \"sourceID\": \"12345678\"\n },\n \"title\": \"Norra distriktet\",\n \"description\": \"Norra grundskole- och förskoleenheten\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Client-ID", "<api-key>")
req.Header.Add("Client-Secret", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.meitner.se/directory/v1/unit")
.header("Client-ID", "<api-key>")
.header("Client-Secret", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"external\": {\n \"sourceID\": \"12345678\"\n },\n \"title\": \"Norra distriktet\",\n \"description\": \"Norra grundskole- och förskoleenheten\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.meitner.se/directory/v1/unit")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Client-ID"] = '<api-key>'
request["Client-Secret"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"external\": {\n \"sourceID\": \"12345678\"\n },\n \"title\": \"Norra distriktet\",\n \"description\": \"Norra grundskole- och förskoleenheten\"\n}"
response = http.request(request)
puts response.read_body{
"id": "123e4567-e89b-12d3-a456-426614174000",
"meta": {
"createdAt": "2024-01-15T10:30:00Z",
"createdBy": "987fcdeb-51a2-43d1-b567-123456789abc",
"updatedAt": "2024-01-15T14:45:00Z",
"updatedBy": "987fcdeb-51a2-43d1-b567-123456789abc"
},
"external": {
"sourceID": "12345678",
"source": "ExternalIntegrationAPI"
},
"title": "Norra distriktet",
"description": "Norra grundskole- och förskoleenheten"
}{
"error": {
"code": "BadRequest",
"message": "The request contains invalid parameters or malformed data",
"requestID": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "Unauthorized",
"message": "Authentication credentials are missing or invalid",
"requestID": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "Forbidden",
"message": "You do not have permission to perform this operation",
"requestID": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "NotFound",
"message": "The requested resource could not be found",
"requestID": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "Conflict",
"message": "The request conflicts with the current state of the resource",
"requestID": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "UnprocessableEntity",
"message": "Validation failed for Unit Create endpoint",
"requestID": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "RateLimited",
"message": "Too many requests - rate limit exceeded",
"requestID": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "Internal",
"message": "An unexpected server error occurred",
"requestID": "550e8400-e29b-41d4-a716-446655440000"
}
}Create a new Unit
Create a new Unit
using Meitner;
using Meitner.Models.Components;
var sdk = new MeitnerSDK(security: new Security() {
Option1 = new SecurityOption1() {
ClientCredentials = "<YOUR_API_KEY_HERE>",
ClientSecret = "<YOUR_API_KEY_HERE>",
},
});
UnitCreate req = new UnitCreate() {
External = new UnitCreateExternal() {
SourceID = "12345678",
},
Title = "Norra distriktet",
Description = "Norra grundskole- och förskoleenheten",
};
var res = await sdk.Units.CreateAsync(req);
// handle responsefrom meitner import Meitner, models
import os
with Meitner(
security=models.Security(
option1=models.SecurityOption1(
client_credentials=os.getenv("MEITNER_CLIENT_CREDENTIALS", ""),
client_secret=os.getenv("MEITNER_CLIENT_SECRET", ""),
),
),
) as m_client:
res = m_client.units.create(title="Norra distriktet", external={
"source_id": "12345678",
}, description="Norra grundskole- och förskoleenheten")
# Handle response
print(res)curl --request POST \
--url https://api.meitner.se/directory/v1/unit \
--header 'Client-ID: <api-key>' \
--header 'Client-Secret: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"external": {
"sourceID": "12345678"
},
"title": "Norra distriktet",
"description": "Norra grundskole- och förskoleenheten"
}
'const options = {
method: 'POST',
headers: {
'Client-ID': '<api-key>',
'Client-Secret': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
external: {sourceID: '12345678'},
title: 'Norra distriktet',
description: 'Norra grundskole- och förskoleenheten'
})
};
fetch('https://api.meitner.se/directory/v1/unit', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.meitner.se/directory/v1/unit",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'external' => [
'sourceID' => '12345678'
],
'title' => 'Norra distriktet',
'description' => 'Norra grundskole- och förskoleenheten'
]),
CURLOPT_HTTPHEADER => [
"Client-ID: <api-key>",
"Client-Secret: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.meitner.se/directory/v1/unit"
payload := strings.NewReader("{\n \"external\": {\n \"sourceID\": \"12345678\"\n },\n \"title\": \"Norra distriktet\",\n \"description\": \"Norra grundskole- och förskoleenheten\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Client-ID", "<api-key>")
req.Header.Add("Client-Secret", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.meitner.se/directory/v1/unit")
.header("Client-ID", "<api-key>")
.header("Client-Secret", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"external\": {\n \"sourceID\": \"12345678\"\n },\n \"title\": \"Norra distriktet\",\n \"description\": \"Norra grundskole- och förskoleenheten\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.meitner.se/directory/v1/unit")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Client-ID"] = '<api-key>'
request["Client-Secret"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"external\": {\n \"sourceID\": \"12345678\"\n },\n \"title\": \"Norra distriktet\",\n \"description\": \"Norra grundskole- och förskoleenheten\"\n}"
response = http.request(request)
puts response.read_body{
"id": "123e4567-e89b-12d3-a456-426614174000",
"meta": {
"createdAt": "2024-01-15T10:30:00Z",
"createdBy": "987fcdeb-51a2-43d1-b567-123456789abc",
"updatedAt": "2024-01-15T14:45:00Z",
"updatedBy": "987fcdeb-51a2-43d1-b567-123456789abc"
},
"external": {
"sourceID": "12345678",
"source": "ExternalIntegrationAPI"
},
"title": "Norra distriktet",
"description": "Norra grundskole- och förskoleenheten"
}{
"error": {
"code": "BadRequest",
"message": "The request contains invalid parameters or malformed data",
"requestID": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "Unauthorized",
"message": "Authentication credentials are missing or invalid",
"requestID": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "Forbidden",
"message": "You do not have permission to perform this operation",
"requestID": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "NotFound",
"message": "The requested resource could not be found",
"requestID": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "Conflict",
"message": "The request conflicts with the current state of the resource",
"requestID": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "UnprocessableEntity",
"message": "Validation failed for Unit Create endpoint",
"requestID": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "RateLimited",
"message": "Too many requests - rate limit exceeded",
"requestID": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "Internal",
"message": "An unexpected server error occurred",
"requestID": "550e8400-e29b-41d4-a716-446655440000"
}
}Authorizations
Body
Request body
The title of the unit
"Norra distriktet"
External is the External-object used on Update and Create operations, since it should only be allowed to set SourceID for the unit, the Source-field is not included.
Show child attributes
Show child attributes
{ "sourceID": "12345678" }
The description of the unit
"Norra grundskole- och förskoleenheten"
null
Response
Response for Unit Create operation - returns the created Unit
The Unit resource represents an organizational unit that schools can belong to.
This resource can be created, updated, listed, retrieved, and searched using the standard resource structure.
Unique identifier for the Unit
"123e4567-e89b-12d3-a456-426614174000"
The title of the unit
"Norra distriktet"
Metadata information for the Unit
Show child attributes
Show child attributes
{
"createdAt": "2024-01-15T10:30:00Z",
"createdBy": "987fcdeb-51a2-43d1-b567-123456789abc",
"updatedAt": "2024-01-15T14:45:00Z",
"updatedBy": "987fcdeb-51a2-43d1-b567-123456789abc"
}
External is a reusable object that can be used to store external information about the unit from another system, used for third-party integration tracking.
Show child attributes
Show child attributes
{
"sourceID": "12345678",
"source": "ExternalIntegrationAPI"
}
The description of the unit
"Norra grundskole- och förskoleenheten"
null