> ## 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 StudentPlacements

> Search for `StudentPlacements` with filtering capabilities.



## OpenAPI

````yaml https://spec.speakeasy.com/meitner-2u8/api/directory-api-with-code-samples post /student-placement/_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-placement/_search:
    post:
      tags:
        - StudentPlacement
      summary: Search StudentPlacements
      description: Search for `StudentPlacements` with filtering capabilities.
      operationId: StudentPlacementSearch
      parameters:
        - name: limit
          in: query
          description: >-
            The maximum number of StudentPlacements to return (default: 50) when
            searching StudentPlacements
          required: false
          schema:
            type: integer
            examples:
              - 1
            default: 50
        - name: offset
          in: query
          description: >-
            The number of StudentPlacements to skip before starting to return
            results (default: 0) when searching StudentPlacements
          required: false
          schema:
            type: integer
            examples:
              - 0
            default: 0
      requestBody:
        $ref: '#/components/requestBodies/StudentPlacementSearch'
      responses:
        '200':
          $ref: '#/components/responses/StudentPlacementSearch'
          description: >-
            Response for StudentPlacement Search operation - returns filtered
            StudentPlacement results
        '400':
          $ref: '#/components/responses/Error400ResponseBody'
          description: >-
            Bad Request error for StudentPlacement Search operation - request
            contains invalid parameters
        '401':
          $ref: '#/components/responses/Error401ResponseBody'
          description: >-
            Unauthorized error for StudentPlacement Search operation -
            authentication required
        '403':
          $ref: '#/components/responses/Error403ResponseBody'
          description: >-
            Forbidden error for StudentPlacement Search operation - insufficient
            permissions
        '404':
          $ref: '#/components/responses/Error404ResponseBody'
          description: >-
            Not Found error for StudentPlacement Search operation - resource
            does not exist
        '409':
          $ref: '#/components/responses/Error409ResponseBody'
          description: >-
            Conflict error for StudentPlacement Search operation - request
            conflicts with current state
        '422':
          $ref: '#/components/responses/StudentPlacementSearch422ResponseBody'
          description: >-
            Validation error for StudentPlacement Search operation - request
            data failed validation
        '429':
          $ref: '#/components/responses/Error429ResponseBody'
          description: >-
            Rate Limit error for StudentPlacement Search operation - too many
            requests
        '500':
          $ref: '#/components/responses/Error500ResponseBody'
          description: >-
            Internal Server error for StudentPlacement 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.StudentPlacementSearchResponse? res = await
            sdk.StudentPlacements.SearchAsync(
                studentPlacementSearch: new StudentPlacementSearchRequestBody() {
                    Filter = new StudentPlacementSearchFilter() {
                        Equals = new StudentPlacementSearchEquals() {
                            Id = "123e4567-e89b-12d3-a456-426614174000",
                            Meta = new StudentPlacementSearchEqualsMeta() {
                                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 StudentPlacementSearchEqualsExternal() {
                                SourceID = "example",
                                Source = "example",
                            },
                            StudentID = "123e4567-e89b-12d3-a456-426614174000",
                            SchoolID = "123e4567-e89b-12d3-a456-426614174000",
                            HasChildcare = true,
                            ChildcareMaxHours = 42,
                            MotherTongue = "example",
                            SwedishAsSecondLanguage = true,
                            MotherTongueParticipates = true,
                            ModernLanguageInSchoolChoice = "example",
                            ModernLanguageInLanguageChoice = "example",
                            StartDate = DateOnly.Parse("2024-01-15"),
                            EndDate = DateOnly.Parse("2024-01-15"),
                            ArchiveYear = "example",
                            ArchivedAt = System.DateTime.Parse("2024-01-15T10:30:00Z").ToUniversalTime(),
                        },
                        NotEquals = new StudentPlacementSearchNotEquals() {
                            Id = "123e4567-e89b-12d3-a456-426614174000",
                            Meta = new StudentPlacementSearchNotEqualsMeta() {
                                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 StudentPlacementSearchNotEqualsExternal() {
                                SourceID = "example",
                                Source = "example",
                            },
                            StudentID = "123e4567-e89b-12d3-a456-426614174000",
                            SchoolID = "123e4567-e89b-12d3-a456-426614174000",
                            HasChildcare = true,
                            ChildcareMaxHours = 42,
                            MotherTongue = "example",
                            SwedishAsSecondLanguage = true,
                            MotherTongueParticipates = true,
                            ModernLanguageInSchoolChoice = "example",
                            ModernLanguageInLanguageChoice = "example",
                            StartDate = DateOnly.Parse("2024-01-15"),
                            EndDate = DateOnly.Parse("2024-01-15"),
                            ArchiveYear = "example",
                            ArchivedAt = System.DateTime.Parse("2024-01-15T10:30:00Z").ToUniversalTime(),
                        },
                        GreaterThan = new StudentPlacementSearchGreaterThan() {
                            Meta = new StudentPlacementSearchGreaterThanMeta() {
                                CreatedAt = System.DateTime.Parse("2024-01-15T10:30:00Z").ToUniversalTime(),
                                UpdatedAt = System.DateTime.Parse("2024-01-15T10:30:00Z").ToUniversalTime(),
                            },
                            ChildcareMaxHours = 42,
                            StartDate = DateOnly.Parse("2024-01-15"),
                            EndDate = DateOnly.Parse("2024-01-15"),
                            ArchivedAt = System.DateTime.Parse("2024-01-15T10:30:00Z").ToUniversalTime(),
                        },
                        SmallerThan = new StudentPlacementSearchSmallerThan() {
                            Meta = new StudentPlacementSearchSmallerThanMeta() {
                                CreatedAt = System.DateTime.Parse("2024-01-15T10:30:00Z").ToUniversalTime(),
                                UpdatedAt = System.DateTime.Parse("2024-01-15T10:30:00Z").ToUniversalTime(),
                            },
                            ChildcareMaxHours = 42,
                            StartDate = DateOnly.Parse("2024-01-15"),
                            EndDate = DateOnly.Parse("2024-01-15"),
                            ArchivedAt = System.DateTime.Parse("2024-01-15T10:30:00Z").ToUniversalTime(),
                        },
                        GreaterOrEqual = new StudentPlacementSearchGreaterOrEqual() {
                            Meta = new StudentPlacementSearchGreaterOrEqualMeta() {
                                CreatedAt = System.DateTime.Parse("2024-01-15T10:30:00Z").ToUniversalTime(),
                                UpdatedAt = System.DateTime.Parse("2024-01-15T10:30:00Z").ToUniversalTime(),
                            },
                            ChildcareMaxHours = 42,
                            StartDate = DateOnly.Parse("2024-01-15"),
                            EndDate = DateOnly.Parse("2024-01-15"),
                            ArchivedAt = System.DateTime.Parse("2024-01-15T10:30:00Z").ToUniversalTime(),
                        },
                        SmallerOrEqual = new StudentPlacementSearchSmallerOrEqual() {
                            Meta = new StudentPlacementSearchSmallerOrEqualMeta() {
                                CreatedAt = System.DateTime.Parse("2024-01-15T10:30:00Z").ToUniversalTime(),
                                UpdatedAt = System.DateTime.Parse("2024-01-15T10:30:00Z").ToUniversalTime(),
                            },
                            ChildcareMaxHours = 42,
                            StartDate = DateOnly.Parse("2024-01-15"),
                            EndDate = DateOnly.Parse("2024-01-15"),
                            ArchivedAt = System.DateTime.Parse("2024-01-15T10:30:00Z").ToUniversalTime(),
                        },
                        Contains = new StudentPlacementSearchContains() {
                            Id = new List<string>() {
                                "123e4567-e89b-12d3-a456-426614174000",
                            },
                            Meta = new StudentPlacementSearchContainsMeta() {
                                CreatedBy = new List<string>() {
                                    "123e4567-e89b-12d3-a456-426614174000",
                                },
                                UpdatedBy = new List<string>() {
                                    "123e4567-e89b-12d3-a456-426614174000",
                                },
                            },
                            External = new StudentPlacementSearchContainsExternal() {
                                SourceID = new List<string>() {
                                    "example",
                                },
                                Source = new List<string>() {
                                    "example",
                                },
                            },
                            StudentID = new List<string>() {
                                "123e4567-e89b-12d3-a456-426614174000",
                            },
                            SchoolID = new List<string>() {
                                "123e4567-e89b-12d3-a456-426614174000",
                            },
                            HasChildcare = new List<bool>() {
                                true,
                            },
                            ChildcareMaxHours = new List<long>() {
                                42,
                            },
                            MotherTongue = new List<string>() {
                                "example",
                            },
                            SwedishAsSecondLanguage = new List<bool>() {
                                true,
                            },
                            MotherTongueParticipates = new List<bool>() {
                                true,
                            },
                            ModernLanguageInSchoolChoice = new List<string>() {
                                "example",
                            },
                            ModernLanguageInLanguageChoice = new List<string>() {
                                "example",
                            },
                            StartDate = new List<DateOnly>() {
                                DateOnly.Parse("2024-01-15"),
                            },
                            EndDate = new List<DateOnly>() {
                                DateOnly.Parse("2024-01-15"),
                            },
                            ArchiveYear = new List<string>() {
                                "example",
                            },
                        },
                        NotContains = new StudentPlacementSearchNotContains() {
                            Id = new List<string>() {
                                "123e4567-e89b-12d3-a456-426614174000",
                            },
                            Meta = new StudentPlacementSearchNotContainsMeta() {
                                CreatedBy = new List<string>() {
                                    "123e4567-e89b-12d3-a456-426614174000",
                                },
                                UpdatedBy = new List<string>() {
                                    "123e4567-e89b-12d3-a456-426614174000",
                                },
                            },
                            External = new StudentPlacementSearchNotContainsExternal() {
                                SourceID = new List<string>() {
                                    "example",
                                },
                                Source = new List<string>() {
                                    "example",
                                },
                            },
                            StudentID = new List<string>() {
                                "123e4567-e89b-12d3-a456-426614174000",
                            },
                            SchoolID = new List<string>() {
                                "123e4567-e89b-12d3-a456-426614174000",
                            },
                            HasChildcare = new List<bool>() {
                                true,
                            },
                            ChildcareMaxHours = new List<long>() {
                                42,
                            },
                            MotherTongue = new List<string>() {
                                "example",
                            },
                            SwedishAsSecondLanguage = new List<bool>() {
                                true,
                            },
                            MotherTongueParticipates = new List<bool>() {
                                true,
                            },
                            ModernLanguageInSchoolChoice = new List<string>() {
                                "example",
                            },
                            ModernLanguageInLanguageChoice = new List<string>() {
                                "example",
                            },
                            StartDate = new List<DateOnly>() {
                                DateOnly.Parse("2024-01-15"),
                            },
                            EndDate = new List<DateOnly>() {
                                DateOnly.Parse("2024-01-15"),
                            },
                            ArchiveYear = new List<string>() {
                                "example",
                            },
                        },
                        Like = new StudentPlacementSearchLike() {
                            External = new StudentPlacementSearchLikeExternal() {
                                SourceID = "example",
                                Source = "example",
                            },
                            MotherTongue = "example",
                            ModernLanguageInSchoolChoice = "example",
                            ModernLanguageInLanguageChoice = "example",
                            ArchiveYear = "example",
                        },
                        NotLike = new StudentPlacementSearchNotLike() {
                            External = new StudentPlacementSearchNotLikeExternal() {
                                SourceID = "example",
                                Source = "example",
                            },
                            MotherTongue = "example",
                            ModernLanguageInSchoolChoice = "example",
                            ModernLanguageInLanguageChoice = "example",
                            ArchiveYear = "example",
                        },
                        Null = new StudentPlacementSearchNull() {
                            Meta = new StudentPlacementSearchNullMeta() {
                                CreatedBy = true,
                                UpdatedAt = true,
                                UpdatedBy = true,
                            },
                            External = new StudentPlacementSearchNullExternal() {
                                SourceID = true,
                                Source = true,
                            },
                            SchoolYear = true,
                            ChildcareMaxHours = true,
                            MotherTongue = true,
                            ModernLanguageAlternative = true,
                            ModernLanguageInSchoolChoice = true,
                            ModernLanguageInLanguageChoice = true,
                            EndDate = true,
                            ArchiveYear = true,
                            ArchivedAt = true,
                        },
                        NotNull = new StudentPlacementSearchNotNull() {
                            Meta = new StudentPlacementSearchNotNullMeta() {
                                CreatedBy = true,
                                UpdatedAt = true,
                                UpdatedBy = true,
                            },
                            External = new StudentPlacementSearchNotNullExternal() {
                                SourceID = true,
                                Source = true,
                            },
                            SchoolYear = true,
                            ChildcareMaxHours = true,
                            MotherTongue = true,
                            ModernLanguageAlternative = true,
                            ModernLanguageInSchoolChoice = true,
                            ModernLanguageInLanguageChoice = true,
                            EndDate = true,
                            ArchiveYear = true,
                            ArchivedAt = 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.student_placements.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",
                        },
                        "student_id": "123e4567-e89b-12d3-a456-426614174000",
                        "school_id": "123e4567-e89b-12d3-a456-426614174000",
                        "has_childcare": True,
                        "childcare_max_hours": 42,
                        "mother_tongue": "example",
                        "swedish_as_second_language": True,
                        "mother_tongue_participates": True,
                        "modern_language_in_school_choice": "example",
                        "modern_language_in_language_choice": "example",
                        "start_date": date.fromisoformat("2024-01-15"),
                        "end_date": date.fromisoformat("2024-01-15"),
                        "archive_year": "example",
                        "archived_at": parse_datetime("2024-01-15T10:30:00Z"),
                    },
                    "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",
                        },
                        "student_id": "123e4567-e89b-12d3-a456-426614174000",
                        "school_id": "123e4567-e89b-12d3-a456-426614174000",
                        "has_childcare": True,
                        "childcare_max_hours": 42,
                        "mother_tongue": "example",
                        "swedish_as_second_language": True,
                        "mother_tongue_participates": True,
                        "modern_language_in_school_choice": "example",
                        "modern_language_in_language_choice": "example",
                        "start_date": date.fromisoformat("2024-01-15"),
                        "end_date": date.fromisoformat("2024-01-15"),
                        "archive_year": "example",
                        "archived_at": parse_datetime("2024-01-15T10:30:00Z"),
                    },
                    "greater_than": {
                        "meta": {
                            "created_at": parse_datetime("2024-01-15T10:30:00Z"),
                            "updated_at": parse_datetime("2024-01-15T10:30:00Z"),
                        },
                        "childcare_max_hours": 42,
                        "start_date": date.fromisoformat("2024-01-15"),
                        "end_date": date.fromisoformat("2024-01-15"),
                        "archived_at": parse_datetime("2024-01-15T10:30:00Z"),
                    },
                    "smaller_than": {
                        "meta": {
                            "created_at": parse_datetime("2024-01-15T10:30:00Z"),
                            "updated_at": parse_datetime("2024-01-15T10:30:00Z"),
                        },
                        "childcare_max_hours": 42,
                        "start_date": date.fromisoformat("2024-01-15"),
                        "end_date": date.fromisoformat("2024-01-15"),
                        "archived_at": parse_datetime("2024-01-15T10:30:00Z"),
                    },
                    "greater_or_equal": {
                        "meta": {
                            "created_at": parse_datetime("2024-01-15T10:30:00Z"),
                            "updated_at": parse_datetime("2024-01-15T10:30:00Z"),
                        },
                        "childcare_max_hours": 42,
                        "start_date": date.fromisoformat("2024-01-15"),
                        "end_date": date.fromisoformat("2024-01-15"),
                        "archived_at": parse_datetime("2024-01-15T10:30:00Z"),
                    },
                    "smaller_or_equal": {
                        "meta": {
                            "created_at": parse_datetime("2024-01-15T10:30:00Z"),
                            "updated_at": parse_datetime("2024-01-15T10:30:00Z"),
                        },
                        "childcare_max_hours": 42,
                        "start_date": date.fromisoformat("2024-01-15"),
                        "end_date": date.fromisoformat("2024-01-15"),
                        "archived_at": parse_datetime("2024-01-15T10:30:00Z"),
                    },
                    "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",
                            ],
                        },
                        "student_id": [
                            "123e4567-e89b-12d3-a456-426614174000",
                        ],
                        "school_id": [
                            "123e4567-e89b-12d3-a456-426614174000",
                        ],
                        "has_childcare": [
                            True,
                        ],
                        "childcare_max_hours": [
                            42,
                        ],
                        "mother_tongue": [
                            "example",
                        ],
                        "swedish_as_second_language": [
                            True,
                        ],
                        "mother_tongue_participates": [
                            True,
                        ],
                        "modern_language_in_school_choice": [
                            "example",
                        ],
                        "modern_language_in_language_choice": [
                            "example",
                        ],
                        "start_date": [
                            date.fromisoformat("2024-01-15"),
                        ],
                        "end_date": [
                            date.fromisoformat("2024-01-15"),
                        ],
                        "archive_year": [
                            "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",
                            ],
                        },
                        "student_id": [
                            "123e4567-e89b-12d3-a456-426614174000",
                        ],
                        "school_id": [
                            "123e4567-e89b-12d3-a456-426614174000",
                        ],
                        "has_childcare": [
                            True,
                        ],
                        "childcare_max_hours": [
                            42,
                        ],
                        "mother_tongue": [
                            "example",
                        ],
                        "swedish_as_second_language": [
                            True,
                        ],
                        "mother_tongue_participates": [
                            True,
                        ],
                        "modern_language_in_school_choice": [
                            "example",
                        ],
                        "modern_language_in_language_choice": [
                            "example",
                        ],
                        "start_date": [
                            date.fromisoformat("2024-01-15"),
                        ],
                        "end_date": [
                            date.fromisoformat("2024-01-15"),
                        ],
                        "archive_year": [
                            "example",
                        ],
                    },
                    "like": {
                        "external": {
                            "source_id": "example",
                            "source": "example",
                        },
                        "mother_tongue": "example",
                        "modern_language_in_school_choice": "example",
                        "modern_language_in_language_choice": "example",
                        "archive_year": "example",
                    },
                    "not_like": {
                        "external": {
                            "source_id": "example",
                            "source": "example",
                        },
                        "mother_tongue": "example",
                        "modern_language_in_school_choice": "example",
                        "modern_language_in_language_choice": "example",
                        "archive_year": "example",
                    },
                    "null": {
                        "meta": {
                            "created_by": True,
                            "updated_at": True,
                            "updated_by": True,
                        },
                        "external": {
                            "source_id": True,
                            "source": True,
                        },
                        "school_year": True,
                        "childcare_max_hours": True,
                        "mother_tongue": True,
                        "modern_language_alternative": True,
                        "modern_language_in_school_choice": True,
                        "modern_language_in_language_choice": True,
                        "end_date": True,
                        "archive_year": True,
                        "archived_at": True,
                    },
                    "not_null": {
                        "meta": {
                            "created_by": True,
                            "updated_at": True,
                            "updated_by": True,
                        },
                        "external": {
                            "source_id": True,
                            "source": True,
                        },
                        "school_year": True,
                        "childcare_max_hours": True,
                        "mother_tongue": True,
                        "modern_language_alternative": True,
                        "modern_language_in_school_choice": True,
                        "modern_language_in_language_choice": True,
                        "end_date": True,
                        "archive_year": True,
                        "archived_at": True,
                    },
                    "or_condition": True,
                }, limit=1, offset=0)

                while res is not None:
                    # Handle items

                    res = res.next()
