---
source: crates/graphql-composition/tests/composition_tests.rs
expression: API SDL
input_file: crates/graphql-composition/tests/composition/composed_directives_basic/test.md
---
enum ObserverType {
AMATEUR
SEMIPROFESSIONAL @deprecated(reason: "No such thing as semiprofessionals")
PROFESSIONAL
}
type Bird {
id: ID!
location: String!
name: String!
notes: String @deprecated(reason: "Field is obsolete due to new data model.")
observedAt: DateTime! @deprecated(reason: "Use UNIX timestamps instead as customary in bird watching")
species: String!
}
type BirdObservation {
bird: Bird!
observationID: ID!
observerDetails: ObserverDetails!
timeOfObservation: DateTime!
}
type ObserverDetails {
membershipNumber: String
name: String!
observerType: ObserverType!
}
type BirdSighting @deprecated(reason: "we haven't seen any birds in a while :(") {
bird: Bird!
observer: String!
sightingID: ID!
weatherConditions: String
}
type Query {
bird(id: ID!): Bird
birdObservation(observationID: ID!): BirdObservation
birdObservations(filters: BirdObservationFilters): [BirdObservation]
birdSighting(sightingID: ID!, private: Boolean @deprecated): BirdSighting
birdSightings: [BirdSighting]
birds: [Bird]
}
input BirdObservationFilters {
observedAt: DateTime @deprecated(reason: "UNIX timestamps instead, as usual in bird watching")
observerType: ObserverType
observerName: String
first: Int
}
scalar DateTime