> ## Documentation Index
> Fetch the complete documentation index at: https://docs.meitner.se/llms.txt
> Use this file to discover all available pages before exploring further.

# Search Students

> Search for `Students` with filtering capabilities.



## OpenAPI

````yaml https://spec.speakeasy.com/meitner-2u8/api/directory-api-with-code-samples post /student/_search
openapi: 3.1.0
info:
  title: Directory API
  description: Generated API documentation
  contact:
    name: Meitner
    url: https://meitner.se
    email: support@meitner.se
  license:
    name: Proprietary - Licensed to Authorized Customers Only
    url: https://meitner.se
  version: v1
servers:
  - url: https://api.meitner.se/directory/v1
    description: Server to use in production
    x-speakeasy-server-id: production
  - url: https://api.staging.meitner.se/directory/v1
    description: Server to use when building and testing the API
    x-speakeasy-server-id: staging
security:
  - ClientCredentials: []
    ClientSecret: []
  - OAuth2: []
tags:
  - name: School
    description: >
      The `School` resource represents a school where daily operations occur. A
      school must exist before you can create StudentPlacements,
      EmployeePlacements, or Groups.
       
      This resource can be created, updated, listed, retrieved, and searched
      using the standard resource structure.
  - name: Group
    description: Group holds the information about a group of students.
  - name: Employee
    description: >-
      Employee holds the personal information about an employee in the
      organization.
  - name: EmployeePlacement
    description: >-
      EmployeePlacement holds the information about an employee's placement in a
      school.
  - name: Guardian
    description: Guardian holds the information about a guardian of a student.
  - name: Student
    description: >-
      Student holds the personal information about a student, information about
      the school is stored in the StudentPlacement-resource.
  - name: StudentPlacement
    description: >-
      StudentPlacement holds the placement information about a student in a
      specific school.
  - name: AuditEvent
    description: AuditEvent holds the information about an audit event.
  - name: GradeElementary
    description: >
      GradeElementary represents a grade awarded to a student in elementary
      school (Swedish: grundskola).

      Grades are scoped to the organization of the API key used. The SubjectCode
      field uses the subject code as defined by the Swedish school authorities
      (e.g. "MA" for Mathematics).
  - name: GradeUpperSecondary
    description: >
      GradeUpperSecondary represents a grade awarded to a student in upper
      secondary school (Swedish: gymnasieskola).

      Grades are scoped to the organization of the API key used. The CourseCode
      field uses the national course code as defined by the Swedish school
      authorities (e.g. "MATMAT01a").
  - name: Unit
    description: >
      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.
