' Options:
'Date: 2026-07-18 10:58:28
'Version: 8.53
'Tip: To override a DTO option, remove "''" prefix before updating
'BaseUrl: https://chinook.netcore.io
'
'GlobalNamespace: MyApp
'''MakePartial: True
'''MakeVirtual: True
'''MakeDataContractsExtensible: False
'''AddReturnMarker: True
'''AddDescriptionAsComments: True
'''AddDataContractAttributes: False
'''AddIndexesToDataMembers: False
'''AddGeneratedCodeAttributes: False
'''AddResponseStatus: False
'''AddImplicitVersion: 
'''InitializeCollections: False
'''ExportValueTypes: False
'''IncludeTypes: 
'''ExcludeTypes: 
'''AddNamespaces: 
'''AddDefaultXmlNamespace: http://schemas.servicestack.net/types

Imports System
Imports System.IO
Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization
Imports ServiceStack
Imports ServiceStack.DataAnnotations
Imports MyApp

Namespace Global

    Namespace MyApp

        <Route("/albums", "POST")>
        Public Partial Class CreateAlbums
            Implements IReturn(Of IdResponse)
            Implements IPost
            Implements ICreateDb(Of Albums)
            <Validate(Validator:="NotEmpty")>
            Public Overridable Property Title As String

            <Validate(Validator:="GreaterThan(0)")>
            Public Overridable Property ArtistId As Long
        End Class

        <Route("/artists", "POST")>
        Public Partial Class CreateArtists
            Implements IReturn(Of IdResponse)
            Implements IPost
            Implements ICreateDb(Of Artists)
            Public Overridable Property Name As String
        End Class

        <Route("/customers", "POST")>
        Public Partial Class CreateCustomers
            Implements IReturn(Of IdResponse)
            Implements IPost
            Implements ICreateDb(Of Customers)
            Public Overridable Property FirstName As String
            Public Overridable Property LastName As String
            Public Overridable Property Company As String
            Public Overridable Property Address As String
            Public Overridable Property City As String
            Public Overridable Property State As String
            Public Overridable Property Country As String
            Public Overridable Property PostalCode As String
            Public Overridable Property Phone As String
            Public Overridable Property Fax As String
            Public Overridable Property Email As String
            Public Overridable Property SupportRepId As Long?
        End Class

        <Route("/employees", "POST")>
        Public Partial Class CreateEmployees
            Implements IReturn(Of IdResponse)
            Implements IPost
            Implements ICreateDb(Of Employees)
            Public Overridable Property LastName As String
            Public Overridable Property FirstName As String
            Public Overridable Property Title As String
            Public Overridable Property ReportsTo As Long?
            Public Overridable Property BirthDate As Date?
            Public Overridable Property HireDate As Date?
            Public Overridable Property Address As String
            Public Overridable Property City As String
            Public Overridable Property State As String
            Public Overridable Property Country As String
            Public Overridable Property PostalCode As String
            Public Overridable Property Phone As String
            Public Overridable Property Fax As String
            Public Overridable Property Email As String
        End Class

        <Route("/genres", "POST")>
        Public Partial Class CreateGenres
            Implements IReturn(Of IdResponse)
            Implements IPost
            Implements ICreateDb(Of Genres)
            Public Overridable Property Name As String
        End Class

        <Route("/invoiceitems", "POST")>
        Public Partial Class CreateInvoiceItems
            Implements IReturn(Of IdResponse)
            Implements IPost
            Implements ICreateDb(Of InvoiceItems)
            Public Overridable Property InvoiceId As Long
            Public Overridable Property TrackId As Long
            Public Overridable Property UnitPrice As Decimal
            Public Overridable Property Quantity As Long
        End Class

        <Route("/invoices", "POST")>
        Public Partial Class CreateInvoices
            Implements IReturn(Of IdResponse)
            Implements IPost
            Implements ICreateDb(Of Invoices)
            Public Overridable Property CustomerId As Long
            Public Overridable Property InvoiceDate As Date
            Public Overridable Property BillingAddress As String
            Public Overridable Property BillingCity As String
            Public Overridable Property BillingState As String
            Public Overridable Property BillingCountry As String
            Public Overridable Property BillingPostalCode As String
            Public Overridable Property Total As Decimal
        End Class

        <Route("/mediatypes", "POST")>
        Public Partial Class CreateMediaTypes
            Implements IReturn(Of IdResponse)
            Implements IPost
            Implements ICreateDb(Of MediaTypes)
            Public Overridable Property Name As String
        End Class

        <Route("/playlists", "POST")>
        Public Partial Class CreatePlaylists
            Implements IReturn(Of IdResponse)
            Implements IPost
            Implements ICreateDb(Of Playlists)
            Public Overridable Property Name As String
        End Class

        <Route("/tracks", "POST")>
        Public Partial Class CreateTracks
            Implements IReturn(Of IdResponse)
            Implements IPost
            Implements ICreateDb(Of Tracks)
            Public Overridable Property Name As String
            Public Overridable Property AlbumId As Long?
            Public Overridable Property MediaTypeId As Long
            Public Overridable Property GenreId As Long?
            Public Overridable Property Composer As String
            Public Overridable Property Milliseconds As Long
            Public Overridable Property Bytes As Long?
            Public Overridable Property UnitPrice As Decimal
        End Class

        <Route("/albums/{AlbumId}", "DELETE")>
        Public Partial Class DeleteAlbums
            Implements IReturn(Of IdResponse)
            Implements IDelete
            Implements IDeleteDb(Of Albums)
            Public Overridable Property AlbumId As Long
        End Class

        <Route("/artists/{ArtistId}", "DELETE")>
        Public Partial Class DeleteArtists
            Implements IReturn(Of IdResponse)
            Implements IDelete
            Implements IDeleteDb(Of Artists)
            Public Overridable Property ArtistId As Long
        End Class

        <Route("/customers/{CustomerId}", "DELETE")>
        Public Partial Class DeleteCustomers
            Implements IReturn(Of IdResponse)
            Implements IDelete
            Implements IDeleteDb(Of Customers)
            Public Overridable Property CustomerId As Long
        End Class

        <Route("/employees/{EmployeeId}", "DELETE")>
        Public Partial Class DeleteEmployees
            Implements IReturn(Of IdResponse)
            Implements IDelete
            Implements IDeleteDb(Of Employees)
            Public Overridable Property EmployeeId As Long
        End Class

        <Route("/genres/{GenreId}", "DELETE")>
        Public Partial Class DeleteGenres
            Implements IReturn(Of IdResponse)
            Implements IDelete
            Implements IDeleteDb(Of Genres)
            Public Overridable Property GenreId As Long
        End Class

        <Route("/invoiceitems/{InvoiceLineId}", "DELETE")>
        Public Partial Class DeleteInvoiceItems
            Implements IReturn(Of IdResponse)
            Implements IDelete
            Implements IDeleteDb(Of InvoiceItems)
            Public Overridable Property InvoiceLineId As Long
        End Class

        <Route("/invoices/{InvoiceId}", "DELETE")>
        Public Partial Class DeleteInvoices
            Implements IReturn(Of IdResponse)
            Implements IDelete
            Implements IDeleteDb(Of Invoices)
            Public Overridable Property InvoiceId As Long
        End Class

        <Route("/mediatypes/{MediaTypeId}", "DELETE")>
        Public Partial Class DeleteMediaTypes
            Implements IReturn(Of IdResponse)
            Implements IDelete
            Implements IDeleteDb(Of MediaTypes)
            Public Overridable Property MediaTypeId As Long
        End Class

        <Route("/playlists/{PlaylistId}", "DELETE")>
        Public Partial Class DeletePlaylists
            Implements IReturn(Of IdResponse)
            Implements IDelete
            Implements IDeleteDb(Of Playlists)
            Public Overridable Property PlaylistId As Long
        End Class

        <Route("/tracks/{TrackId}", "DELETE")>
        Public Partial Class DeleteTracks
            Implements IReturn(Of IdResponse)
            Implements IDelete
            Implements IDeleteDb(Of Tracks)
            Public Overridable Property TrackId As Long
        End Class

        <Route("/hello")>
        <Route("/hello/{Name}")>
        Public Partial Class Hello
            Implements IReturn(Of HelloResponse)
            Public Overridable Property Name As String
        End Class

        Public Partial Class HelloResponse
            Public Overridable Property Result As String
        End Class

        <Route("/albums/{AlbumId}", "PATCH")>
        Public Partial Class PatchAlbums
            Implements IReturn(Of IdResponse)
            Implements IPatch
            Implements IPatchDb(Of Albums)
            Public Overridable Property AlbumId As Long
            Public Overridable Property Title As String
            Public Overridable Property ArtistId As Long
        End Class

        <Route("/artists/{ArtistId}", "PATCH")>
        Public Partial Class PatchArtists
            Implements IReturn(Of IdResponse)
            Implements IPatch
            Implements IPatchDb(Of Artists)
            Public Overridable Property ArtistId As Long
            Public Overridable Property Name As String
        End Class

        <Route("/customers/{CustomerId}", "PATCH")>
        Public Partial Class PatchCustomers
            Implements IReturn(Of IdResponse)
            Implements IPatch
            Implements IPatchDb(Of Customers)
            Public Overridable Property CustomerId As Long
            Public Overridable Property FirstName As String
            Public Overridable Property LastName As String
            Public Overridable Property Company As String
            Public Overridable Property Address As String
            Public Overridable Property City As String
            Public Overridable Property State As String
            Public Overridable Property Country As String
            Public Overridable Property PostalCode As String
            Public Overridable Property Phone As String
            Public Overridable Property Fax As String
            Public Overridable Property Email As String
            Public Overridable Property SupportRepId As Long?
        End Class

        <Route("/employees/{EmployeeId}", "PATCH")>
        Public Partial Class PatchEmployees
            Implements IReturn(Of IdResponse)
            Implements IPatch
            Implements IPatchDb(Of Employees)
            Public Overridable Property EmployeeId As Long
            Public Overridable Property LastName As String
            Public Overridable Property FirstName As String
            Public Overridable Property Title As String
            Public Overridable Property ReportsTo As Long?
            Public Overridable Property BirthDate As Date?
            Public Overridable Property HireDate As Date?
            Public Overridable Property Address As String
            Public Overridable Property City As String
            Public Overridable Property State As String
            Public Overridable Property Country As String
            Public Overridable Property PostalCode As String
            Public Overridable Property Phone As String
            Public Overridable Property Fax As String
            Public Overridable Property Email As String
        End Class

        <Route("/genres/{GenreId}", "PATCH")>
        Public Partial Class PatchGenres
            Implements IReturn(Of IdResponse)
            Implements IPatch
            Implements IPatchDb(Of Genres)
            Public Overridable Property GenreId As Long
            Public Overridable Property Name As String
        End Class

        <Route("/invoiceitems/{InvoiceLineId}", "PATCH")>
        Public Partial Class PatchInvoiceItems
            Implements IReturn(Of IdResponse)
            Implements IPatch
            Implements IPatchDb(Of InvoiceItems)
            Public Overridable Property InvoiceLineId As Long
            Public Overridable Property InvoiceId As Long
            Public Overridable Property TrackId As Long
            Public Overridable Property UnitPrice As Decimal
            Public Overridable Property Quantity As Long
        End Class

        <Route("/invoices/{InvoiceId}", "PATCH")>
        Public Partial Class PatchInvoices
            Implements IReturn(Of IdResponse)
            Implements IPatch
            Implements IPatchDb(Of Invoices)
            Public Overridable Property InvoiceId As Long
            Public Overridable Property CustomerId As Long
            Public Overridable Property InvoiceDate As Date
            Public Overridable Property BillingAddress As String
            Public Overridable Property BillingCity As String
            Public Overridable Property BillingState As String
            Public Overridable Property BillingCountry As String
            Public Overridable Property BillingPostalCode As String
            Public Overridable Property Total As Decimal
        End Class

        <Route("/mediatypes/{MediaTypeId}", "PATCH")>
        Public Partial Class PatchMediaTypes
            Implements IReturn(Of IdResponse)
            Implements IPatch
            Implements IPatchDb(Of MediaTypes)
            Public Overridable Property MediaTypeId As Long
            Public Overridable Property Name As String
        End Class

        <Route("/playlists/{PlaylistId}", "PATCH")>
        Public Partial Class PatchPlaylists
            Implements IReturn(Of IdResponse)
            Implements IPatch
            Implements IPatchDb(Of Playlists)
            Public Overridable Property PlaylistId As Long
            Public Overridable Property Name As String
        End Class

        <Route("/tracks/{TrackId}", "PATCH")>
        Public Partial Class PatchTracks
            Implements IReturn(Of IdResponse)
            Implements IPatch
            Implements IPatchDb(Of Tracks)
            Public Overridable Property TrackId As Long
            Public Overridable Property Name As String
            Public Overridable Property AlbumId As Long?
            Public Overridable Property MediaTypeId As Long
            Public Overridable Property GenreId As Long?
            Public Overridable Property Composer As String
            Public Overridable Property Milliseconds As Long
            Public Overridable Property Bytes As Long?
            Public Overridable Property UnitPrice As Decimal
        End Class

        <Route("/albums", "GET")>
        <Route("/albums/{AlbumId}", "GET")>
        Public Partial Class QueryAlbums
            Inherits QueryDb(Of Albums)
            Implements IReturn(Of QueryResponse(Of Albums))
            Implements IGet
            Public Overridable Property AlbumId As Long?
        End Class

        <Route("/artists", "GET")>
        <Route("/artists/{ArtistId}", "GET")>
        Public Partial Class QueryArtists
            Inherits QueryDb(Of Artists)
            Implements IReturn(Of QueryResponse(Of Artists))
            Implements IGet
            Public Overridable Property ArtistId As Long?
            Public Overridable Property ArtistIdBetween As Long()
            Public Overridable Property NameStartsWith As String
        End Class

        <Route("/customers", "GET")>
        <Route("/customers/{CustomerId}", "GET")>
        Public Partial Class QueryCustomers
            Inherits QueryDb(Of Customers)
            Implements IReturn(Of QueryResponse(Of Customers))
            Implements IGet
            Public Overridable Property CustomerId As Long?
        End Class

        <Route("/employees", "GET")>
        <Route("/employees/{EmployeeId}", "GET")>
        Public Partial Class QueryEmployees
            Inherits QueryDb(Of Employees)
            Implements IReturn(Of QueryResponse(Of Employees))
            Implements IGet
            Public Overridable Property EmployeeId As Long?
        End Class

        <Route("/genres", "GET")>
        <Route("/genres/{GenreId}", "GET")>
        Public Partial Class QueryGenres
            Inherits QueryDb(Of Genres)
            Implements IReturn(Of QueryResponse(Of Genres))
            Implements IGet
            Public Overridable Property GenreId As Long?
        End Class

        <Route("/invoiceitems", "GET")>
        <Route("/invoiceitems/{InvoiceLineId}", "GET")>
        Public Partial Class QueryInvoiceItems
            Inherits QueryDb(Of InvoiceItems)
            Implements IReturn(Of QueryResponse(Of InvoiceItems))
            Implements IGet
            Public Overridable Property InvoiceLineId As Long?
        End Class

        <Route("/invoices", "GET")>
        <Route("/invoices/{InvoiceId}", "GET")>
        Public Partial Class QueryInvoices
            Inherits QueryDb(Of Invoices)
            Implements IReturn(Of QueryResponse(Of Invoices))
            Implements IGet
            Public Overridable Property InvoiceId As Long?
        End Class

        <Route("/mediatypes", "GET")>
        <Route("/mediatypes/{MediaTypeId}", "GET")>
        Public Partial Class QueryMediaTypes
            Inherits QueryDb(Of MediaTypes)
            Implements IReturn(Of QueryResponse(Of MediaTypes))
            Implements IGet
            Public Overridable Property MediaTypeId As Long?
        End Class

        <Route("/playlists", "GET")>
        <Route("/playlists/{PlaylistId}", "GET")>
        Public Partial Class QueryPlaylists
            Inherits QueryDb(Of Playlists)
            Implements IReturn(Of QueryResponse(Of Playlists))
            Implements IGet
            Public Overridable Property PlaylistId As Long?
        End Class

        <Route("/tracks", "GET")>
        <Route("/tracks/{TrackId}", "GET")>
        Public Partial Class QueryTracks
            Inherits QueryDb(Of Tracks)
            Implements IReturn(Of QueryResponse(Of Tracks))
            Implements IGet
            Public Overridable Property TrackId As Long?
            Public Overridable Property NameContains As String
        End Class

        <Route("/albums/{AlbumId}", "PUT")>
        Public Partial Class UpdateAlbums
            Implements IReturn(Of IdResponse)
            Implements IPut
            Implements IUpdateDb(Of Albums)
            Public Overridable Property AlbumId As Long
            Public Overridable Property Title As String
            Public Overridable Property ArtistId As Long
        End Class

        <Route("/artists/{ArtistId}", "PUT")>
        Public Partial Class UpdateArtists
            Implements IReturn(Of IdResponse)
            Implements IPut
            Implements IUpdateDb(Of Artists)
            Public Overridable Property ArtistId As Long
            Public Overridable Property Name As String
        End Class

        <Route("/customers/{CustomerId}", "PUT")>
        Public Partial Class UpdateCustomers
            Implements IReturn(Of IdResponse)
            Implements IPut
            Implements IUpdateDb(Of Customers)
            Public Overridable Property CustomerId As Long
            Public Overridable Property FirstName As String
            Public Overridable Property LastName As String
            Public Overridable Property Company As String
            Public Overridable Property Address As String
            Public Overridable Property City As String
            Public Overridable Property State As String
            Public Overridable Property Country As String
            Public Overridable Property PostalCode As String
            Public Overridable Property Phone As String
            Public Overridable Property Fax As String
            Public Overridable Property Email As String
            Public Overridable Property SupportRepId As Long?
        End Class

        <Route("/employees/{EmployeeId}", "PUT")>
        Public Partial Class UpdateEmployees
            Implements IReturn(Of IdResponse)
            Implements IPut
            Implements IUpdateDb(Of Employees)
            Public Overridable Property EmployeeId As Long
            Public Overridable Property LastName As String
            Public Overridable Property FirstName As String
            Public Overridable Property Title As String
            Public Overridable Property ReportsTo As Long?
            Public Overridable Property BirthDate As Date?
            Public Overridable Property HireDate As Date?
            Public Overridable Property Address As String
            Public Overridable Property City As String
            Public Overridable Property State As String
            Public Overridable Property Country As String
            Public Overridable Property PostalCode As String
            Public Overridable Property Phone As String
            Public Overridable Property Fax As String
            Public Overridable Property Email As String
        End Class

        <Route("/genres/{GenreId}", "PUT")>
        Public Partial Class UpdateGenres
            Implements IReturn(Of IdResponse)
            Implements IPut
            Implements IUpdateDb(Of Genres)
            Public Overridable Property GenreId As Long
            Public Overridable Property Name As String
        End Class

        <Route("/invoiceitems/{InvoiceLineId}", "PUT")>
        Public Partial Class UpdateInvoiceItems
            Implements IReturn(Of IdResponse)
            Implements IPut
            Implements IUpdateDb(Of InvoiceItems)
            Public Overridable Property InvoiceLineId As Long
            Public Overridable Property InvoiceId As Long
            Public Overridable Property TrackId As Long
            Public Overridable Property UnitPrice As Decimal
            Public Overridable Property Quantity As Long
        End Class

        <Route("/invoices/{InvoiceId}", "PUT")>
        Public Partial Class UpdateInvoices
            Implements IReturn(Of IdResponse)
            Implements IPut
            Implements IUpdateDb(Of Invoices)
            Public Overridable Property InvoiceId As Long
            Public Overridable Property CustomerId As Long
            Public Overridable Property InvoiceDate As Date
            Public Overridable Property BillingAddress As String
            Public Overridable Property BillingCity As String
            Public Overridable Property BillingState As String
            Public Overridable Property BillingCountry As String
            Public Overridable Property BillingPostalCode As String
            Public Overridable Property Total As Decimal
        End Class

        <Route("/mediatypes/{MediaTypeId}", "PUT")>
        Public Partial Class UpdateMediaTypes
            Implements IReturn(Of IdResponse)
            Implements IPut
            Implements IUpdateDb(Of MediaTypes)
            Public Overridable Property MediaTypeId As Long
            Public Overridable Property Name As String
        End Class

        <Route("/playlists/{PlaylistId}", "PUT")>
        Public Partial Class UpdatePlaylists
            Implements IReturn(Of IdResponse)
            Implements IPut
            Implements IUpdateDb(Of Playlists)
            Public Overridable Property PlaylistId As Long
            Public Overridable Property Name As String
        End Class

        <Route("/tracks/{TrackId}", "PUT")>
        Public Partial Class UpdateTracks
            Implements IReturn(Of IdResponse)
            Implements IPut
            Implements IUpdateDb(Of Tracks)
            Public Overridable Property TrackId As Long
            Public Overridable Property Name As String
            Public Overridable Property AlbumId As Long?
            Public Overridable Property MediaTypeId As Long
            Public Overridable Property GenreId As Long?
            Public Overridable Property Composer As String
            Public Overridable Property Milliseconds As Long
            Public Overridable Property Bytes As Long?
            Public Overridable Property UnitPrice As Decimal
        End Class

        Public Partial Class Albums
            Public Overridable Property AlbumId As Long
            <Required>
            Public Overridable Property Title As String

            Public Overridable Property ArtistId As Long
        End Class

        Public Partial Class Artists
            Public Overridable Property ArtistId As Long
            Public Overridable Property Name As String
        End Class

        Public Partial Class Customers
            Public Overridable Property CustomerId As Long
            <Computed>
            Public Overridable Property DisplayName As String

            <Required>
            Public Overridable Property FirstName As String

            <Required>
            Public Overridable Property LastName As String

            Public Overridable Property SupportRepId As Long?
            Public Overridable Property Company As String
            Public Overridable Property Address As String
            Public Overridable Property City As String
            Public Overridable Property State As String
            Public Overridable Property Country As String
            Public Overridable Property PostalCode As String
            Public Overridable Property Phone As String
            Public Overridable Property Fax As String
            <Required>
            Public Overridable Property Email As String
        End Class

        Public Partial Class Employees
            Public Overridable Property EmployeeId As Long
            <Required>
            Public Overridable Property LastName As String

            <Required>
            Public Overridable Property FirstName As String

            Public Overridable Property Title As String
            Public Overridable Property ReportsTo As Long?
            Public Overridable Property BirthDate As Date?
            Public Overridable Property HireDate As Date?
            Public Overridable Property Address As String
            Public Overridable Property City As String
            Public Overridable Property State As String
            Public Overridable Property Country As String
            Public Overridable Property PostalCode As String
            Public Overridable Property Phone As String
            Public Overridable Property Fax As String
            Public Overridable Property Email As String
        End Class

        Public Partial Class Genres
            Public Overridable Property GenreId As Long
            Public Overridable Property Name As String
        End Class

        Public Partial Class InvoiceItems
            Public Overridable Property InvoiceLineId As Long
            Public Overridable Property InvoiceId As Long
            Public Overridable Property TrackId As Long
            Public Overridable Property UnitPrice As Decimal
            Public Overridable Property Quantity As Long
        End Class

        Public Partial Class Invoices
            Public Overridable Property InvoiceId As Long
            Public Overridable Property CustomerId As Long
            Public Overridable Property InvoiceDate As Date
            Public Overridable Property Total As Decimal
            Public Overridable Property BillingAddress As String
            Public Overridable Property BillingCity As String
            Public Overridable Property BillingState As String
            Public Overridable Property BillingCountry As String
            Public Overridable Property BillingPostalCode As String
        End Class

        Public Partial Class MediaTypes
            Public Overridable Property MediaTypeId As Long
            Public Overridable Property Name As String
        End Class

        Public Partial Class Playlists
            Public Overridable Property PlaylistId As Long
            Public Overridable Property Name As String
        End Class

        Public Partial Class Tracks
            Public Overridable Property TrackId As Long
            <Required>
            Public Overridable Property Name As String

            <References(GetType(Albums))>
            Public Overridable Property AlbumId As Long?

            <References(GetType(MediaTypes))>
            Public Overridable Property MediaTypeId As Long

            <References(GetType(Genres))>
            Public Overridable Property GenreId As Long?

            Public Overridable Property Composer As String
            Public Overridable Property Milliseconds As Long
            Public Overridable Property Bytes As Long?
            Public Overridable Property UnitPrice As Decimal
            Public Overridable Property Album As Albums
            Public Overridable Property MediaType As MediaTypes
            Public Overridable Property Genre As Genres
        End Class
    End Namespace
End Namespace