components:
  requestBodies:
    StudentPlacementSearch:
      description: Request body
      content:
        application/json:
          schema:
            type: object
            properties:
              filter:
                allOf:
                  - $ref: '#/components/schemas/StudentPlacementFilter'
                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
                      studentID: 123e4567-e89b-12d3-a456-426614174000
                      schoolID: 123e4567-e89b-12d3-a456-426614174000
                      hasChildcare: true
                      childcareMaxHours: 42
                      motherTongue: example
                      swedishAsSecondLanguage: true
                      motherTongueParticipates: true
                      modernLanguageInSchoolChoice: example
                      modernLanguageInLanguageChoice: example
                      startDate: '2024-01-15'
                      endDate: '2024-01-15'
                      archiveYear: example
                      archivedAt: '2024-01-15T10:30:00Z'
                    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
                      studentID: 123e4567-e89b-12d3-a456-426614174000
                      schoolID: 123e4567-e89b-12d3-a456-426614174000
                      hasChildcare: true
                      childcareMaxHours: 42
                      motherTongue: example
                      swedishAsSecondLanguage: true
                      motherTongueParticipates: true
                      modernLanguageInSchoolChoice: example
                      modernLanguageInLanguageChoice: example
                      startDate: '2024-01-15'
                      endDate: '2024-01-15'
                      archiveYear: example
                      archivedAt: '2024-01-15T10:30:00Z'
                    greaterThan:
                      meta:
                        createdAt: '2024-01-15T10:30:00Z'
                        updatedAt: '2024-01-15T10:30:00Z'
                      childcareMaxHours: 42
                      startDate: '2024-01-15'
                      endDate: '2024-01-15'
                      archivedAt: '2024-01-15T10:30:00Z'
                    smallerThan:
                      meta:
                        createdAt: '2024-01-15T10:30:00Z'
                        updatedAt: '2024-01-15T10:30:00Z'
                      childcareMaxHours: 42
                      startDate: '2024-01-15'
                      endDate: '2024-01-15'
                      archivedAt: '2024-01-15T10:30:00Z'
                    greaterOrEqual:
                      meta:
                        createdAt: '2024-01-15T10:30:00Z'
                        updatedAt: '2024-01-15T10:30:00Z'
                      childcareMaxHours: 42
                      startDate: '2024-01-15'
                      endDate: '2024-01-15'
                      archivedAt: '2024-01-15T10:30:00Z'
                    smallerOrEqual:
                      meta:
                        createdAt: '2024-01-15T10:30:00Z'
                        updatedAt: '2024-01-15T10:30:00Z'
                      childcareMaxHours: 42
                      startDate: '2024-01-15'
                      endDate: '2024-01-15'
                      archivedAt: '2024-01-15T10:30:00Z'
                    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
                      studentID:
                        - 123e4567-e89b-12d3-a456-426614174000
                      schoolID:
                        - 123e4567-e89b-12d3-a456-426614174000
                      hasChildcare:
                        - true
                      childcareMaxHours:
                        - 42
                      motherTongue:
                        - example
                      swedishAsSecondLanguage:
                        - true
                      motherTongueParticipates:
                        - true
                      modernLanguageInSchoolChoice:
                        - example
                      modernLanguageInLanguageChoice:
                        - example
                      startDate:
                        - '2024-01-15'
                      endDate:
                        - '2024-01-15'
                      archiveYear:
                        - 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
                      studentID:
                        - 123e4567-e89b-12d3-a456-426614174000
                      schoolID:
                        - 123e4567-e89b-12d3-a456-426614174000
                      hasChildcare:
                        - true
                      childcareMaxHours:
                        - 42
                      motherTongue:
                        - example
                      swedishAsSecondLanguage:
                        - true
                      motherTongueParticipates:
                        - true
                      modernLanguageInSchoolChoice:
                        - example
                      modernLanguageInLanguageChoice:
                        - example
                      startDate:
                        - '2024-01-15'
                      endDate:
                        - '2024-01-15'
                      archiveYear:
                        - example
                    like:
                      external:
                        sourceID: example
                        source: example
                      motherTongue: example
                      modernLanguageInSchoolChoice: example
                      modernLanguageInLanguageChoice: example
                      archiveYear: example
                    notLike:
                      external:
                        sourceID: example
                        source: example
                      motherTongue: example
                      modernLanguageInSchoolChoice: example
                      modernLanguageInLanguageChoice: example
                      archiveYear: example
                    'null':
                      meta:
                        createdBy: true
                        updatedAt: true
                        updatedBy: true
                      external:
                        sourceID: true
                        source: true
                      schoolYear: true
                      childcareMaxHours: true
                      motherTongue: true
                      modernLanguageAlternative: true
                      modernLanguageInSchoolChoice: true
                      modernLanguageInLanguageChoice: true
                      endDate: true
                      archiveYear: true
                      archivedAt: true
                    notNull:
                      meta:
                        createdBy: true
                        updatedAt: true
                        updatedBy: true
                      external:
                        sourceID: true
                        source: true
                      schoolYear: true
                      childcareMaxHours: true
                      motherTongue: true
                      modernLanguageAlternative: true
                      modernLanguageInSchoolChoice: true
                      modernLanguageInLanguageChoice: true
                      endDate: true
                      archiveYear: true
                      archivedAt: 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
                    studentID: 123e4567-e89b-12d3-a456-426614174000
                    schoolID: 123e4567-e89b-12d3-a456-426614174000
                    hasChildcare: true
                    childcareMaxHours: 42
                    motherTongue: example
                    swedishAsSecondLanguage: true
                    motherTongueParticipates: true
                    modernLanguageInSchoolChoice: example
                    modernLanguageInLanguageChoice: example
                    startDate: '2024-01-15'
                    endDate: '2024-01-15'
                    archiveYear: example
                    archivedAt: '2024-01-15T10:30:00Z'
                  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
                    studentID: 123e4567-e89b-12d3-a456-426614174000
                    schoolID: 123e4567-e89b-12d3-a456-426614174000
                    hasChildcare: true
                    childcareMaxHours: 42
                    motherTongue: example
                    swedishAsSecondLanguage: true
                    motherTongueParticipates: true
                    modernLanguageInSchoolChoice: example
                    modernLanguageInLanguageChoice: example
                    startDate: '2024-01-15'
                    endDate: '2024-01-15'
                    archiveYear: example
                    archivedAt: '2024-01-15T10:30:00Z'
                  greaterThan:
                    meta:
                      createdAt: '2024-01-15T10:30:00Z'
                      updatedAt: '2024-01-15T10:30:00Z'
                    childcareMaxHours: 42
                    startDate: '2024-01-15'
                    endDate: '2024-01-15'
                    archivedAt: '2024-01-15T10:30:00Z'
                  smallerThan:
                    meta:
                      createdAt: '2024-01-15T10:30:00Z'
                      updatedAt: '2024-01-15T10:30:00Z'
                    childcareMaxHours: 42
                    startDate: '2024-01-15'
                    endDate: '2024-01-15'
                    archivedAt: '2024-01-15T10:30:00Z'
                  greaterOrEqual:
                    meta:
                      createdAt: '2024-01-15T10:30:00Z'
                      updatedAt: '2024-01-15T10:30:00Z'
                    childcareMaxHours: 42
                    startDate: '2024-01-15'
                    endDate: '2024-01-15'
                    archivedAt: '2024-01-15T10:30:00Z'
                  smallerOrEqual:
                    meta:
                      createdAt: '2024-01-15T10:30:00Z'
                      updatedAt: '2024-01-15T10:30:00Z'
                    childcareMaxHours: 42
                    startDate: '2024-01-15'
                    endDate: '2024-01-15'
                    archivedAt: '2024-01-15T10:30:00Z'
                  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
                    studentID:
                      - 123e4567-e89b-12d3-a456-426614174000
                    schoolID:
                      - 123e4567-e89b-12d3-a456-426614174000
                    hasChildcare:
                      - true
                    childcareMaxHours:
                      - 42
                    motherTongue:
                      - example
                    swedishAsSecondLanguage:
                      - true
                    motherTongueParticipates:
                      - true
                    modernLanguageInSchoolChoice:
                      - example
                    modernLanguageInLanguageChoice:
                      - example
                    startDate:
                      - '2024-01-15'
                    endDate:
                      - '2024-01-15'
                    archiveYear:
                      - 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
                    studentID:
                      - 123e4567-e89b-12d3-a456-426614174000
                    schoolID:
                      - 123e4567-e89b-12d3-a456-426614174000
                    hasChildcare:
                      - true
                    childcareMaxHours:
                      - 42
                    motherTongue:
                      - example
                    swedishAsSecondLanguage:
                      - true
                    motherTongueParticipates:
                      - true
                    modernLanguageInSchoolChoice:
                      - example
                    modernLanguageInLanguageChoice:
                      - example
                    startDate:
                      - '2024-01-15'
                    endDate:
                      - '2024-01-15'
                    archiveYear:
                      - example
                  like:
                    external:
                      sourceID: example
                      source: example
                    motherTongue: example
                    modernLanguageInSchoolChoice: example
                    modernLanguageInLanguageChoice: example
                    archiveYear: example
                  notLike:
                    external:
                      sourceID: example
                      source: example
                    motherTongue: example
                    modernLanguageInSchoolChoice: example
                    modernLanguageInLanguageChoice: example
                    archiveYear: example
                  'null':
                    meta:
                      createdBy: true
                      updatedAt: true
                      updatedBy: true
                    external:
                      sourceID: true
                      source: true
                    schoolYear: true
                    childcareMaxHours: true
                    motherTongue: true
                    modernLanguageAlternative: true
                    modernLanguageInSchoolChoice: true
                    modernLanguageInLanguageChoice: true
                    endDate: true
                    archiveYear: true
                    archivedAt: true
                  notNull:
                    meta:
                      createdBy: true
                      updatedAt: true
                      updatedBy: true
                    external:
                      sourceID: true
                      source: true
                    schoolYear: true
                    childcareMaxHours: true
                    motherTongue: true
                    modernLanguageAlternative: true
                    modernLanguageInSchoolChoice: true
                    modernLanguageInLanguageChoice: true
                    endDate: true
                    archiveYear: true
                    archivedAt: true
                  orCondition: true
      required: true
  responses:
    StudentPlacementSearch:
      description: >-
        Response for StudentPlacement Search operation - returns filtered
        StudentPlacement 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
                      studentID: 123e4567-e89b-12d3-a456-426614174000
                      schoolID: 123e4567-e89b-12d3-a456-426614174000
                      schoolType: GR
                      schoolYear: '1'
                      hasChildcare: true
                      childcareMaxHours: 15
                      motherTongue: SWE
                      modernLanguageAlternative: EN
                      swedishAsSecondLanguage: false
                      motherTongueParticipates: false
                      modernLanguageInSchoolChoice: deu
                      modernLanguageInLanguageChoice: fra
                      startDate: '2024-08-01'
                      endDate: '2025-08-01'
                      archiveYear: '2024_2025'
                      archivedAt: '2024-08-01T00:00:00Z'
                items:
                  allOf:
                    - $ref: '#/components/schemas/StudentPlacement'
                description: Array of StudentPlacement 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
                    studentID: 123e4567-e89b-12d3-a456-426614174000
                    schoolID: 123e4567-e89b-12d3-a456-426614174000
                    schoolType: GR
                    schoolYear: '1'
                    hasChildcare: true
                    childcareMaxHours: 15
                    motherTongue: SWE
                    modernLanguageAlternative: EN
                    swedishAsSecondLanguage: false
                    motherTongueParticipates: false
                    modernLanguageInSchoolChoice: deu
                    modernLanguageInLanguageChoice: fra
                    startDate: '2024-08-01'
                    endDate: '2025-08-01'
                    archiveYear: '2024_2025'
                    archivedAt: '2024-08-01T00:00:00Z'
                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
    StudentPlacementSearch422ResponseBody:
      description: >-
        Validation error for StudentPlacement 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 StudentPlacement Search endpoint
                    requestID: 550e8400-e29b-41d4-a716-446655440000
            required:
              - error
          examples:
            validationError:
              summary: Validation error example
              value:
                error:
                  code: UnprocessableEntity
                  message: Validation failed for StudentPlacement 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:
    StudentPlacementFilter:
      type: object
      properties:
        equals:
          allOf:
            - $ref: '#/components/schemas/StudentPlacementFilterEquals'
          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
              studentID: 123e4567-e89b-12d3-a456-426614174000
              schoolID: 123e4567-e89b-12d3-a456-426614174000
              hasChildcare: true
              childcareMaxHours: 42
              motherTongue: example
              swedishAsSecondLanguage: true
              motherTongueParticipates: true
              modernLanguageInSchoolChoice: example
              modernLanguageInLanguageChoice: example
              startDate: '2024-01-15'
              endDate: '2024-01-15'
              archiveYear: example
              archivedAt: '2024-01-15T10:30:00Z'
            - null
          description: Equality filters for StudentPlacement
          nullable: true
        notEquals:
          allOf:
            - $ref: '#/components/schemas/StudentPlacementFilterEquals'
          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
              studentID: 123e4567-e89b-12d3-a456-426614174000
              schoolID: 123e4567-e89b-12d3-a456-426614174000
              hasChildcare: true
              childcareMaxHours: 42
              motherTongue: example
              swedishAsSecondLanguage: true
              motherTongueParticipates: true
              modernLanguageInSchoolChoice: example
              modernLanguageInLanguageChoice: example
              startDate: '2024-01-15'
              endDate: '2024-01-15'
              archiveYear: example
              archivedAt: '2024-01-15T10:30:00Z'
            - null
          description: Inequality filters for StudentPlacement
          nullable: true
        greaterThan:
          allOf:
            - $ref: '#/components/schemas/StudentPlacementFilterRange'
          examples:
            - meta:
                createdAt: '2024-01-15T10:30:00Z'
                updatedAt: '2024-01-15T10:30:00Z'
              childcareMaxHours: 42
              startDate: '2024-01-15'
              endDate: '2024-01-15'
              archivedAt: '2024-01-15T10:30:00Z'
            - null
          description: Greater than filters for StudentPlacement
          nullable: true
        smallerThan:
          allOf:
            - $ref: '#/components/schemas/StudentPlacementFilterRange'
          examples:
            - meta:
                createdAt: '2024-01-15T10:30:00Z'
                updatedAt: '2024-01-15T10:30:00Z'
              childcareMaxHours: 42
              startDate: '2024-01-15'
              endDate: '2024-01-15'
              archivedAt: '2024-01-15T10:30:00Z'
            - null
          description: Smaller than filters for StudentPlacement
          nullable: true
        greaterOrEqual:
          allOf:
            - $ref: '#/components/schemas/StudentPlacementFilterRange'
          examples:
            - meta:
                createdAt: '2024-01-15T10:30:00Z'
                updatedAt: '2024-01-15T10:30:00Z'
              childcareMaxHours: 42
              startDate: '2024-01-15'
              endDate: '2024-01-15'
              archivedAt: '2024-01-15T10:30:00Z'
            - null
          description: Greater than or equal filters for StudentPlacement
          nullable: true
        smallerOrEqual:
          allOf:
            - $ref: '#/components/schemas/StudentPlacementFilterRange'
          examples:
            - meta:
                createdAt: '2024-01-15T10:30:00Z'
                updatedAt: '2024-01-15T10:30:00Z'
              childcareMaxHours: 42
              startDate: '2024-01-15'
              endDate: '2024-01-15'
              archivedAt: '2024-01-15T10:30:00Z'
            - null
          description: Smaller than or equal filters for StudentPlacement
          nullable: true
        contains:
          allOf:
            - $ref: '#/components/schemas/StudentPlacementFilterContains'
          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
              studentID:
                - 123e4567-e89b-12d3-a456-426614174000
              schoolID:
                - 123e4567-e89b-12d3-a456-426614174000
              hasChildcare:
                - true
              childcareMaxHours:
                - 42
              motherTongue:
                - example
              swedishAsSecondLanguage:
                - true
              motherTongueParticipates:
                - true
              modernLanguageInSchoolChoice:
                - example
              modernLanguageInLanguageChoice:
                - example
              startDate:
                - '2024-01-15'
              endDate:
                - '2024-01-15'
              archiveYear:
                - example
            - null
          description: Contains filters for StudentPlacement
          nullable: true
        notContains:
          allOf:
            - $ref: '#/components/schemas/StudentPlacementFilterContains'
          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
              studentID:
                - 123e4567-e89b-12d3-a456-426614174000
              schoolID:
                - 123e4567-e89b-12d3-a456-426614174000
              hasChildcare:
                - true
              childcareMaxHours:
                - 42
              motherTongue:
                - example
              swedishAsSecondLanguage:
                - true
              motherTongueParticipates:
                - true
              modernLanguageInSchoolChoice:
                - example
              modernLanguageInLanguageChoice:
                - example
              startDate:
                - '2024-01-15'
              endDate:
                - '2024-01-15'
              archiveYear:
                - example
            - null
          description: Not contains filters for StudentPlacement
          nullable: true
        like:
          allOf:
            - $ref: '#/components/schemas/StudentPlacementFilterLike'
          examples:
            - external:
                sourceID: example
                source: example
              motherTongue: example
              modernLanguageInSchoolChoice: example
              modernLanguageInLanguageChoice: example
              archiveYear: example
            - null
          description: LIKE filters for StudentPlacement
          nullable: true
        notLike:
          allOf:
            - $ref: '#/components/schemas/StudentPlacementFilterLike'
          examples:
            - external:
                sourceID: example
                source: example
              motherTongue: example
              modernLanguageInSchoolChoice: example
              modernLanguageInLanguageChoice: example
              archiveYear: example
            - null
          description: NOT LIKE filters for StudentPlacement
          nullable: true
        'null':
          allOf:
            - $ref: '#/components/schemas/StudentPlacementFilterNull'
          examples:
            - meta:
                createdBy: true
                updatedAt: true
                updatedBy: true
              external:
                sourceID: true
                source: true
              schoolYear: true
              childcareMaxHours: true
              motherTongue: true
              modernLanguageAlternative: true
              modernLanguageInSchoolChoice: true
              modernLanguageInLanguageChoice: true
              endDate: true
              archiveYear: true
              archivedAt: true
            - null
          description: Null filters for StudentPlacement
          nullable: true
        notNull:
          allOf:
            - $ref: '#/components/schemas/StudentPlacementFilterNull'
          examples:
            - meta:
                createdBy: true
                updatedAt: true
                updatedBy: true
              external:
                sourceID: true
                source: true
              schoolYear: true
              childcareMaxHours: true
              motherTongue: true
              modernLanguageAlternative: true
              modernLanguageInSchoolChoice: true
              modernLanguageInLanguageChoice: true
              endDate: true
              archiveYear: true
              archivedAt: true
            - null
          description: Not null filters for StudentPlacement
          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
                  studentID: 123e4567-e89b-12d3-a456-426614174000
                  schoolID: 123e4567-e89b-12d3-a456-426614174000
                  hasChildcare: true
                  childcareMaxHours: 42
                  motherTongue: example
                  swedishAsSecondLanguage: true
                  motherTongueParticipates: true
                  modernLanguageInSchoolChoice: example
                  modernLanguageInLanguageChoice: example
                  startDate: '2024-01-15'
                  endDate: '2024-01-15'
                  archiveYear: example
                  archivedAt: '2024-01-15T10:30:00Z'
                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
                  studentID: 123e4567-e89b-12d3-a456-426614174000
                  schoolID: 123e4567-e89b-12d3-a456-426614174000
                  hasChildcare: true
                  childcareMaxHours: 42
                  motherTongue: example
                  swedishAsSecondLanguage: true
                  motherTongueParticipates: true
                  modernLanguageInSchoolChoice: example
                  modernLanguageInLanguageChoice: example
                  startDate: '2024-01-15'
                  endDate: '2024-01-15'
                  archiveYear: example
                  archivedAt: '2024-01-15T10:30:00Z'
                greaterThan:
                  meta:
                    createdAt: '2024-01-15T10:30:00Z'
                    updatedAt: '2024-01-15T10:30:00Z'
                  childcareMaxHours: 42
                  startDate: '2024-01-15'
                  endDate: '2024-01-15'
                  archivedAt: '2024-01-15T10:30:00Z'
                smallerThan:
                  meta:
                    createdAt: '2024-01-15T10:30:00Z'
                    updatedAt: '2024-01-15T10:30:00Z'
                  childcareMaxHours: 42
                  startDate: '2024-01-15'
                  endDate: '2024-01-15'
                  archivedAt: '2024-01-15T10:30:00Z'
                greaterOrEqual:
                  meta:
                    createdAt: '2024-01-15T10:30:00Z'
                    updatedAt: '2024-01-15T10:30:00Z'
                  childcareMaxHours: 42
                  startDate: '2024-01-15'
                  endDate: '2024-01-15'
                  archivedAt: '2024-01-15T10:30:00Z'
                smallerOrEqual:
                  meta:
                    createdAt: '2024-01-15T10:30:00Z'
                    updatedAt: '2024-01-15T10:30:00Z'
                  childcareMaxHours: 42
                  startDate: '2024-01-15'
                  endDate: '2024-01-15'
                  archivedAt: '2024-01-15T10:30:00Z'
                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
                  studentID:
                    - 123e4567-e89b-12d3-a456-426614174000
                  schoolID:
                    - 123e4567-e89b-12d3-a456-426614174000
                  hasChildcare:
                    - true
                  childcareMaxHours:
                    - 42
                  motherTongue:
                    - example
                  swedishAsSecondLanguage:
                    - true
                  motherTongueParticipates:
                    - true
                  modernLanguageInSchoolChoice:
                    - example
                  modernLanguageInLanguageChoice:
                    - example
                  startDate:
                    - '2024-01-15'
                  endDate:
                    - '2024-01-15'
                  archiveYear:
                    - 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
                  studentID:
                    - 123e4567-e89b-12d3-a456-426614174000
                  schoolID:
                    - 123e4567-e89b-12d3-a456-426614174000
                  hasChildcare:
                    - true
                  childcareMaxHours:
                    - 42
                  motherTongue:
                    - example
                  swedishAsSecondLanguage:
                    - true
                  motherTongueParticipates:
                    - true
                  modernLanguageInSchoolChoice:
                    - example
                  modernLanguageInLanguageChoice:
                    - example
                  startDate:
                    - '2024-01-15'
                  endDate:
                    - '2024-01-15'
                  archiveYear:
                    - example
                like:
                  external:
                    sourceID: example
                    source: example
                  motherTongue: example
                  modernLanguageInSchoolChoice: example
                  modernLanguageInLanguageChoice: example
                  archiveYear: example
                notLike:
                  external:
                    sourceID: example
                    source: example
                  motherTongue: example
                  modernLanguageInSchoolChoice: example
                  modernLanguageInLanguageChoice: example
                  archiveYear: example
                'null':
                  meta:
                    createdBy: true
                    updatedAt: true
                    updatedBy: true
                  external:
                    sourceID: true
                    source: true
                  schoolYear: true
                  childcareMaxHours: true
                  motherTongue: true
                  modernLanguageAlternative: true
                  modernLanguageInSchoolChoice: true
                  modernLanguageInLanguageChoice: true
                  endDate: true
                  archiveYear: true
                  archivedAt: true
                notNull:
                  meta:
                    createdBy: true
                    updatedAt: true
                    updatedBy: true
                  external:
                    sourceID: true
                    source: true
                  schoolYear: true
                  childcareMaxHours: true
                  motherTongue: true
                  modernLanguageAlternative: true
                  modernLanguageInSchoolChoice: true
                  modernLanguageInLanguageChoice: true
                  endDate: true
                  archiveYear: true
                  archivedAt: true
                orCondition: true
          items:
            allOf:
              - $ref: '#/components/schemas/StudentPlacementFilter'
          description: >-
            NestedFilters of the StudentPlacement, useful for more complex
            filters
      required:
        - orCondition
      description: Filter object for StudentPlacement
    StudentPlacement:
      type: object
      properties:
        id:
          type: string
          examples:
            - 123e4567-e89b-12d3-a456-426614174000
          format: uuid
          description: Unique identifier for the StudentPlacement
        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 StudentPlacement
        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 placement from another system, used
            for third-party integration tracking.
          nullable: true
        studentID:
          type: string
          examples:
            - 123e4567-e89b-12d3-a456-426614174000
          format: uuid
          description: The ID of the student the placement belongs to
        schoolID:
          type: string
          examples:
            - 123e4567-e89b-12d3-a456-426614174000
          format: uuid
          description: The ID of the school the student is placed in
        schoolType:
          allOf:
            - $ref: '#/components/schemas/StudentPlacementSchoolType'
          examples:
            - GR
          description: >-
            The school type for the student, if not provided on Create, the
            school type will be fetched from the school.
        schoolYear:
          allOf:
            - $ref: '#/components/schemas/SchoolYear'
          examples:
            - '1'
            - null
          description: The school year the student is placed in
          nullable: true
        hasChildcare:
          type: boolean
          examples:
            - true
          description: Whether the student has childcare
          default: false
        childcareMaxHours:
          type: integer
          examples:
            - 15
            - null
          description: >-
            The maximum number of childcare hours per week for the student at
            this school
          nullable: true
        motherTongue:
          type: string
          examples:
            - SWE
            - null
          description: >-
            The mother tongue of the student. Language codes follow the ISO
            639-3 standard (three-letter codes).
          nullable: true
        modernLanguageAlternative:
          allOf:
            - $ref: '#/components/schemas/ModernLanguageAlternative'
          examples:
            - EN
            - null
          description: The modern language alternative for the student
          nullable: true
        swedishAsSecondLanguage:
          type: boolean
          examples:
            - false
          description: Whether the student has Swedish as their second language
          default: false
        motherTongueParticipates:
          type: boolean
          examples:
            - false
          description: Whether the student participates in mother tongue education
          default: false
        modernLanguageInSchoolChoice:
          type: string
          examples:
            - deu
            - null
          description: >-
            The language code for the student's modern language in school choice
            (Skolans val). Language codes follow the ISO 639-2 standard
            (three-letter codes).
          nullable: true
        modernLanguageInLanguageChoice:
          type: string
          examples:
            - fra
            - null
          description: >-
            The language code for the student's modern language in language
            choice (Språkval, M2, B-språk). Language codes follow the ISO 639-2
            standard (three-letter codes).
          nullable: true
        startDate:
          type: string
          examples:
            - '2024-08-01'
          format: date
          description: The start date of the placement
        endDate:
          type: string
          examples:
            - '2025-08-01'
            - null
          format: date
          description: The end date of the placement
          nullable: true
        archiveYear:
          type: string
          examples:
            - '2024_2025'
            - null
          description: >-
            The year the placement was archived for the student, in the format
            YYYY_YYYY where the first year is the autumn and the second year is
            the spring.
          nullable: true
        archivedAt:
          type: string
          examples:
            - '2024-08-01T00:00:00Z'
            - null
          format: date-time
          description: The timestamp the placement was archived for the student
          nullable: true
      required:
        - id
        - studentID
        - schoolID
        - schoolType
        - startDate
      description: >-
        StudentPlacement holds the placement information about a student in a
        specific school.
    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
    StudentPlacementFilterEquals:
      type: object
      properties:
        id:
          type: string
          examples:
            - 123e4567-e89b-12d3-a456-426614174000
            - null
          format: uuid
          description: Unique identifier for the StudentPlacement
          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 StudentPlacement
          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 placement from another system, used
            for third-party integration tracking.
          nullable: true
        studentID:
          type: string
          examples:
            - 123e4567-e89b-12d3-a456-426614174000
            - null
          format: uuid
          description: The ID of the student the placement belongs to
          nullable: true
        schoolID:
          type: string
          examples:
            - 123e4567-e89b-12d3-a456-426614174000
            - null
          format: uuid
          description: The ID of the school the student is placed in
          nullable: true
        schoolType:
          allOf:
            - $ref: '#/components/schemas/StudentPlacementSchoolType'
          description: >-
            The school type for the student, if not provided on Create, the
            school type will be fetched from the school.
          nullable: true
        schoolYear:
          allOf:
            - $ref: '#/components/schemas/SchoolYear'
          description: The school year the student is placed in
          nullable: true
        hasChildcare:
          type: boolean
          examples:
            - true
            - null
          description: Whether the student has childcare
          nullable: true
        childcareMaxHours:
          type: integer
          examples:
            - 42
            - null
          description: >-
            The maximum number of childcare hours per week for the student at
            this school
          nullable: true
        motherTongue:
          type: string
          examples:
            - example
            - null
          description: >-
            The mother tongue of the student. Language codes follow the ISO
            639-3 standard (three-letter codes).
          nullable: true
        modernLanguageAlternative:
          allOf:
            - $ref: '#/components/schemas/ModernLanguageAlternative'
          description: The modern language alternative for the student
          nullable: true
        swedishAsSecondLanguage:
          type: boolean
          examples:
            - true
            - null
          description: Whether the student has Swedish as their second language
          nullable: true
        motherTongueParticipates:
          type: boolean
          examples:
            - true
            - null
          description: Whether the student participates in mother tongue education
          nullable: true
        modernLanguageInSchoolChoice:
          type: string
          examples:
            - example
            - null
          description: >-
            The language code for the student's modern language in school choice
            (Skolans val). Language codes follow the ISO 639-2 standard
            (three-letter codes).
          nullable: true
        modernLanguageInLanguageChoice:
          type: string
          examples:
            - example
            - null
          description: >-
            The language code for the student's modern language in language
            choice (Språkval, M2, B-språk). Language codes follow the ISO 639-2
            standard (three-letter codes).
          nullable: true
        startDate:
          type: string
          examples:
            - '2024-01-15'
            - null
          format: date
          description: The start date of the placement
          nullable: true
        endDate:
          type: string
          examples:
            - '2024-01-15'
            - null
          format: date
          description: The end date of the placement
          nullable: true
        archiveYear:
          type: string
          examples:
            - example
            - null
          description: >-
            The year the placement was archived for the student, in the format
            YYYY_YYYY where the first year is the autumn and the second year is
            the spring.
          nullable: true
        archivedAt:
          type: string
          examples:
            - '2024-01-15T10:30:00Z'
            - null
          format: date-time
          description: The timestamp the placement was archived for the student
          nullable: true
      description: Equality/Inequality filter fields for StudentPlacement
    StudentPlacementFilterRange:
      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 StudentPlacement
          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 placement from another system, used
            for third-party integration tracking.
          nullable: true
        childcareMaxHours:
          type: integer
          examples:
            - 42
            - null
          description: >-
            The maximum number of childcare hours per week for the student at
            this school
          nullable: true
        startDate:
          type: string
          examples:
            - '2024-01-15'
            - null
          format: date
          description: The start date of the placement
          nullable: true
        endDate:
          type: string
          examples:
            - '2024-01-15'
            - null
          format: date
          description: The end date of the placement
          nullable: true
        archivedAt:
          type: string
          examples:
            - '2024-01-15T10:30:00Z'
            - null
          format: date-time
          description: The timestamp the placement was archived for the student
          nullable: true
      description: Range filter fields for StudentPlacement
    StudentPlacementFilterContains:
      type: object
      properties:
        id:
          type: array
          examples:
            - - 123e4567-e89b-12d3-a456-426614174000
          items:
            type: string
            format: uuid
          description: Unique identifier for the StudentPlacement
        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 StudentPlacement
          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 placement from another system, used
            for third-party integration tracking.
          nullable: true
        studentID:
          type: array
          examples:
            - - 123e4567-e89b-12d3-a456-426614174000
          items:
            type: string
            format: uuid
          description: The ID of the student the placement belongs to
        schoolID:
          type: array
          examples:
            - - 123e4567-e89b-12d3-a456-426614174000
          items:
            type: string
            format: uuid
          description: The ID of the school the student is placed in
        schoolType:
          type: array
          items:
            allOf:
              - $ref: '#/components/schemas/StudentPlacementSchoolType'
          description: >-
            The school type for the student, if not provided on Create, the
            school type will be fetched from the school.
        schoolYear:
          type: array
          items:
            allOf:
              - $ref: '#/components/schemas/SchoolYear'
          description: The school year the student is placed in
        hasChildcare:
          type: array
          examples:
            - - true
          items:
            type: boolean
          description: Whether the student has childcare
        childcareMaxHours:
          type: array
          examples:
            - - 42
          items:
            type: integer
          description: >-
            The maximum number of childcare hours per week for the student at
            this school
        motherTongue:
          type: array
          examples:
            - - example
          items:
            type: string
          description: >-
            The mother tongue of the student. Language codes follow the ISO
            639-3 standard (three-letter codes).
        modernLanguageAlternative:
          type: array
          items:
            allOf:
              - $ref: '#/components/schemas/ModernLanguageAlternative'
          description: The modern language alternative for the student
        swedishAsSecondLanguage:
          type: array
          examples:
            - - true
          items:
            type: boolean
          description: Whether the student has Swedish as their second language
        motherTongueParticipates:
          type: array
          examples:
            - - true
          items:
            type: boolean
          description: Whether the student participates in mother tongue education
        modernLanguageInSchoolChoice:
          type: array
          examples:
            - - example
          items:
            type: string
          description: >-
            The language code for the student's modern language in school choice
            (Skolans val). Language codes follow the ISO 639-2 standard
            (three-letter codes).
        modernLanguageInLanguageChoice:
          type: array
          examples:
            - - example
          items:
            type: string
          description: >-
            The language code for the student's modern language in language
            choice (Språkval, M2, B-språk). Language codes follow the ISO 639-2
            standard (three-letter codes).
        startDate:
          type: array
          examples:
            - - '2024-01-15'
          items:
            type: string
            format: date
          description: The start date of the placement
        endDate:
          type: array
          examples:
            - - '2024-01-15'
          items:
            type: string
            format: date
          description: The end date of the placement
        archiveYear:
          type: array
          examples:
            - - example
          items:
            type: string
          description: >-
            The year the placement was archived for the student, in the format
            YYYY_YYYY where the first year is the autumn and the second year is
            the spring.
      description: Contains filter fields for StudentPlacement
    StudentPlacementFilterLike:
      type: object
      properties:
        meta:
          allOf:
            - $ref: '#/components/schemas/MetaFilterLike'
          description: Metadata information for the StudentPlacement
          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 placement from another system, used
            for third-party integration tracking.
          nullable: true
        motherTongue:
          type: string
          examples:
            - example
            - null
          description: >-
            The mother tongue of the student. Language codes follow the ISO
            639-3 standard (three-letter codes).
          nullable: true
        modernLanguageInSchoolChoice:
          type: string
          examples:
            - example
            - null
          description: >-
            The language code for the student's modern language in school choice
            (Skolans val). Language codes follow the ISO 639-2 standard
            (three-letter codes).
          nullable: true
        modernLanguageInLanguageChoice:
          type: string
          examples:
            - example
            - null
          description: >-
            The language code for the student's modern language in language
            choice (Språkval, M2, B-språk). Language codes follow the ISO 639-2
            standard (three-letter codes).
          nullable: true
        archiveYear:
          type: string
          examples:
            - example
            - null
          description: >-
            The year the placement was archived for the student, in the format
            YYYY_YYYY where the first year is the autumn and the second year is
            the spring.
          nullable: true
      description: LIKE filter fields for StudentPlacement
    StudentPlacementFilterNull:
      type: object
      properties:
        meta:
          allOf:
            - $ref: '#/components/schemas/MetaFilterNull'
          examples:
            - createdBy: true
              updatedAt: true
              updatedBy: true
            - null
          description: Metadata information for the StudentPlacement
          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 placement from another system, used
            for third-party integration tracking.
          nullable: true
        schoolYear:
          type: boolean
          examples:
            - true
            - null
          description: The school year the student is placed in
          nullable: true
        childcareMaxHours:
          type: boolean
          examples:
            - true
            - null
          description: >-
            The maximum number of childcare hours per week for the student at
            this school
          nullable: true
        motherTongue:
          type: boolean
          examples:
            - true
            - null
          description: >-
            The mother tongue of the student. Language codes follow the ISO
            639-3 standard (three-letter codes).
          nullable: true
        modernLanguageAlternative:
          type: boolean
          examples:
            - true
            - null
          description: The modern language alternative for the student
          nullable: true
        modernLanguageInSchoolChoice:
          type: boolean
          examples:
            - true
            - null
          description: >-
            The language code for the student's modern language in school choice
            (Skolans val). Language codes follow the ISO 639-2 standard
            (three-letter codes).
          nullable: true
        modernLanguageInLanguageChoice:
          type: boolean
          examples:
            - true
            - null
          description: >-
            The language code for the student's modern language in language
            choice (Språkval, M2, B-språk). Language codes follow the ISO 639-2
            standard (three-letter codes).
          nullable: true
        endDate:
          type: boolean
          examples:
            - true
            - null
          description: The end date of the placement
          nullable: true
        archiveYear:
          type: boolean
          examples:
            - true
            - null
          description: >-
            The year the placement was archived for the student, in the format
            YYYY_YYYY where the first year is the autumn and the second year is
            the spring.
          nullable: true
        archivedAt:
          type: boolean
          examples:
            - true
            - null
          description: The timestamp the placement was archived for the student
          nullable: true
      description: Null filter fields for StudentPlacement
    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.
    StudentPlacementSchoolType:
      type: string
      enum:
        - GR
        - GRAN
        - GY
        - GYAN
        - FS
        - VUX
        - VUXSFI
      description: The type of schooling the student is attending
    SchoolYear:
      type: string
      enum:
        - '0'
        - '1'
        - '2'
        - '3'
        - '4'
        - '5'
        - '6'
        - '7'
        - '8'
        - '9'
      description: The school year the student is attending
    ModernLanguageAlternative:
      type: string
      enum:
        - EN
        - ML
        - SV
        - SVA
        - TN
      description: The modern language alternative for the student
    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
    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
    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
    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
    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
  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: {}

````