paths:
  /student/_search:
    post:
      tags:
        - Student
      summary: Search Students
      description: Search for `Students` with filtering capabilities.
      operationId: StudentSearch
      parameters:
        - name: limit
          in: query
          description: >-
            The maximum number of Students to return (default: 50) when
            searching Students
          required: false
          schema:
            type: integer
            examples:
              - 1
            default: 50
        - name: offset
          in: query
          description: >-
            The number of Students to skip before starting to return results
            (default: 0) when searching Students
          required: false
          schema:
            type: integer
            examples:
              - 0
            default: 0
      requestBody:
        $ref: '#/components/requestBodies/StudentSearch'
      responses:
        '200':
          $ref: '#/components/responses/StudentSearch'
          description: >-
            Response for Student Search operation - returns filtered Student
            results
        '400':
          $ref: '#/components/responses/Error400ResponseBody'
          description: >-
            Bad Request error for Student Search operation - request contains
            invalid parameters
        '401':
          $ref: '#/components/responses/Error401ResponseBody'
          description: >-
            Unauthorized error for Student Search operation - authentication
            required
        '403':
          $ref: '#/components/responses/Error403ResponseBody'
          description: >-
            Forbidden error for Student Search operation - insufficient
            permissions
        '404':
          $ref: '#/components/responses/Error404ResponseBody'
          description: >-
            Not Found error for Student Search operation - resource does not
            exist
        '409':
          $ref: '#/components/responses/Error409ResponseBody'
          description: >-
            Conflict error for Student Search operation - request conflicts with
            current state
        '422':
          $ref: '#/components/responses/StudentSearch422ResponseBody'
          description: >-
            Validation error for Student Search operation - request data failed
            validation
        '429':
          $ref: '#/components/responses/Error429ResponseBody'
          description: Rate Limit error for Student Search operation - too many requests
        '500':
          $ref: '#/components/responses/Error500ResponseBody'
          description: >-
            Internal Server error for Student Search operation - unexpected
            server error
      x-codeSamples:
        - lang: csharp
          label: Csharp (SDK)
          source: >-
            using Meitner;

            using Meitner.Models.Components;

            using System;

            using System.Collections.Generic;


            var sdk = new MeitnerSDK(security: new Security() {
                Option1 = new SecurityOption1() {
                    ClientCredentials = "<YOUR_API_KEY_HERE>",
                    ClientSecret = "<YOUR_API_KEY_HERE>",
                },
            });


            Models.Requests.StudentSearchResponse? res = await
            sdk.Students.SearchAsync(
                studentSearch: new StudentSearchRequestBody() {
                    Filter = new StudentSearchFilter() {
                        Equals = new StudentSearchEquals() {
                            Id = "123e4567-e89b-12d3-a456-426614174000",
                            Meta = new StudentSearchEqualsMeta() {
                                CreatedAt = System.DateTime.Parse("2024-01-15T10:30:00Z").ToUniversalTime(),
                                CreatedBy = "123e4567-e89b-12d3-a456-426614174000",
                                UpdatedAt = System.DateTime.Parse("2024-01-15T10:30:00Z").ToUniversalTime(),
                                UpdatedBy = "123e4567-e89b-12d3-a456-426614174000",
                            },
                            External = new StudentSearchEqualsExternal() {
                                SourceID = "example",
                                Source = "example",
                            },
                            IdentityNumber = "example",
                            IdentityTemporary = true,
                            FirstName = "example",
                            LastName = "example",
                            DateOfBirth = DateOnly.Parse("2024-01-15"),
                            Address = new StudentSearchEqualsAddress() {
                                PostalAddress = "example",
                                PostalCode = "example",
                                PostalCity = "example",
                                CountryCode = "example",
                                MunicipalityCode = "example",
                            },
                            EmailAddress1 = "example",
                            EmailAddress2 = "example",
                            PhoneNumber1 = "example",
                            PhoneNumber2 = "example",
                            EduPersonPrincipalName = "example",
                        },
                        NotEquals = new StudentSearchNotEquals() {
                            Id = "123e4567-e89b-12d3-a456-426614174000",
                            Meta = new StudentSearchNotEqualsMeta() {
                                CreatedAt = System.DateTime.Parse("2024-01-15T10:30:00Z").ToUniversalTime(),
                                CreatedBy = "123e4567-e89b-12d3-a456-426614174000",
                                UpdatedAt = System.DateTime.Parse("2024-01-15T10:30:00Z").ToUniversalTime(),
                                UpdatedBy = "123e4567-e89b-12d3-a456-426614174000",
                            },
                            External = new StudentSearchNotEqualsExternal() {
                                SourceID = "example",
                                Source = "example",
                            },
                            IdentityNumber = "example",
                            IdentityTemporary = true,
                            FirstName = "example",
                            LastName = "example",
                            DateOfBirth = DateOnly.Parse("2024-01-15"),
                            Address = new StudentSearchNotEqualsAddress() {
                                PostalAddress = "example",
                                PostalCode = "example",
                                PostalCity = "example",
                                CountryCode = "example",
                                MunicipalityCode = "example",
                            },
                            EmailAddress1 = "example",
                            EmailAddress2 = "example",
                            PhoneNumber1 = "example",
                            PhoneNumber2 = "example",
                            EduPersonPrincipalName = "example",
                        },
                        GreaterThan = new StudentSearchGreaterThan() {
                            Meta = new StudentSearchGreaterThanMeta() {
                                CreatedAt = System.DateTime.Parse("2024-01-15T10:30:00Z").ToUniversalTime(),
                                UpdatedAt = System.DateTime.Parse("2024-01-15T10:30:00Z").ToUniversalTime(),
                            },
                            DateOfBirth = DateOnly.Parse("2024-01-15"),
                        },
                        SmallerThan = new StudentSearchSmallerThan() {
                            Meta = new StudentSearchSmallerThanMeta() {
                                CreatedAt = System.DateTime.Parse("2024-01-15T10:30:00Z").ToUniversalTime(),
                                UpdatedAt = System.DateTime.Parse("2024-01-15T10:30:00Z").ToUniversalTime(),
                            },
                            DateOfBirth = DateOnly.Parse("2024-01-15"),
                        },
                        GreaterOrEqual = new StudentSearchGreaterOrEqual() {
                            Meta = new StudentSearchGreaterOrEqualMeta() {
                                CreatedAt = System.DateTime.Parse("2024-01-15T10:30:00Z").ToUniversalTime(),
                                UpdatedAt = System.DateTime.Parse("2024-01-15T10:30:00Z").ToUniversalTime(),
                            },
                            DateOfBirth = DateOnly.Parse("2024-01-15"),
                        },
                        SmallerOrEqual = new StudentSearchSmallerOrEqual() {
                            Meta = new StudentSearchSmallerOrEqualMeta() {
                                CreatedAt = System.DateTime.Parse("2024-01-15T10:30:00Z").ToUniversalTime(),
                                UpdatedAt = System.DateTime.Parse("2024-01-15T10:30:00Z").ToUniversalTime(),
                            },
                            DateOfBirth = DateOnly.Parse("2024-01-15"),
                        },
                        Contains = new StudentSearchContains() {
                            Id = new List<string>() {
                                "123e4567-e89b-12d3-a456-426614174000",
                            },
                            Meta = new StudentSearchContainsMeta() {
                                CreatedBy = new List<string>() {
                                    "123e4567-e89b-12d3-a456-426614174000",
                                },
                                UpdatedBy = new List<string>() {
                                    "123e4567-e89b-12d3-a456-426614174000",
                                },
                            },
                            External = new StudentSearchContainsExternal() {
                                SourceID = new List<string>() {
                                    "example",
                                },
                                Source = new List<string>() {
                                    "example",
                                },
                            },
                            IdentityNumber = new List<string>() {
                                "example",
                            },
                            IdentityTemporary = new List<bool>() {
                                true,
                            },
                            FirstName = new List<string>() {
                                "example",
                            },
                            LastName = new List<string>() {
                                "example",
                            },
                            DateOfBirth = new List<DateOnly>() {
                                DateOnly.Parse("2024-01-15"),
                            },
                            Address = new StudentSearchContainsAddress() {
                                PostalAddress = new List<string>() {
                                    "example",
                                },
                                PostalCode = new List<string>() {
                                    "example",
                                },
                                PostalCity = new List<string>() {
                                    "example",
                                },
                                CountryCode = new List<string>() {
                                    "example",
                                },
                                MunicipalityCode = new List<string>() {
                                    "example",
                                },
                            },
                            EmailAddress1 = new List<string>() {
                                "example",
                            },
                            EmailAddress2 = new List<string>() {
                                "example",
                            },
                            PhoneNumber1 = new List<string>() {
                                "example",
                            },
                            PhoneNumber2 = new List<string>() {
                                "example",
                            },
                            EduPersonPrincipalName = new List<string>() {
                                "example",
                            },
                        },
                        NotContains = new StudentSearchNotContains() {
                            Id = new List<string>() {
                                "123e4567-e89b-12d3-a456-426614174000",
                            },
                            Meta = new StudentSearchNotContainsMeta() {
                                CreatedBy = new List<string>() {
                                    "123e4567-e89b-12d3-a456-426614174000",
                                },
                                UpdatedBy = new List<string>() {
                                    "123e4567-e89b-12d3-a456-426614174000",
                                },
                            },
                            External = new StudentSearchNotContainsExternal() {
                                SourceID = new List<string>() {
                                    "example",
                                },
                                Source = new List<string>() {
                                    "example",
                                },
                            },
                            IdentityNumber = new List<string>() {
                                "example",
                            },
                            IdentityTemporary = new List<bool>() {
                                true,
                            },
                            FirstName = new List<string>() {
                                "example",
                            },
                            LastName = new List<string>() {
                                "example",
                            },
                            DateOfBirth = new List<DateOnly>() {
                                DateOnly.Parse("2024-01-15"),
                            },
                            Address = new StudentSearchNotContainsAddress() {
                                PostalAddress = new List<string>() {
                                    "example",
                                },
                                PostalCode = new List<string>() {
                                    "example",
                                },
                                PostalCity = new List<string>() {
                                    "example",
                                },
                                CountryCode = new List<string>() {
                                    "example",
                                },
                                MunicipalityCode = new List<string>() {
                                    "example",
                                },
                            },
                            EmailAddress1 = new List<string>() {
                                "example",
                            },
                            EmailAddress2 = new List<string>() {
                                "example",
                            },
                            PhoneNumber1 = new List<string>() {
                                "example",
                            },
                            PhoneNumber2 = new List<string>() {
                                "example",
                            },
                            EduPersonPrincipalName = new List<string>() {
                                "example",
                            },
                        },
                        Like = new StudentSearchLike() {
                            External = new StudentSearchLikeExternal() {
                                SourceID = "example",
                                Source = "example",
                            },
                            IdentityNumber = "example",
                            FirstName = "example",
                            LastName = "example",
                            Address = new StudentSearchLikeAddress() {
                                PostalAddress = "example",
                                PostalCode = "example",
                                PostalCity = "example",
                                CountryCode = "example",
                                MunicipalityCode = "example",
                            },
                            EmailAddress1 = "example",
                            EmailAddress2 = "example",
                            PhoneNumber1 = "example",
                            PhoneNumber2 = "example",
                            EduPersonPrincipalName = "example",
                        },
                        NotLike = new StudentSearchNotLike() {
                            External = new StudentSearchNotLikeExternal() {
                                SourceID = "example",
                                Source = "example",
                            },
                            IdentityNumber = "example",
                            FirstName = "example",
                            LastName = "example",
                            Address = new StudentSearchNotLikeAddress() {
                                PostalAddress = "example",
                                PostalCode = "example",
                                PostalCity = "example",
                                CountryCode = "example",
                                MunicipalityCode = "example",
                            },
                            EmailAddress1 = "example",
                            EmailAddress2 = "example",
                            PhoneNumber1 = "example",
                            PhoneNumber2 = "example",
                            EduPersonPrincipalName = "example",
                        },
                        Null = new StudentSearchNull() {
                            Meta = new StudentSearchNullMeta() {
                                CreatedBy = true,
                                UpdatedAt = true,
                                UpdatedBy = true,
                            },
                            External = new StudentSearchNullExternal() {
                                SourceID = true,
                                Source = true,
                            },
                            Gender = true,
                            DateOfBirth = true,
                            Address = new StudentSearchNullAddress() {
                                PostalAddress = true,
                                PostalCode = true,
                                PostalCity = true,
                                CountryCode = true,
                                MunicipalityCode = true,
                            },
                            EmailAddress1 = true,
                            EmailAddress2 = true,
                            PhoneNumber1 = true,
                            PhoneNumber2 = true,
                            EduPersonPrincipalName = true,
                        },
                        NotNull = new StudentSearchNotNull() {
                            Meta = new StudentSearchNotNullMeta() {
                                CreatedBy = true,
                                UpdatedAt = true,
                                UpdatedBy = true,
                            },
                            External = new StudentSearchNotNullExternal() {
                                SourceID = true,
                                Source = true,
                            },
                            Gender = true,
                            DateOfBirth = true,
                            Address = new StudentSearchNotNullAddress() {
                                PostalAddress = true,
                                PostalCode = true,
                                PostalCity = true,
                                CountryCode = true,
                                MunicipalityCode = true,
                            },
                            EmailAddress1 = true,
                            EmailAddress2 = true,
                            PhoneNumber1 = true,
                            PhoneNumber2 = true,
                            EduPersonPrincipalName = true,
                        },
                        OrCondition = true,
                    },
                },
                limit: 1,
                offset: 0
            );


            while(res != null)

            {
                // handle items

                res = await res.Next!();
            }
        - lang: python
          label: Python (SDK)
          source: |-
            from datetime import date
            from meitner import Meitner, models
            from meitner.utils import parse_datetime
            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.students.search(filter_={
                    "equals": {
                        "id": "123e4567-e89b-12d3-a456-426614174000",
                        "meta": {
                            "created_at": parse_datetime("2024-01-15T10:30:00Z"),
                            "created_by": "123e4567-e89b-12d3-a456-426614174000",
                            "updated_at": parse_datetime("2024-01-15T10:30:00Z"),
                            "updated_by": "123e4567-e89b-12d3-a456-426614174000",
                        },
                        "external": {
                            "source_id": "example",
                            "source": "example",
                        },
                        "identity_number": "example",
                        "identity_temporary": True,
                        "first_name": "example",
                        "last_name": "example",
                        "date_of_birth": date.fromisoformat("2024-01-15"),
                        "address": {
                            "postal_address": "example",
                            "postal_code": "example",
                            "postal_city": "example",
                            "country_code": "example",
                            "municipality_code": "example",
                        },
                        "email_address1": "example",
                        "email_address2": "example",
                        "phone_number1": "example",
                        "phone_number2": "example",
                        "edu_person_principal_name": "example",
                    },
                    "not_equals": {
                        "id": "123e4567-e89b-12d3-a456-426614174000",
                        "meta": {
                            "created_at": parse_datetime("2024-01-15T10:30:00Z"),
                            "created_by": "123e4567-e89b-12d3-a456-426614174000",
                            "updated_at": parse_datetime("2024-01-15T10:30:00Z"),
                            "updated_by": "123e4567-e89b-12d3-a456-426614174000",
                        },
                        "external": {
                            "source_id": "example",
                            "source": "example",
                        },
                        "identity_number": "example",
                        "identity_temporary": True,
                        "first_name": "example",
                        "last_name": "example",
                        "date_of_birth": date.fromisoformat("2024-01-15"),
                        "address": {
                            "postal_address": "example",
                            "postal_code": "example",
                            "postal_city": "example",
                            "country_code": "example",
                            "municipality_code": "example",
                        },
                        "email_address1": "example",
                        "email_address2": "example",
                        "phone_number1": "example",
                        "phone_number2": "example",
                        "edu_person_principal_name": "example",
                    },
                    "greater_than": {
                        "meta": {
                            "created_at": parse_datetime("2024-01-15T10:30:00Z"),
                            "updated_at": parse_datetime("2024-01-15T10:30:00Z"),
                        },
                        "date_of_birth": date.fromisoformat("2024-01-15"),
                    },
                    "smaller_than": {
                        "meta": {
                            "created_at": parse_datetime("2024-01-15T10:30:00Z"),
                            "updated_at": parse_datetime("2024-01-15T10:30:00Z"),
                        },
                        "date_of_birth": date.fromisoformat("2024-01-15"),
                    },
                    "greater_or_equal": {
                        "meta": {
                            "created_at": parse_datetime("2024-01-15T10:30:00Z"),
                            "updated_at": parse_datetime("2024-01-15T10:30:00Z"),
                        },
                        "date_of_birth": date.fromisoformat("2024-01-15"),
                    },
                    "smaller_or_equal": {
                        "meta": {
                            "created_at": parse_datetime("2024-01-15T10:30:00Z"),
                            "updated_at": parse_datetime("2024-01-15T10:30:00Z"),
                        },
                        "date_of_birth": date.fromisoformat("2024-01-15"),
                    },
                    "contains": {
                        "id": [
                            "123e4567-e89b-12d3-a456-426614174000",
                        ],
                        "meta": {
                            "created_by": [
                                "123e4567-e89b-12d3-a456-426614174000",
                            ],
                            "updated_by": [
                                "123e4567-e89b-12d3-a456-426614174000",
                            ],
                        },
                        "external": {
                            "source_id": [
                                "example",
                            ],
                            "source": [
                                "example",
                            ],
                        },
                        "identity_number": [
                            "example",
                        ],
                        "identity_temporary": [
                            True,
                        ],
                        "first_name": [
                            "example",
                        ],
                        "last_name": [
                            "example",
                        ],
                        "date_of_birth": [
                            date.fromisoformat("2024-01-15"),
                        ],
                        "address": {
                            "postal_address": [
                                "example",
                            ],
                            "postal_code": [
                                "example",
                            ],
                            "postal_city": [
                                "example",
                            ],
                            "country_code": [
                                "example",
                            ],
                            "municipality_code": [
                                "example",
                            ],
                        },
                        "email_address1": [
                            "example",
                        ],
                        "email_address2": [
                            "example",
                        ],
                        "phone_number1": [
                            "example",
                        ],
                        "phone_number2": [
                            "example",
                        ],
                        "edu_person_principal_name": [
                            "example",
                        ],
                    },
                    "not_contains": {
                        "id": [
                            "123e4567-e89b-12d3-a456-426614174000",
                        ],
                        "meta": {
                            "created_by": [
                                "123e4567-e89b-12d3-a456-426614174000",
                            ],
                            "updated_by": [
                                "123e4567-e89b-12d3-a456-426614174000",
                            ],
                        },
                        "external": {
                            "source_id": [
                                "example",
                            ],
                            "source": [
                                "example",
                            ],
                        },
                        "identity_number": [
                            "example",
                        ],
                        "identity_temporary": [
                            True,
                        ],
                        "first_name": [
                            "example",
                        ],
                        "last_name": [
                            "example",
                        ],
                        "date_of_birth": [
                            date.fromisoformat("2024-01-15"),
                        ],
                        "address": {
                            "postal_address": [
                                "example",
                            ],
                            "postal_code": [
                                "example",
                            ],
                            "postal_city": [
                                "example",
                            ],
                            "country_code": [
                                "example",
                            ],
                            "municipality_code": [
                                "example",
                            ],
                        },
                        "email_address1": [
                            "example",
                        ],
                        "email_address2": [
                            "example",
                        ],
                        "phone_number1": [
                            "example",
                        ],
                        "phone_number2": [
                            "example",
                        ],
                        "edu_person_principal_name": [
                            "example",
                        ],
                    },
                    "like": {
                        "external": {
                            "source_id": "example",
                            "source": "example",
                        },
                        "identity_number": "example",
                        "first_name": "example",
                        "last_name": "example",
                        "address": {
                            "postal_address": "example",
                            "postal_code": "example",
                            "postal_city": "example",
                            "country_code": "example",
                            "municipality_code": "example",
                        },
                        "email_address1": "example",
                        "email_address2": "example",
                        "phone_number1": "example",
                        "phone_number2": "example",
                        "edu_person_principal_name": "example",
                    },
                    "not_like": {
                        "external": {
                            "source_id": "example",
                            "source": "example",
                        },
                        "identity_number": "example",
                        "first_name": "example",
                        "last_name": "example",
                        "address": {
                            "postal_address": "example",
                            "postal_code": "example",
                            "postal_city": "example",
                            "country_code": "example",
                            "municipality_code": "example",
                        },
                        "email_address1": "example",
                        "email_address2": "example",
                        "phone_number1": "example",
                        "phone_number2": "example",
                        "edu_person_principal_name": "example",
                    },
                    "null": {
                        "meta": {
                            "created_by": True,
                            "updated_at": True,
                            "updated_by": True,
                        },
                        "external": {
                            "source_id": True,
                            "source": True,
                        },
                        "gender": True,
                        "date_of_birth": True,
                        "address": {
                            "postal_address": True,
                            "postal_code": True,
                            "postal_city": True,
                            "country_code": True,
                            "municipality_code": True,
                        },
                        "email_address1": True,
                        "email_address2": True,
                        "phone_number1": True,
                        "phone_number2": True,
                        "edu_person_principal_name": True,
                    },
                    "not_null": {
                        "meta": {
                            "created_by": True,
                            "updated_at": True,
                            "updated_by": True,
                        },
                        "external": {
                            "source_id": True,
                            "source": True,
                        },
                        "gender": True,
                        "date_of_birth": True,
                        "address": {
                            "postal_address": True,
                            "postal_code": True,
                            "postal_city": True,
                            "country_code": True,
                            "municipality_code": True,
                        },
                        "email_address1": True,
                        "email_address2": True,
                        "phone_number1": True,
                        "phone_number2": True,
                        "edu_person_principal_name": True,
                    },
                    "or_condition": True,
                }, limit=1, offset=0)

                while res is not None:
                    # Handle items

                    res = res.next()
