1
1
schema
2
2
@link (url : " https://specs.apollo.dev/link/v1.0" )
3
- @link (url : " https://specs.apollo.dev/join/v0.2 " , for : EXECUTION )
4
- @link (url : " https://specs.apollo.dev/tag/v0.2 " )
3
+ @link (url : " https://specs.apollo.dev/join/v0.3 " , for : EXECUTION )
4
+ @link (url : " https://specs.apollo.dev/tag/v0.3 " )
5
5
@link (url : " https://specs.apollo.dev/inaccessible/v0.2" , for : SECURITY )
6
6
@link (url : " https://myspecs.dev/myDirective/v1.0" , import : ["@myDirective" , {name : " @anotherDirective" , as : " @hello" }])
7
7
{
@@ -12,19 +12,23 @@ directive @hello on FIELD_DEFINITION
12
12
13
13
directive @inaccessible on FIELD_DEFINITION | OBJECT | INTERFACE | UNION | ARGUMENT_DEFINITION | SCALAR | ENUM | ENUM_VALUE | INPUT_OBJECT | INPUT_FIELD_DEFINITION
14
14
15
- directive @join__field (graph : join__Graph ! , requires : join__FieldSet , provides : join__FieldSet , type : String , external : Boolean , override : String , usedOverridden : Boolean ) repeatable on FIELD_DEFINITION | INPUT_FIELD_DEFINITION
15
+ directive @join__enumValue (graph : join__Graph ! ) repeatable on ENUM_VALUE
16
+
17
+ directive @join__field (graph : join__Graph , requires : join__FieldSet , provides : join__FieldSet , type : String , external : Boolean , override : String , usedOverridden : Boolean ) repeatable on FIELD_DEFINITION | INPUT_FIELD_DEFINITION
16
18
17
19
directive @join__graph (name : String ! , url : String ! ) on ENUM_VALUE
18
20
19
21
directive @join__implements (graph : join__Graph ! , interface : String ! ) repeatable on OBJECT | INTERFACE
20
22
21
- directive @join__type (graph : join__Graph ! , key : join__FieldSet , extension : Boolean ! = false , resolvable : Boolean ! = true ) repeatable on OBJECT | INTERFACE | UNION | ENUM | INPUT_OBJECT | SCALAR
23
+ directive @join__type (graph : join__Graph ! , key : join__FieldSet , extension : Boolean ! = false , resolvable : Boolean ! = true , isInterfaceObject : Boolean ! = false ) repeatable on OBJECT | INTERFACE | UNION | ENUM | INPUT_OBJECT | SCALAR
24
+
25
+ directive @join__unionMember (graph : join__Graph ! , member : String ! ) repeatable on UNION
22
26
23
27
directive @link (url : String , as : String , for : link__Purpose , import : [link__Import ]) repeatable on SCHEMA
24
28
25
29
directive @myDirective (a : String ! ) on FIELD_DEFINITION
26
30
27
- directive @tag (name : String ! ) repeatable on FIELD_DEFINITION | OBJECT | INTERFACE | UNION | ARGUMENT_DEFINITION | SCALAR | ENUM | ENUM_VALUE | INPUT_OBJECT | INPUT_FIELD_DEFINITION
31
+ directive @tag (name : String ! ) repeatable on FIELD_DEFINITION | OBJECT | INTERFACE | UNION | ARGUMENT_DEFINITION | SCALAR | ENUM | ENUM_VALUE | INPUT_OBJECT | INPUT_FIELD_DEFINITION | SCHEMA
28
32
29
33
type DeliveryEstimates
30
34
@join__type (graph : INVENTORY )
@@ -64,8 +68,17 @@ type Panda
64
68
favoriteFood : String @tag (name : " nom-nom-nom" )
65
69
}
66
70
67
- type Product implements ProductItf & SkuItf
71
+ interface Prod
72
+ @join__type (graph : PRODUCTS , key : " id" )
73
+ {
74
+ id : ID !
75
+ sku : String
76
+ name : String
77
+ }
78
+
79
+ type Product implements ProductItf & Prod & SkuItf
68
80
@join__implements (graph : INVENTORY , interface : " ProductItf" )
81
+ @join__implements (graph : PRODUCTS , interface : " Prod" )
69
82
@join__implements (graph : PRODUCTS , interface : " ProductItf" )
70
83
@join__implements (graph : PRODUCTS , interface : " SkuItf" )
71
84
@join__implements (graph : REVIEWS , interface : " ProductItf" )
@@ -151,9 +164,9 @@ enum ShippingClass
151
164
@join__type (graph : INVENTORY )
152
165
@join__type (graph : PRODUCTS )
153
166
{
154
- STANDARD
155
- EXPRESS
156
- OVERNIGHT
167
+ STANDARD @join__enumValue ( graph : INVENTORY ) @join__enumValue ( graph : PRODUCTS )
168
+ EXPRESS @join__enumValue ( graph : INVENTORY ) @join__enumValue ( graph : PRODUCTS )
169
+ OVERNIGHT @join__enumValue ( graph : INVENTORY )
157
170
}
158
171
159
172
interface SkuItf
@@ -169,4 +182,4 @@ type User
169
182
email : ID ! @tag (name : " test-from-users" )
170
183
totalProductsCreated : Int
171
184
name : String @join__field (graph : USERS )
172
- }
185
+ }
0 commit comments