components:
  requestBodies:
    StudentSearch:
      description: Request body
      content:
        application/json:
          schema:
            type: object
            properties:
              filter:
                allOf:
                  - $ref: '#/components/schemas/StudentFilter'
                examples:
                  - equals:
                      id: 123e4567-e89b-12d3-a456-426614174000
                      meta:
                        createdAt: '2024-01-15T10:30:00Z'
                        createdBy: 123e4567-e89b-12d3-a456-426614174000
                        updatedAt: '2024-01-15T10:30:00Z'
                        updatedBy: 123e4567-e89b-12d3-a456-426614174000
                      external:
                        sourceID: example
                        source: example
                      identityNumber: example
                      identityTemporary: true
                      firstName: example
                      lastName: example
                      dateOfBirth: '2024-01-15'
                      address:
                        postalAddress: example
                        postalCode: example
                        postalCity: example
                        countryCode: example
                        municipalityCode: example
                      emailAddress1: example
                      emailAddress2: example
                      phoneNumber1: example
                      phoneNumber2: example
                      eduPersonPrincipalName: example
                    notEquals:
                      id: 123e4567-e89b-12d3-a456-426614174000
                      meta:
                        createdAt: '2024-01-15T10:30:00Z'
                        createdBy: 123e4567-e89b-12d3-a456-426614174000
                        updatedAt: '2024-01-15T10:30:00Z'
                        updatedBy: 123e4567-e89b-12d3-a456-426614174000
                      external:
                        sourceID: example
                        source: example
                      identityNumber: example
                      identityTemporary: true
                      firstName: example
                      lastName: example
                      dateOfBirth: '2024-01-15'
                      address:
                        postalAddress: example
                        postalCode: example
                        postalCity: example
                        countryCode: example
                        municipalityCode: example
                      emailAddress1: example
                      emailAddress2: example
                      phoneNumber1: example
                      phoneNumber2: example
                      eduPersonPrincipalName: example
                    greaterThan:
                      meta:
                        createdAt: '2024-01-15T10:30:00Z'
                        updatedAt: '2024-01-15T10:30:00Z'
                      dateOfBirth: '2024-01-15'
                    smallerThan:
                      meta:
                        createdAt: '2024-01-15T10:30:00Z'
                        updatedAt: '2024-01-15T10:30:00Z'
                      dateOfBirth: '2024-01-15'
                    greaterOrEqual:
                      meta:
                        createdAt: '2024-01-15T10:30:00Z'
                        updatedAt: '2024-01-15T10:30:00Z'
                      dateOfBirth: '2024-01-15'
                    smallerOrEqual:
                      meta:
                        createdAt: '2024-01-15T10:30:00Z'
                        updatedAt: '2024-01-15T10:30:00Z'
                      dateOfBirth: '2024-01-15'
                    contains:
                      id:
                        - 123e4567-e89b-12d3-a456-426614174000
                      meta:
                        createdBy:
                          - 123e4567-e89b-12d3-a456-426614174000
                        updatedBy:
                          - 123e4567-e89b-12d3-a456-426614174000
                      external:
                        sourceID:
                          - example
                        source:
                          - example
                      identityNumber:
                        - example
                      identityTemporary:
                        - true
                      firstName:
                        - example
                      lastName:
                        - example
                      dateOfBirth:
                        - '2024-01-15'
                      address:
                        postalAddress:
                          - example
                        postalCode:
                          - example
                        postalCity:
                          - example
                        countryCode:
                          - example
                        municipalityCode:
                          - example
                      emailAddress1:
                        - example
                      emailAddress2:
                        - example
                      phoneNumber1:
                        - example
                      phoneNumber2:
                        - example
                      eduPersonPrincipalName:
                        - example
                    notContains:
                      id:
                        - 123e4567-e89b-12d3-a456-426614174000
                      meta:
                        createdBy:
                          - 123e4567-e89b-12d3-a456-426614174000
                        updatedBy:
                          - 123e4567-e89b-12d3-a456-426614174000
                      external:
                        sourceID:
                          - example
                        source:
                          - example
                      identityNumber:
                        - example
                      identityTemporary:
                        - true
                      firstName:
                        - example
                      lastName:
                        - example
                      dateOfBirth:
                        - '2024-01-15'
                      address:
                        postalAddress:
                          - example
                        postalCode:
                          - example
                        postalCity:
                          - example
                        countryCode:
                          - example
                        municipalityCode:
                          - example
                      emailAddress1:
                        - example
                      emailAddress2:
                        - example
                      phoneNumber1:
                        - example
                      phoneNumber2:
                        - example
                      eduPersonPrincipalName:
                        - example
                    like:
                      external:
                        sourceID: example
                        source: example
                      identityNumber: example
                      firstName: example
                      lastName: example
                      address:
                        postalAddress: example
                        postalCode: example
                        postalCity: example
                        countryCode: example
                        municipalityCode: example
                      emailAddress1: example
                      emailAddress2: example
                      phoneNumber1: example
                      phoneNumber2: example
                      eduPersonPrincipalName: example
                    notLike:
                      external:
                        sourceID: example
                        source: example
                      identityNumber: example
                      firstName: example
                      lastName: example
                      address:
                        postalAddress: example
                        postalCode: example
                        postalCity: example
                        countryCode: example
                        municipalityCode: example
                      emailAddress1: example
                      emailAddress2: example
                      phoneNumber1: example
                      phoneNumber2: example
                      eduPersonPrincipalName: example
                    'null':
                      meta:
                        createdBy: true
                        updatedAt: true
                        updatedBy: true
                      external:
                        sourceID: true
                        source: true
                      gender: true
                      dateOfBirth: true
                      address:
                        postalAddress: true
                        postalCode: true
                        postalCity: true
                        countryCode: true
                        municipalityCode: true
                      emailAddress1: true
                      emailAddress2: true
                      phoneNumber1: true
                      phoneNumber2: true
                      eduPersonPrincipalName: true
                    notNull:
                      meta:
                        createdBy: true
                        updatedAt: true
                        updatedBy: true
                      external:
                        sourceID: true
                        source: true
                      gender: true
                      dateOfBirth: true
                      address:
                        postalAddress: true
                        postalCode: true
                        postalCity: true
                        countryCode: true
                        municipalityCode: true
                      emailAddress1: true
                      emailAddress2: true
                      phoneNumber1: true
                      phoneNumber2: true
                      eduPersonPrincipalName: true
                    orCondition: true
                description: Filter criteria to search for specific records
            required:
              - filter
          examples:
            requestExample:
              summary: Request body example
              value:
                filter:
                  equals:
                    id: 123e4567-e89b-12d3-a456-426614174000
                    meta:
                      createdAt: '2024-01-15T10:30:00Z'
                      createdBy: 123e4567-e89b-12d3-a456-426614174000
                      updatedAt: '2024-01-15T10:30:00Z'
                      updatedBy: 123e4567-e89b-12d3-a456-426614174000
                    external:
                      sourceID: example
                      source: example
                    identityNumber: example
                    identityTemporary: true
                    firstName: example
                    lastName: example
                    dateOfBirth: '2024-01-15'
                    address:
                      postalAddress: example
                      postalCode: example
                      postalCity: example
                      countryCode: example
                      municipalityCode: example
                    emailAddress1: example
                    emailAddress2: example
                    phoneNumber1: example
                    phoneNumber2: example
                    eduPersonPrincipalName: example
                  notEquals:
                    id: 123e4567-e89b-12d3-a456-426614174000
                    meta:
                      createdAt: '2024-01-15T10:30:00Z'
                      createdBy: 123e4567-e89b-12d3-a456-426614174000
                      updatedAt: '2024-01-15T10:30:00Z'
                      updatedBy: 123e4567-e89b-12d3-a456-426614174000
                    external:
                      sourceID: example
                      source: example
                    identityNumber: example
                    identityTemporary: true
                    firstName: example
                    lastName: example
                    dateOfBirth: '2024-01-15'
                    address:
                      postalAddress: example
                      postalCode: example
                      postalCity: example
                      countryCode: example
                      municipalityCode: example
                    emailAddress1: example
                    emailAddress2: example
                    phoneNumber1: example
                    phoneNumber2: example
                    eduPersonPrincipalName: example
                  greaterThan:
                    meta:
                      createdAt: '2024-01-15T10:30:00Z'
                      updatedAt: '2024-01-15T10:30:00Z'
                    dateOfBirth: '2024-01-15'
                  smallerThan:
                    meta:
                      createdAt: '2024-01-15T10:30:00Z'
                      updatedAt: '2024-01-15T10:30:00Z'
                    dateOfBirth: '2024-01-15'
                  greaterOrEqual:
                    meta:
                      createdAt: '2024-01-15T10:30:00Z'
                      updatedAt: '2024-01-15T10:30:00Z'
                    dateOfBirth: '2024-01-15'
                  smallerOrEqual:
                    meta:
                      createdAt: '2024-01-15T10:30:00Z'
                      updatedAt: '2024-01-15T10:30:00Z'
                    dateOfBirth: '2024-01-15'
                  contains:
                    id:
                      - 123e4567-e89b-12d3-a456-426614174000
                    meta:
                      createdBy:
                        - 123e4567-e89b-12d3-a456-426614174000
                      updatedBy:
                        - 123e4567-e89b-12d3-a456-426614174000
                    external:
                      sourceID:
                        - example
                      source:
                        - example
                    identityNumber:
                      - example
                    identityTemporary:
                      - true
                    firstName:
                      - example
                    lastName:
                      - example
                    dateOfBirth:
                      - '2024-01-15'
                    address:
                      postalAddress:
                        - example
                      postalCode:
                        - example
                      postalCity:
                        - example
                      countryCode:
                        - example
                      municipalityCode:
                        - example
                    emailAddress1:
                      - example
                    emailAddress2:
                      - example
                    phoneNumber1:
                      - example
                    phoneNumber2:
                      - example
                    eduPersonPrincipalName:
                      - example
                  notContains:
                    id:
                      - 123e4567-e89b-12d3-a456-426614174000
                    meta:
                      createdBy:
                        - 123e4567-e89b-12d3-a456-426614174000
                      updatedBy:
                        - 123e4567-e89b-12d3-a456-426614174000
                    external:
                      sourceID:
                        - example
                      source:
                        - example
                    identityNumber:
                      - example
                    identityTemporary:
                      - true
                    firstName:
                      - example
                    lastName:
                      - example
                    dateOfBirth:
                      - '2024-01-15'
                    address:
                      postalAddress:
                        - example
                      postalCode:
                        - example
                      postalCity:
                        - example
                      countryCode:
                        - example
                      municipalityCode:
                        - example
                    emailAddress1:
                      - example
                    emailAddress2:
                      - example
                    phoneNumber1:
                      - example
                    phoneNumber2:
                      - example
                    eduPersonPrincipalName:
                      - example
                  like:
                    external:
                      sourceID: example
                      source: example
                    identityNumber: example
                    firstName: example
                    lastName: example
                    address:
                      postalAddress: example
                      postalCode: example
                      postalCity: example
                      countryCode: example
                      municipalityCode: example
                    emailAddress1: example
                    emailAddress2: example
                    phoneNumber1: example
                    phoneNumber2: example
                    eduPersonPrincipalName: example
                  notLike:
                    external:
                      sourceID: example
                      source: example
                    identityNumber: example
                    firstName: example
                    lastName: example
                    address:
                      postalAddress: example
                      postalCode: example
                      postalCity: example
                      countryCode: example
                      municipalityCode: example
                    emailAddress1: example
                    emailAddress2: example
                    phoneNumber1: example
                    phoneNumber2: example
                    eduPersonPrincipalName: example
                  'null':
                    meta:
                      createdBy: true
                      updatedAt: true
                      updatedBy: true
                    external:
                      sourceID: true
                      source: true
                    gender: true
                    dateOfBirth: true
                    address:
                      postalAddress: true
                      postalCode: true
                      postalCity: true
                      countryCode: true
                      municipalityCode: true
                    emailAddress1: true
                    emailAddress2: true
                    phoneNumber1: true
                    phoneNumber2: true
                    eduPersonPrincipalName: true
                  notNull:
                    meta:
                      createdBy: true
                      updatedAt: true
                      updatedBy: true
                    external:
                      sourceID: true
                      source: true
                    gender: true
                    dateOfBirth: true
                    address:
                      postalAddress: true
                      postalCode: true
                      postalCity: true
                      countryCode: true
                      municipalityCode: true
                    emailAddress1: true
                    emailAddress2: true
                    phoneNumber1: true
                    phoneNumber2: true
                    eduPersonPrincipalName: true
                  orCondition: true
      required: true
  responses:
    StudentSearch:
      description: Response for Student Search operation - returns filtered Student results
      headers:
        RateLimit-Limit:
          description: >-
            The maximum number of API requests you're permitted to make per
            hour.
          schema:
            type: integer
            examples:
              - 5000
        RateLimit-Remaining:
          description: >-
            The number of API requests remaining in the current rate limit
            window.
          schema:
            type: integer
            examples:
              - 4999
        RateLimit-Reset:
          description: >-
            The time at which the current rate limit window resets in UTC epoch
            milliseconds.
          schema:
            type: string
            examples:
              - '1728316800000'
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                type: array
                examples:
                  - - 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
                      gender: Female
                      identityNumber: 20191216-1234
                      identityTemporary: true
                      firstName: Lise
                      lastName: Meitner
                      dateOfBirth: '2019-12-16'
                      address:
                        postalAddress: Dalvägen 14
                        postalCode: 169 56
                        postalCity: Solna
                        countryCode: SWE
                        municipalityCode: '0184'
                      emailAddress1: lise@meitner.se
                      emailAddress2: lise@gmail.com
                      phoneNumber1: '+46701234567'
                      phoneNumber2: example
                      eduPersonPrincipalName: kalko@edu.goteborg.se
                items:
                  allOf:
                    - $ref: '#/components/schemas/Student'
                description: Array of Student objects
              pagination:
                allOf:
                  - $ref: '#/components/schemas/Pagination'
                examples:
                  - offset: 0
                    limit: 1
                    total: 100
                description: Pagination information
          examples:
            responseExample:
              summary: Response body example
              value:
                data:
                  - 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
                    gender: Female
                    identityNumber: 20191216-1234
                    identityTemporary: true
                    firstName: Lise
                    lastName: Meitner
                    dateOfBirth: '2019-12-16'
                    address:
                      postalAddress: Dalvägen 14
                      postalCode: 169 56
                      postalCity: Solna
                      countryCode: SWE
                      municipalityCode: '0184'
                    emailAddress1: lise@meitner.se
                    emailAddress2: lise@gmail.com
                    phoneNumber1: '+46701234567'
                    phoneNumber2: example
                    eduPersonPrincipalName: kalko@edu.goteborg.se
                pagination:
                  offset: 0
                  limit: 1
                  total: 100
    Error400ResponseBody:
      description: Bad Request - The request was malformed or contained invalid parameters
      headers:
        RateLimit-Limit:
          description: >-
            The maximum number of API requests you're permitted to make per
            hour.
          schema:
            type: integer
            examples:
              - 5000
        RateLimit-Remaining:
          description: >-
            The number of API requests remaining in the current rate limit
            window.
          schema:
            type: integer
            examples:
              - 4999
        RateLimit-Reset:
          description: >-
            The time at which the current rate limit window resets in UTC epoch
            milliseconds.
          schema:
            type: string
            examples:
              - '1728316800000'
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                allOf:
                  - $ref: '#/components/schemas/Error'
                examples:
                  - code: BadRequest
                    message: The request contains invalid parameters or malformed data
                    requestID: 550e8400-e29b-41d4-a716-446655440000
            required:
              - error
          examples:
            errorExample:
              summary: Bad Request error example
              value:
                error:
                  code: BadRequest
                  message: The request contains invalid parameters or malformed data
                  requestID: 550e8400-e29b-41d4-a716-446655440000
    Error401ResponseBody:
      description: Unauthorized - The request is missing valid authentication credentials
      headers:
        RateLimit-Limit:
          description: >-
            The maximum number of API requests you're permitted to make per
            hour.
          schema:
            type: integer
            examples:
              - 5000
        RateLimit-Remaining:
          description: >-
            The number of API requests remaining in the current rate limit
            window.
          schema:
            type: integer
            examples:
              - 4999
        RateLimit-Reset:
          description: >-
            The time at which the current rate limit window resets in UTC epoch
            milliseconds.
          schema:
            type: string
            examples:
              - '1728316800000'
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                allOf:
                  - $ref: '#/components/schemas/Error'
                examples:
                  - code: BadRequest
                    message: The request contains invalid parameters or malformed data
                    requestID: 550e8400-e29b-41d4-a716-446655440000
            required:
              - error
          examples:
            errorExample:
              summary: Unauthorized error example
              value:
                error:
                  code: Unauthorized
                  message: Authentication credentials are missing or invalid
                  requestID: 550e8400-e29b-41d4-a716-446655440000
    Error403ResponseBody:
      description: >-
        Forbidden - Request is authenticated, but the user is not allowed to
        perform the operation
      headers:
        RateLimit-Limit:
          description: >-
            The maximum number of API requests you're permitted to make per
            hour.
          schema:
            type: integer
            examples:
              - 5000
        RateLimit-Remaining:
          description: >-
            The number of API requests remaining in the current rate limit
            window.
          schema:
            type: integer
            examples:
              - 4999
        RateLimit-Reset:
          description: >-
            The time at which the current rate limit window resets in UTC epoch
            milliseconds.
          schema:
            type: string
            examples:
              - '1728316800000'
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                allOf:
                  - $ref: '#/components/schemas/Error'
                examples:
                  - code: BadRequest
                    message: The request contains invalid parameters or malformed data
                    requestID: 550e8400-e29b-41d4-a716-446655440000
            required:
              - error
          examples:
            errorExample:
              summary: Forbidden error example
              value:
                error:
                  code: Forbidden
                  message: You do not have permission to perform this operation
                  requestID: 550e8400-e29b-41d4-a716-446655440000
    Error404ResponseBody:
      description: Not Found - The requested resource does not exist
      headers:
        RateLimit-Limit:
          description: >-
            The maximum number of API requests you're permitted to make per
            hour.
          schema:
            type: integer
            examples:
              - 5000
        RateLimit-Remaining:
          description: >-
            The number of API requests remaining in the current rate limit
            window.
          schema:
            type: integer
            examples:
              - 4999
        RateLimit-Reset:
          description: >-
            The time at which the current rate limit window resets in UTC epoch
            milliseconds.
          schema:
            type: string
            examples:
              - '1728316800000'
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                allOf:
                  - $ref: '#/components/schemas/Error'
                examples:
                  - code: BadRequest
                    message: The request contains invalid parameters or malformed data
                    requestID: 550e8400-e29b-41d4-a716-446655440000
            required:
              - error
          examples:
            errorExample:
              summary: Not Found error example
              value:
                error:
                  code: NotFound
                  message: The requested resource could not be found
                  requestID: 550e8400-e29b-41d4-a716-446655440000
    Error409ResponseBody:
      description: Conflict - The request could not be completed due to a conflict
      headers:
        RateLimit-Limit:
          description: >-
            The maximum number of API requests you're permitted to make per
            hour.
          schema:
            type: integer
            examples:
              - 5000
        RateLimit-Remaining:
          description: >-
            The number of API requests remaining in the current rate limit
            window.
          schema:
            type: integer
            examples:
              - 4999
        RateLimit-Reset:
          description: >-
            The time at which the current rate limit window resets in UTC epoch
            milliseconds.
          schema:
            type: string
            examples:
              - '1728316800000'
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                allOf:
                  - $ref: '#/components/schemas/Error'
                examples:
                  - code: BadRequest
                    message: The request contains invalid parameters or malformed data
                    requestID: 550e8400-e29b-41d4-a716-446655440000
            required:
              - error
          examples:
            errorExample:
              summary: Conflict error example
              value:
                error:
                  code: Conflict
                  message: The request conflicts with the current state of the resource
                  requestID: 550e8400-e29b-41d4-a716-446655440000
    StudentSearch422ResponseBody:
      description: >-
        Validation error for Student Search operation - request data failed
        validation
      headers:
        RateLimit-Limit:
          description: >-
            The maximum number of API requests you're permitted to make per
            hour.
          schema:
            type: integer
            examples:
              - 5000
        RateLimit-Remaining:
          description: >-
            The number of API requests remaining in the current rate limit
            window.
          schema:
            type: integer
            examples:
              - 4999
        RateLimit-Reset:
          description: >-
            The time at which the current rate limit window resets in UTC epoch
            milliseconds.
          schema:
            type: string
            examples:
              - '1728316800000'
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                allOf:
                  - $ref: '#/components/schemas/Error'
                examples:
                  - code: UnprocessableEntity
                    message: Validation failed for Student Search endpoint
                    requestID: 550e8400-e29b-41d4-a716-446655440000
            required:
              - error
          examples:
            validationError:
              summary: Validation error example
              value:
                error:
                  code: UnprocessableEntity
                  message: Validation failed for Student Search endpoint
                  requestID: 550e8400-e29b-41d4-a716-446655440000
    Error429ResponseBody:
      description: Too Many Requests - When the rate limit has been exceeded
      headers:
        RateLimit-Limit:
          description: >-
            The maximum number of API requests you're permitted to make per
            hour.
          schema:
            type: integer
            examples:
              - 5000
        RateLimit-Remaining:
          description: >-
            The number of API requests remaining in the current rate limit
            window.
          schema:
            type: integer
            examples:
              - 4999
        RateLimit-Reset:
          description: >-
            The time at which the current rate limit window resets in UTC epoch
            milliseconds.
          schema:
            type: string
            examples:
              - '1728316800000'
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                allOf:
                  - $ref: '#/components/schemas/Error'
                examples:
                  - code: BadRequest
                    message: The request contains invalid parameters or malformed data
                    requestID: 550e8400-e29b-41d4-a716-446655440000
            required:
              - error
          examples:
            errorExample:
              summary: Rate Limited error example
              value:
                error:
                  code: RateLimited
                  message: Too many requests - rate limit exceeded
                  requestID: 550e8400-e29b-41d4-a716-446655440000
    Error500ResponseBody:
      description: Internal Server Error - An unexpected server error occurred
      headers:
        RateLimit-Limit:
          description: >-
            The maximum number of API requests you're permitted to make per
            hour.
          schema:
            type: integer
            examples:
              - 5000
        RateLimit-Remaining:
          description: >-
            The number of API requests remaining in the current rate limit
            window.
          schema:
            type: integer
            examples:
              - 4999
        RateLimit-Reset:
          description: >-
            The time at which the current rate limit window resets in UTC epoch
            milliseconds.
          schema:
            type: string
            examples:
              - '1728316800000'
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                allOf:
                  - $ref: '#/components/schemas/Error'
                examples:
                  - code: BadRequest
                    message: The request contains invalid parameters or malformed data
                    requestID: 550e8400-e29b-41d4-a716-446655440000
            required:
              - error
          examples:
            errorExample:
              summary: Internal Server error example
              value:
                error:
                  code: Internal
                  message: An unexpected server error occurred
                  requestID: 550e8400-e29b-41d4-a716-446655440000
  schemas:
    StudentFilter:
      type: object
      properties:
        equals:
          allOf:
            - $ref: '#/components/schemas/StudentFilterEquals'
          examples:
            - id: 123e4567-e89b-12d3-a456-426614174000
              meta:
                createdAt: '2024-01-15T10:30:00Z'
                createdBy: 123e4567-e89b-12d3-a456-426614174000
                updatedAt: '2024-01-15T10:30:00Z'
                updatedBy: 123e4567-e89b-12d3-a456-426614174000
              external:
                sourceID: example
                source: example
              identityNumber: example
              identityTemporary: true
              firstName: example
              lastName: example
              dateOfBirth: '2024-01-15'
              address:
                postalAddress: example
                postalCode: example
                postalCity: example
                countryCode: example
                municipalityCode: example
              emailAddress1: example
              emailAddress2: example
              phoneNumber1: example
              phoneNumber2: example
              eduPersonPrincipalName: example
            - null
          description: Equality filters for Student
          nullable: true
        notEquals:
          allOf:
            - $ref: '#/components/schemas/StudentFilterEquals'
          examples:
            - id: 123e4567-e89b-12d3-a456-426614174000
              meta:
                createdAt: '2024-01-15T10:30:00Z'
                createdBy: 123e4567-e89b-12d3-a456-426614174000
                updatedAt: '2024-01-15T10:30:00Z'
                updatedBy: 123e4567-e89b-12d3-a456-426614174000
              external:
                sourceID: example
                source: example
              identityNumber: example
              identityTemporary: true
              firstName: example
              lastName: example
              dateOfBirth: '2024-01-15'
              address:
                postalAddress: example
                postalCode: example
                postalCity: example
                countryCode: example
                municipalityCode: example
              emailAddress1: example
              emailAddress2: example
              phoneNumber1: example
              phoneNumber2: example
              eduPersonPrincipalName: example
            - null
          description: Inequality filters for Student
          nullable: true
        greaterThan:
          allOf:
            - $ref: '#/components/schemas/StudentFilterRange'
          examples:
            - meta:
                createdAt: '2024-01-15T10:30:00Z'
                updatedAt: '2024-01-15T10:30:00Z'
              dateOfBirth: '2024-01-15'
            - null
          description: Greater than filters for Student
          nullable: true
        smallerThan:
          allOf:
            - $ref: '#/components/schemas/StudentFilterRange'
          examples:
            - meta:
                createdAt: '2024-01-15T10:30:00Z'
                updatedAt: '2024-01-15T10:30:00Z'
              dateOfBirth: '2024-01-15'
            - null
          description: Smaller than filters for Student
          nullable: true
        greaterOrEqual:
          allOf:
            - $ref: '#/components/schemas/StudentFilterRange'
          examples:
            - meta:
                createdAt: '2024-01-15T10:30:00Z'
                updatedAt: '2024-01-15T10:30:00Z'
              dateOfBirth: '2024-01-15'
            - null
          description: Greater than or equal filters for Student
          nullable: true
        smallerOrEqual:
          allOf:
            - $ref: '#/components/schemas/StudentFilterRange'
          examples:
            - meta:
                createdAt: '2024-01-15T10:30:00Z'
                updatedAt: '2024-01-15T10:30:00Z'
              dateOfBirth: '2024-01-15'
            - null
          description: Smaller than or equal filters for Student
          nullable: true
        contains:
          allOf:
            - $ref: '#/components/schemas/StudentFilterContains'
          examples:
            - id:
                - 123e4567-e89b-12d3-a456-426614174000
              meta:
                createdBy:
                  - 123e4567-e89b-12d3-a456-426614174000
                updatedBy:
                  - 123e4567-e89b-12d3-a456-426614174000
              external:
                sourceID:
                  - example
                source:
                  - example
              identityNumber:
                - example
              identityTemporary:
                - true
              firstName:
                - example
              lastName:
                - example
              dateOfBirth:
                - '2024-01-15'
              address:
                postalAddress:
                  - example
                postalCode:
                  - example
                postalCity:
                  - example
                countryCode:
                  - example
                municipalityCode:
                  - example
              emailAddress1:
                - example
              emailAddress2:
                - example
              phoneNumber1:
                - example
              phoneNumber2:
                - example
              eduPersonPrincipalName:
                - example
            - null
          description: Contains filters for Student
          nullable: true
        notContains:
          allOf:
            - $ref: '#/components/schemas/StudentFilterContains'
          examples:
            - id:
                - 123e4567-e89b-12d3-a456-426614174000
              meta:
                createdBy:
                  - 123e4567-e89b-12d3-a456-426614174000
                updatedBy:
                  - 123e4567-e89b-12d3-a456-426614174000
              external:
                sourceID:
                  - example
                source:
                  - example
              identityNumber:
                - example
              identityTemporary:
                - true
              firstName:
                - example
              lastName:
                - example
              dateOfBirth:
                - '2024-01-15'
              address:
                postalAddress:
                  - example
                postalCode:
                  - example
                postalCity:
                  - example
                countryCode:
                  - example
                municipalityCode:
                  - example
              emailAddress1:
                - example
              emailAddress2:
                - example
              phoneNumber1:
                - example
              phoneNumber2:
                - example
              eduPersonPrincipalName:
                - example
            - null
          description: Not contains filters for Student
          nullable: true
        like:
          allOf:
            - $ref: '#/components/schemas/StudentFilterLike'
          examples:
            - external:
                sourceID: example
                source: example
              identityNumber: example
              firstName: example
              lastName: example
              address:
                postalAddress: example
                postalCode: example
                postalCity: example
                countryCode: example
                municipalityCode: example
              emailAddress1: example
              emailAddress2: example
              phoneNumber1: example
              phoneNumber2: example
              eduPersonPrincipalName: example
            - null
          description: LIKE filters for Student
          nullable: true
        notLike:
          allOf:
            - $ref: '#/components/schemas/StudentFilterLike'
          examples:
            - external:
                sourceID: example
                source: example
              identityNumber: example
              firstName: example
              lastName: example
              address:
                postalAddress: example
                postalCode: example
                postalCity: example
                countryCode: example
                municipalityCode: example
              emailAddress1: example
              emailAddress2: example
              phoneNumber1: example
              phoneNumber2: example
              eduPersonPrincipalName: example
            - null
          description: NOT LIKE filters for Student
          nullable: true
        'null':
          allOf:
            - $ref: '#/components/schemas/StudentFilterNull'
          examples:
            - meta:
                createdBy: true
                updatedAt: true
                updatedBy: true
              external:
                sourceID: true
                source: true
              gender: true
              dateOfBirth: true
              address:
                postalAddress: true
                postalCode: true
                postalCity: true
                countryCode: true
                municipalityCode: true
              emailAddress1: true
              emailAddress2: true
              phoneNumber1: true
              phoneNumber2: true
              eduPersonPrincipalName: true
            - null
          description: Null filters for Student
          nullable: true
        notNull:
          allOf:
            - $ref: '#/components/schemas/StudentFilterNull'
          examples:
            - meta:
                createdBy: true
                updatedAt: true
                updatedBy: true
              external:
                sourceID: true
                source: true
              gender: true
              dateOfBirth: true
              address:
                postalAddress: true
                postalCode: true
                postalCity: true
                countryCode: true
                municipalityCode: true
              emailAddress1: true
              emailAddress2: true
              phoneNumber1: true
              phoneNumber2: true
              eduPersonPrincipalName: true
            - null
          description: Not null filters for Student
          nullable: true
        orCondition:
          type: boolean
          examples:
            - true
          description: >-
            OrCondition decides if this filter is within an OR-condition or
            AND-condition
        nestedFilters:
          type: array
          examples:
            - - equals:
                  id: 123e4567-e89b-12d3-a456-426614174000
                  meta:
                    createdAt: '2024-01-15T10:30:00Z'
                    createdBy: 123e4567-e89b-12d3-a456-426614174000
                    updatedAt: '2024-01-15T10:30:00Z'
                    updatedBy: 123e4567-e89b-12d3-a456-426614174000
                  external:
                    sourceID: example
                    source: example
                  identityNumber: example
                  identityTemporary: true
                  firstName: example
                  lastName: example
                  dateOfBirth: '2024-01-15'
                  address:
                    postalAddress: example
                    postalCode: example
                    postalCity: example
                    countryCode: example
                    municipalityCode: example
                  emailAddress1: example
                  emailAddress2: example
                  phoneNumber1: example
                  phoneNumber2: example
                  eduPersonPrincipalName: example
                notEquals:
                  id: 123e4567-e89b-12d3-a456-426614174000
                  meta:
                    createdAt: '2024-01-15T10:30:00Z'
                    createdBy: 123e4567-e89b-12d3-a456-426614174000
                    updatedAt: '2024-01-15T10:30:00Z'
                    updatedBy: 123e4567-e89b-12d3-a456-426614174000
                  external:
                    sourceID: example
                    source: example
                  identityNumber: example
                  identityTemporary: true
                  firstName: example
                  lastName: example
                  dateOfBirth: '2024-01-15'
                  address:
                    postalAddress: example
                    postalCode: example
                    postalCity: example
                    countryCode: example
                    municipalityCode: example
                  emailAddress1: example
                  emailAddress2: example
                  phoneNumber1: example
                  phoneNumber2: example
                  eduPersonPrincipalName: example
                greaterThan:
                  meta:
                    createdAt: '2024-01-15T10:30:00Z'
                    updatedAt: '2024-01-15T10:30:00Z'
                  dateOfBirth: '2024-01-15'
                smallerThan:
                  meta:
                    createdAt: '2024-01-15T10:30:00Z'
                    updatedAt: '2024-01-15T10:30:00Z'
                  dateOfBirth: '2024-01-15'
                greaterOrEqual:
                  meta:
                    createdAt: '2024-01-15T10:30:00Z'
                    updatedAt: '2024-01-15T10:30:00Z'
                  dateOfBirth: '2024-01-15'
                smallerOrEqual:
                  meta:
                    createdAt: '2024-01-15T10:30:00Z'
                    updatedAt: '2024-01-15T10:30:00Z'
                  dateOfBirth: '2024-01-15'
                contains:
                  id:
                    - 123e4567-e89b-12d3-a456-426614174000
                  meta:
                    createdBy:
                      - 123e4567-e89b-12d3-a456-426614174000
                    updatedBy:
                      - 123e4567-e89b-12d3-a456-426614174000
                  external:
                    sourceID:
                      - example
                    source:
                      - example
                  identityNumber:
                    - example
                  identityTemporary:
                    - true
                  firstName:
                    - example
                  lastName:
                    - example
                  dateOfBirth:
                    - '2024-01-15'
                  address:
                    postalAddress:
                      - example
                    postalCode:
                      - example
                    postalCity:
                      - example
                    countryCode:
                      - example
                    municipalityCode:
                      - example
                  emailAddress1:
                    - example
                  emailAddress2:
                    - example
                  phoneNumber1:
                    - example
                  phoneNumber2:
                    - example
                  eduPersonPrincipalName:
                    - example
                notContains:
                  id:
                    - 123e4567-e89b-12d3-a456-426614174000
                  meta:
                    createdBy:
                      - 123e4567-e89b-12d3-a456-426614174000
                    updatedBy:
                      - 123e4567-e89b-12d3-a456-426614174000
                  external:
                    sourceID:
                      - example
                    source:
                      - example
                  identityNumber:
                    - example
                  identityTemporary:
                    - true
                  firstName:
                    - example
                  lastName:
                    - example
                  dateOfBirth:
                    - '2024-01-15'
                  address:
                    postalAddress:
                      - example
                    postalCode:
                      - example
                    postalCity:
                      - example
                    countryCode:
                      - example
                    municipalityCode:
                      - example
                  emailAddress1:
                    - example
                  emailAddress2:
                    - example
                  phoneNumber1:
                    - example
                  phoneNumber2:
                    - example
                  eduPersonPrincipalName:
                    - example
                like:
                  external:
                    sourceID: example
                    source: example
                  identityNumber: example
                  firstName: example
                  lastName: example
                  address:
                    postalAddress: example
                    postalCode: example
                    postalCity: example
                    countryCode: example
                    municipalityCode: example
                  emailAddress1: example
                  emailAddress2: example
                  phoneNumber1: example
                  phoneNumber2: example
                  eduPersonPrincipalName: example
                notLike:
                  external:
                    sourceID: example
                    source: example
                  identityNumber: example
                  firstName: example
                  lastName: example
                  address:
                    postalAddress: example
                    postalCode: example
                    postalCity: example
                    countryCode: example
                    municipalityCode: example
                  emailAddress1: example
                  emailAddress2: example
                  phoneNumber1: example
                  phoneNumber2: example
                  eduPersonPrincipalName: example
                'null':
                  meta:
                    createdBy: true
                    updatedAt: true
                    updatedBy: true
                  external:
                    sourceID: true
                    source: true
                  gender: true
                  dateOfBirth: true
                  address:
                    postalAddress: true
                    postalCode: true
                    postalCity: true
                    countryCode: true
                    municipalityCode: true
                  emailAddress1: true
                  emailAddress2: true
                  phoneNumber1: true
                  phoneNumber2: true
                  eduPersonPrincipalName: true
                notNull:
                  meta:
                    createdBy: true
                    updatedAt: true
                    updatedBy: true
                  external:
                    sourceID: true
                    source: true
                  gender: true
                  dateOfBirth: true
                  address:
                    postalAddress: true
                    postalCode: true
                    postalCity: true
                    countryCode: true
                    municipalityCode: true
                  emailAddress1: true
                  emailAddress2: true
                  phoneNumber1: true
                  phoneNumber2: true
                  eduPersonPrincipalName: true
                orCondition: true
          items:
            allOf:
              - $ref: '#/components/schemas/StudentFilter'
          description: NestedFilters of the Student, useful for more complex filters
      required:
        - orCondition
      description: Filter object for Student
    Student:
      type: object
      properties:
        id:
          type: string
          examples:
            - 123e4567-e89b-12d3-a456-426614174000
          format: uuid
          description: Unique identifier for the Student
        meta:
          allOf:
            - $ref: '#/components/schemas/Meta'
          examples:
            - createdAt: '2024-01-15T10:30:00Z'
              createdBy: 987fcdeb-51a2-43d1-b567-123456789abc
              updatedAt: '2024-01-15T14:45:00Z'
              updatedBy: 987fcdeb-51a2-43d1-b567-123456789abc
          description: Metadata information for the Student
        external:
          allOf:
            - $ref: '#/components/schemas/External'
          examples:
            - sourceID: '12345678'
              source: ExternalIntegrationAPI
            - null
          description: >-
            External is a reusable object that can be used to store external
            information about the student from another system, used for
            third-party integration tracking.
          nullable: true
        gender:
          allOf:
            - $ref: '#/components/schemas/Gender'
          examples:
            - Female
            - null
          description: The gender of the student
          nullable: true
        identityNumber:
          type: string
          examples:
            - 20191216-1234
          description: >-
            The identity number of the student in the format YYYYMMDD-NNNN, must
            be unique within the organization.
        identityTemporary:
          type: boolean
          examples:
            - true
          description: If the identity number is temporary for the student
          default: false
        firstName:
          type: string
          examples:
            - Lise
          description: The first name of the student
        lastName:
          type: string
          examples:
            - Meitner
          description: The last name of the student
        dateOfBirth:
          type: string
          examples:
            - '2019-12-16'
            - null
          format: date
          description: The date of birth of the student
          nullable: true
        address:
          allOf:
            - $ref: '#/components/schemas/Address'
          examples:
            - postalAddress: Dalvägen 14
              postalCode: 169 56
              postalCity: Solna
              countryCode: SWE
              municipalityCode: '0184'
          description: The address of the student
        emailAddress1:
          type: string
          examples:
            - lise@meitner.se
            - null
          description: >
            The primary email address of the student, will be used for
            communication with the student from the system and must be unique
            within the organization.

            Can be used to login to the system if password-authentication is
            enabled for the organization.
          nullable: true
        emailAddress2:
          type: string
          examples:
            - lise@gmail.com
            - null
          description: >-
            The secondary email address of the student, will not be used within
            the system, but will be displayed for contact information.
          nullable: true
        phoneNumber1:
          type: string
          examples:
            - '+46701234567'
            - null
          description: >-
            The primary phone number of the student, will be used for
            communication with the student from the system.
          nullable: true
        phoneNumber2:
          type: string
          examples:
            - example
            - null
          description: >-
            The secondary phone number of the student, will not be used within
            the system, but will be displayed for contact information.
          nullable: true
        eduPersonPrincipalName:
          type: string
          examples:
            - kalko@edu.goteborg.se
            - null
          description: >
            The eduPersonPrincipalName (EPPN) of the student, as defined in the
            SS12000:2020 standard (TK450). A globally unique, persistent
            identifier used to identify users across Swedish e-services
            (e-tjänster).

            Format: `localIdentifier@domain` — e.g. `kalko@edu.goteborg.se`
          nullable: true
      required:
        - id
        - identityNumber
        - firstName
        - lastName
      description: >-
        Student holds the personal information about a student, information
        about the school is stored in the StudentPlacement-resource.
    Pagination:
      type: object
      properties:
        offset:
          type: integer
          examples:
            - 0
          description: Number of items to skip from the beginning of the result set
        limit:
          type: integer
          examples:
            - 1
          description: Maximum number of items to return in the result set
        total:
          type: integer
          examples:
            - 100
          description: Total number of items available for pagination
      required:
        - offset
        - limit
        - total
      description: Pagination parameters for controlling result sets in list operations
    Error:
      type: object
      properties:
        code:
          allOf:
            - $ref: '#/components/schemas/ErrorCode'
          description: The specific error code indicating the type of error
        message:
          type: string
          examples:
            - example
          description: Human-readable error message providing additional details
        requestID:
          type: string
          examples:
            - 550e8400-e29b-41d4-a716-446655440000
          description: >-
            Unique identifier for the request that generated this error, used
            for logging and debugging
      required:
        - code
        - message
        - requestID
      description: >-
        Standard error response object containing error code, message, and
        request ID
    StudentFilterEquals:
      type: object
      properties:
        id:
          type: string
          examples:
            - 123e4567-e89b-12d3-a456-426614174000
            - null
          format: uuid
          description: Unique identifier for the Student
          nullable: true
        meta:
          allOf:
            - $ref: '#/components/schemas/MetaFilterEquals'
          examples:
            - createdAt: '2024-01-15T10:30:00Z'
              createdBy: 123e4567-e89b-12d3-a456-426614174000
              updatedAt: '2024-01-15T10:30:00Z'
              updatedBy: 123e4567-e89b-12d3-a456-426614174000
            - null
          description: Metadata information for the Student
          nullable: true
        external:
          allOf:
            - $ref: '#/components/schemas/ExternalFilterEquals'
          examples:
            - sourceID: example
              source: example
            - null
          description: >-
            External is a reusable object that can be used to store external
            information about the student from another system, used for
            third-party integration tracking.
          nullable: true
        gender:
          allOf:
            - $ref: '#/components/schemas/Gender'
          description: The gender of the student
          nullable: true
        identityNumber:
          type: string
          examples:
            - example
            - null
          description: >-
            The identity number of the student in the format YYYYMMDD-NNNN, must
            be unique within the organization.
          nullable: true
        identityTemporary:
          type: boolean
          examples:
            - true
            - null
          description: If the identity number is temporary for the student
          nullable: true
        firstName:
          type: string
          examples:
            - example
            - null
          description: The first name of the student
          nullable: true
        lastName:
          type: string
          examples:
            - example
            - null
          description: The last name of the student
          nullable: true
        dateOfBirth:
          type: string
          examples:
            - '2024-01-15'
            - null
          format: date
          description: The date of birth of the student
          nullable: true
        address:
          allOf:
            - $ref: '#/components/schemas/AddressFilterEquals'
          examples:
            - postalAddress: example
              postalCode: example
              postalCity: example
              countryCode: example
              municipalityCode: example
            - null
          description: The address of the student
          nullable: true
        emailAddress1:
          type: string
          examples:
            - example
            - null
          description: >
            The primary email address of the student, will be used for
            communication with the student from the system and must be unique
            within the organization.

            Can be used to login to the system if password-authentication is
            enabled for the organization.
          nullable: true
        emailAddress2:
          type: string
          examples:
            - example
            - null
          description: >-
            The secondary email address of the student, will not be used within
            the system, but will be displayed for contact information.
          nullable: true
        phoneNumber1:
          type: string
          examples:
            - example
            - null
          description: >-
            The primary phone number of the student, will be used for
            communication with the student from the system.
          nullable: true
        phoneNumber2:
          type: string
          examples:
            - example
            - null
          description: >-
            The secondary phone number of the student, will not be used within
            the system, but will be displayed for contact information.
          nullable: true
        eduPersonPrincipalName:
          type: string
          examples:
            - example
            - null
          description: >
            The eduPersonPrincipalName (EPPN) of the student, as defined in the
            SS12000:2020 standard (TK450). A globally unique, persistent
            identifier used to identify users across Swedish e-services
            (e-tjänster).

            Format: `localIdentifier@domain` — e.g. `kalko@edu.goteborg.se`
          nullable: true
      description: Equality/Inequality filter fields for Student
    StudentFilterRange:
      type: object
      properties:
        meta:
          allOf:
            - $ref: '#/components/schemas/MetaFilterRange'
          examples:
            - createdAt: '2024-01-15T10:30:00Z'
              updatedAt: '2024-01-15T10:30:00Z'
            - null
          description: Metadata information for the Student
          nullable: true
        external:
          allOf:
            - $ref: '#/components/schemas/ExternalFilterRange'
          description: >-
            External is a reusable object that can be used to store external
            information about the student from another system, used for
            third-party integration tracking.
          nullable: true
        dateOfBirth:
          type: string
          examples:
            - '2024-01-15'
            - null
          format: date
          description: The date of birth of the student
          nullable: true
        address:
          allOf:
            - $ref: '#/components/schemas/AddressFilterRange'
          description: The address of the student
          nullable: true
      description: Range filter fields for Student
    StudentFilterContains:
      type: object
      properties:
        id:
          type: array
          examples:
            - - 123e4567-e89b-12d3-a456-426614174000
          items:
            type: string
            format: uuid
          description: Unique identifier for the Student
        meta:
          allOf:
            - $ref: '#/components/schemas/MetaFilterContains'
          examples:
            - createdBy:
                - 123e4567-e89b-12d3-a456-426614174000
              updatedBy:
                - 123e4567-e89b-12d3-a456-426614174000
            - null
          description: Metadata information for the Student
          nullable: true
        external:
          allOf:
            - $ref: '#/components/schemas/ExternalFilterContains'
          examples:
            - sourceID:
                - example
              source:
                - example
            - null
          description: >-
            External is a reusable object that can be used to store external
            information about the student from another system, used for
            third-party integration tracking.
          nullable: true
        gender:
          type: array
          items:
            allOf:
              - $ref: '#/components/schemas/Gender'
          description: The gender of the student
        identityNumber:
          type: array
          examples:
            - - example
          items:
            type: string
          description: >-
            The identity number of the student in the format YYYYMMDD-NNNN, must
            be unique within the organization.
        identityTemporary:
          type: array
          examples:
            - - true
          items:
            type: boolean
          description: If the identity number is temporary for the student
        firstName:
          type: array
          examples:
            - - example
          items:
            type: string
          description: The first name of the student
        lastName:
          type: array
          examples:
            - - example
          items:
            type: string
          description: The last name of the student
        dateOfBirth:
          type: array
          examples:
            - - '2024-01-15'
          items:
            type: string
            format: date
          description: The date of birth of the student
        address:
          allOf:
            - $ref: '#/components/schemas/AddressFilterContains'
          examples:
            - postalAddress:
                - example
              postalCode:
                - example
              postalCity:
                - example
              countryCode:
                - example
              municipalityCode:
                - example
            - null
          description: The address of the student
          nullable: true
        emailAddress1:
          type: array
          examples:
            - - example
          items:
            type: string
          description: >
            The primary email address of the student, will be used for
            communication with the student from the system and must be unique
            within the organization.

            Can be used to login to the system if password-authentication is
            enabled for the organization.
        emailAddress2:
          type: array
          examples:
            - - example
          items:
            type: string
          description: >-
            The secondary email address of the student, will not be used within
            the system, but will be displayed for contact information.
        phoneNumber1:
          type: array
          examples:
            - - example
          items:
            type: string
          description: >-
            The primary phone number of the student, will be used for
            communication with the student from the system.
        phoneNumber2:
          type: array
          examples:
            - - example
          items:
            type: string
          description: >-
            The secondary phone number of the student, will not be used within
            the system, but will be displayed for contact information.
        eduPersonPrincipalName:
          type: array
          examples:
            - - example
          items:
            type: string
          description: >
            The eduPersonPrincipalName (EPPN) of the student, as defined in the
            SS12000:2020 standard (TK450). A globally unique, persistent
            identifier used to identify users across Swedish e-services
            (e-tjänster).

            Format: `localIdentifier@domain` — e.g. `kalko@edu.goteborg.se`
      description: Contains filter fields for Student
    StudentFilterLike:
      type: object
      properties:
        meta:
          allOf:
            - $ref: '#/components/schemas/MetaFilterLike'
          description: Metadata information for the Student
          nullable: true
        external:
          allOf:
            - $ref: '#/components/schemas/ExternalFilterLike'
          examples:
            - sourceID: example
              source: example
            - null
          description: >-
            External is a reusable object that can be used to store external
            information about the student from another system, used for
            third-party integration tracking.
          nullable: true
        identityNumber:
          type: string
          examples:
            - example
            - null
          description: >-
            The identity number of the student in the format YYYYMMDD-NNNN, must
            be unique within the organization.
          nullable: true
        firstName:
          type: string
          examples:
            - example
            - null
          description: The first name of the student
          nullable: true
        lastName:
          type: string
          examples:
            - example
            - null
          description: The last name of the student
          nullable: true
        address:
          allOf:
            - $ref: '#/components/schemas/AddressFilterLike'
          examples:
            - postalAddress: example
              postalCode: example
              postalCity: example
              countryCode: example
              municipalityCode: example
            - null
          description: The address of the student
          nullable: true
        emailAddress1:
          type: string
          examples:
            - example
            - null
          description: >
            The primary email address of the student, will be used for
            communication with the student from the system and must be unique
            within the organization.

            Can be used to login to the system if password-authentication is
            enabled for the organization.
          nullable: true
        emailAddress2:
          type: string
          examples:
            - example
            - null
          description: >-
            The secondary email address of the student, will not be used within
            the system, but will be displayed for contact information.
          nullable: true
        phoneNumber1:
          type: string
          examples:
            - example
            - null
          description: >-
            The primary phone number of the student, will be used for
            communication with the student from the system.
          nullable: true
        phoneNumber2:
          type: string
          examples:
            - example
            - null
          description: >-
            The secondary phone number of the student, will not be used within
            the system, but will be displayed for contact information.
          nullable: true
        eduPersonPrincipalName:
          type: string
          examples:
            - example
            - null
          description: >
            The eduPersonPrincipalName (EPPN) of the student, as defined in the
            SS12000:2020 standard (TK450). A globally unique, persistent
            identifier used to identify users across Swedish e-services
            (e-tjänster).

            Format: `localIdentifier@domain` — e.g. `kalko@edu.goteborg.se`
          nullable: true
      description: LIKE filter fields for Student
    StudentFilterNull:
      type: object
      properties:
        meta:
          allOf:
            - $ref: '#/components/schemas/MetaFilterNull'
          examples:
            - createdBy: true
              updatedAt: true
              updatedBy: true
            - null
          description: Metadata information for the Student
          nullable: true
        external:
          allOf:
            - $ref: '#/components/schemas/ExternalFilterNull'
          examples:
            - sourceID: true
              source: true
            - null
          description: >-
            External is a reusable object that can be used to store external
            information about the student from another system, used for
            third-party integration tracking.
          nullable: true
        gender:
          type: boolean
          examples:
            - true
            - null
          description: The gender of the student
          nullable: true
        dateOfBirth:
          type: boolean
          examples:
            - true
            - null
          description: The date of birth of the student
          nullable: true
        address:
          allOf:
            - $ref: '#/components/schemas/AddressFilterNull'
          examples:
            - postalAddress: true
              postalCode: true
              postalCity: true
              countryCode: true
              municipalityCode: true
            - null
          description: The address of the student
          nullable: true
        emailAddress1:
          type: boolean
          examples:
            - true
            - null
          description: >
            The primary email address of the student, will be used for
            communication with the student from the system and must be unique
            within the organization.

            Can be used to login to the system if password-authentication is
            enabled for the organization.
          nullable: true
        emailAddress2:
          type: boolean
          examples:
            - true
            - null
          description: >-
            The secondary email address of the student, will not be used within
            the system, but will be displayed for contact information.
          nullable: true
        phoneNumber1:
          type: boolean
          examples:
            - true
            - null
          description: >-
            The primary phone number of the student, will be used for
            communication with the student from the system.
          nullable: true
        phoneNumber2:
          type: boolean
          examples:
            - true
            - null
          description: >-
            The secondary phone number of the student, will not be used within
            the system, but will be displayed for contact information.
          nullable: true
        eduPersonPrincipalName:
          type: boolean
          examples:
            - true
            - null
          description: >
            The eduPersonPrincipalName (EPPN) of the student, as defined in the
            SS12000:2020 standard (TK450). A globally unique, persistent
            identifier used to identify users across Swedish e-services
            (e-tjänster).

            Format: `localIdentifier@domain` — e.g. `kalko@edu.goteborg.se`
          nullable: true
      description: Null filter fields for Student
    Meta:
      type: object
      properties:
        createdAt:
          type: string
          examples:
            - '2024-01-15T10:30:00Z'
          format: date-time
          description: Timestamp when the resource was created
        createdBy:
          type: string
          examples:
            - 987fcdeb-51a2-43d1-b567-123456789abc
            - null
          format: uuid
          description: User who created the resource
          nullable: true
        updatedAt:
          type: string
          examples:
            - '2024-01-15T14:45:00Z'
            - null
          format: date-time
          description: Timestamp when the resource was last updated
          nullable: true
        updatedBy:
          type: string
          examples:
            - 987fcdeb-51a2-43d1-b567-123456789abc
            - null
          format: uuid
          description: User who last updated the resource
          nullable: true
      required:
        - createdAt
      description: >-
        Meta contains information about the creation and modification of a
        resource for auditing purposes
    External:
      type: object
      properties:
        sourceID:
          type: string
          examples:
            - '12345678'
            - null
          description: The ID of the external source
          nullable: true
        source:
          type: string
          examples:
            - ExternalIntegrationAPI
            - null
          description: The source of the external information
          nullable: true
      description: >-
        External is a reusable object that can be used to store external
        information from another system, used for third-party integration
        tracking.
    Gender:
      type: string
      enum:
        - Female
        - Male
        - Other
      description: The gender of the person
    Address:
      type: object
      properties:
        postalAddress:
          type: string
          examples:
            - Dalvägen 14
            - null
          description: The postal address of the address
          nullable: true
        postalCode:
          type: string
          examples:
            - 169 56
            - null
          description: >-
            The postal code (also known as ZIP or postcode) of the address, used
            together with the city to identify the delivery area.
          nullable: true
        postalCity:
          type: string
          examples:
            - Solna
            - null
          description: The city of the address
          nullable: true
        countryCode:
          type: string
          examples:
            - SWE
            - null
          description: >-
            The ISO 3166-1 alpha-3 country code of the address (e.g. "SWE" for
            Sweden).
          nullable: true
        municipalityCode:
          type: string
          examples:
            - '0184'
            - null
          description: >-
            The Swedish municipality (kommun) code for the address — a
            four-digit code as defined by Statistics Sweden (SCB), e.g. "0184"
            for Solna. Identifies the administrative municipality the address
            belongs to.
          nullable: true
      description: >-
        Address is a reusable object that can be used to store address
        information.
    ErrorCode:
      type: string
      enum:
        - BadRequest
        - Unauthorized
        - Forbidden
        - NotFound
        - Conflict
        - UnprocessableEntity
        - RateLimited
        - Internal
      description: Standard error codes used in API responses
    MetaFilterEquals:
      type: object
      properties:
        createdAt:
          type: string
          examples:
            - '2024-01-15T10:30:00Z'
            - null
          format: date-time
          description: Timestamp when the resource was created
          nullable: true
        createdBy:
          type: string
          examples:
            - 123e4567-e89b-12d3-a456-426614174000
            - null
          format: uuid
          description: User who created the resource
          nullable: true
        updatedAt:
          type: string
          examples:
            - '2024-01-15T10:30:00Z'
            - null
          format: date-time
          description: Timestamp when the resource was last updated
          nullable: true
        updatedBy:
          type: string
          examples:
            - 123e4567-e89b-12d3-a456-426614174000
            - null
          format: uuid
          description: User who last updated the resource
          nullable: true
      description: Equality/Inequality filter fields for Meta
    ExternalFilterEquals:
      type: object
      properties:
        sourceID:
          type: string
          examples:
            - example
            - null
          description: The ID of the external source
          nullable: true
        source:
          type: string
          examples:
            - example
            - null
          description: The source of the external information
          nullable: true
      description: Equality/Inequality filter fields for External
    AddressFilterEquals:
      type: object
      properties:
        postalAddress:
          type: string
          examples:
            - example
            - null
          description: The postal address of the address
          nullable: true
        postalCode:
          type: string
          examples:
            - example
            - null
          description: >-
            The postal code (also known as ZIP or postcode) of the address, used
            together with the city to identify the delivery area.
          nullable: true
        postalCity:
          type: string
          examples:
            - example
            - null
          description: The city of the address
          nullable: true
        countryCode:
          type: string
          examples:
            - example
            - null
          description: >-
            The ISO 3166-1 alpha-3 country code of the address (e.g. "SWE" for
            Sweden).
          nullable: true
        municipalityCode:
          type: string
          examples:
            - example
            - null
          description: >-
            The Swedish municipality (kommun) code for the address — a
            four-digit code as defined by Statistics Sweden (SCB), e.g. "0184"
            for Solna. Identifies the administrative municipality the address
            belongs to.
          nullable: true
      description: Equality/Inequality filter fields for Address
    MetaFilterRange:
      type: object
      properties:
        createdAt:
          type: string
          examples:
            - '2024-01-15T10:30:00Z'
            - null
          format: date-time
          description: Timestamp when the resource was created
          nullable: true
        updatedAt:
          type: string
          examples:
            - '2024-01-15T10:30:00Z'
            - null
          format: date-time
          description: Timestamp when the resource was last updated
          nullable: true
      description: Range filter fields for Meta
    ExternalFilterRange:
      type: object
      description: Range filter fields for External
    AddressFilterRange:
      type: object
      description: Range filter fields for Address
    MetaFilterContains:
      type: object
      properties:
        createdBy:
          type: array
          examples:
            - - 123e4567-e89b-12d3-a456-426614174000
          items:
            type: string
            format: uuid
          description: User who created the resource
        updatedBy:
          type: array
          examples:
            - - 123e4567-e89b-12d3-a456-426614174000
          items:
            type: string
            format: uuid
          description: User who last updated the resource
      description: Contains filter fields for Meta
    ExternalFilterContains:
      type: object
      properties:
        sourceID:
          type: array
          examples:
            - - example
          items:
            type: string
          description: The ID of the external source
        source:
          type: array
          examples:
            - - example
          items:
            type: string
          description: The source of the external information
      description: Contains filter fields for External
    AddressFilterContains:
      type: object
      properties:
        postalAddress:
          type: array
          examples:
            - - example
          items:
            type: string
          description: The postal address of the address
        postalCode:
          type: array
          examples:
            - - example
          items:
            type: string
          description: >-
            The postal code (also known as ZIP or postcode) of the address, used
            together with the city to identify the delivery area.
        postalCity:
          type: array
          examples:
            - - example
          items:
            type: string
          description: The city of the address
        countryCode:
          type: array
          examples:
            - - example
          items:
            type: string
          description: >-
            The ISO 3166-1 alpha-3 country code of the address (e.g. "SWE" for
            Sweden).
        municipalityCode:
          type: array
          examples:
            - - example
          items:
            type: string
          description: >-
            The Swedish municipality (kommun) code for the address — a
            four-digit code as defined by Statistics Sweden (SCB), e.g. "0184"
            for Solna. Identifies the administrative municipality the address
            belongs to.
      description: Contains filter fields for Address
    MetaFilterLike:
      type: object
      description: LIKE filter fields for Meta
    ExternalFilterLike:
      type: object
      properties:
        sourceID:
          type: string
          examples:
            - example
            - null
          description: The ID of the external source
          nullable: true
        source:
          type: string
          examples:
            - example
            - null
          description: The source of the external information
          nullable: true
      description: LIKE filter fields for External
    AddressFilterLike:
      type: object
      properties:
        postalAddress:
          type: string
          examples:
            - example
            - null
          description: The postal address of the address
          nullable: true
        postalCode:
          type: string
          examples:
            - example
            - null
          description: >-
            The postal code (also known as ZIP or postcode) of the address, used
            together with the city to identify the delivery area.
          nullable: true
        postalCity:
          type: string
          examples:
            - example
            - null
          description: The city of the address
          nullable: true
        countryCode:
          type: string
          examples:
            - example
            - null
          description: >-
            The ISO 3166-1 alpha-3 country code of the address (e.g. "SWE" for
            Sweden).
          nullable: true
        municipalityCode:
          type: string
          examples:
            - example
            - null
          description: >-
            The Swedish municipality (kommun) code for the address — a
            four-digit code as defined by Statistics Sweden (SCB), e.g. "0184"
            for Solna. Identifies the administrative municipality the address
            belongs to.
          nullable: true
      description: LIKE filter fields for Address
    MetaFilterNull:
      type: object
      properties:
        createdBy:
          type: boolean
          examples:
            - true
            - null
          description: User who created the resource
          nullable: true
        updatedAt:
          type: boolean
          examples:
            - true
            - null
          description: Timestamp when the resource was last updated
          nullable: true
        updatedBy:
          type: boolean
          examples:
            - true
            - null
          description: User who last updated the resource
          nullable: true
      description: Null filter fields for Meta
    ExternalFilterNull:
      type: object
      properties:
        sourceID:
          type: boolean
          examples:
            - true
            - null
          description: The ID of the external source
          nullable: true
        source:
          type: boolean
          examples:
            - true
            - null
          description: The source of the external information
          nullable: true
      description: Null filter fields for External
    AddressFilterNull:
      type: object
      properties:
        postalAddress:
          type: boolean
          examples:
            - true
            - null
          description: The postal address of the address
          nullable: true
        postalCode:
          type: boolean
          examples:
            - true
            - null
          description: >-
            The postal code (also known as ZIP or postcode) of the address, used
            together with the city to identify the delivery area.
          nullable: true
        postalCity:
          type: boolean
          examples:
            - true
            - null
          description: The city of the address
          nullable: true
        countryCode:
          type: boolean
          examples:
            - true
            - null
          description: >-
            The ISO 3166-1 alpha-3 country code of the address (e.g. "SWE" for
            Sweden).
          nullable: true
        municipalityCode:
          type: boolean
          examples:
            - true
            - null
          description: >-
            The Swedish municipality (kommun) code for the address — a
            four-digit code as defined by Statistics Sweden (SCB), e.g. "0184"
            for Solna. Identifies the administrative municipality the address
            belongs to.
          nullable: true
      description: Null filter fields for Address
  securitySchemes:
    ClientCredentials:
      type: apiKey
      name: Client-ID
      in: header
    ClientSecret:
      type: apiKey
      name: Client-Secret
      in: header
    OAuth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: /oauth/token
          scopes: {}

````