-
Notifications
You must be signed in to change notification settings - Fork 0
/
graphql-directives.ts
155 lines (142 loc) · 4.46 KB
/
graphql-directives.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
import gql from 'graphql-tag'
// https://docs.amplify.aws/cli-legacy/graphql-transformer/directives/
// https://gist.github.com/pikanji/dcb6749293ddb4c68332c56ee910d1ba
// eslint-disable-next-line no-unused-vars
const clientSchemaExtensions = gql`
# https://docs.amplify.aws/cli/graphql/data-modeling/#how-it-works
directive @model(
queries: ModelQueryMap
mutations: ModelMutationMap
subscriptions: ModelSubscriptionMap
timestamps: TimestampConfiguration
) on OBJECT
input ModelMutationMap {
create: String
update: String
delete: String
}
input ModelQueryMap {
get: String
list: String
}
input ModelSubscriptionMap {
onCreate: [String]
onUpdate: [String]
onDelete: [String]
level: ModelSubscriptionLevel
}
enum ModelSubscriptionLevel {
off
public
on
}
input TimestampConfiguration {
createdAt: String
updatedAt: String
}
# https://docs.amplify.aws/cli-legacy/graphql-transformer/key/#definition
directive @key(
name: String
fields: [String!]!
queryField: String
) repeatable on OBJECT
# https://docs.amplify.aws/cli-legacy/graphql-transformer/auth/#definition
directive @auth(rules: [AuthRule!]!) on OBJECT | FIELD_DEFINITION
input AuthRule {
allow: AuthStrategy!
provider: AuthProvider
ownerField: String # defaults to "owner" when using owner auth
identityClaim: String # defaults to "username" when using owner auth
groupClaim: String # defaults to "cognito:groups" when using Group auth
groups: [String] # Required when using Static Group auth
groupsField: String # defaults to "groups" when using Dynamic Group auth
operations: [ModelOperation] # Required for finer control
# The following arguments are deprecated. It is encouraged to use the 'operations' argument.
queries: [ModelQuery]
mutations: [ModelMutation]
}
enum AuthStrategy {
owner
groups
private
public
}
enum AuthProvider {
apiKey
iam
oidc
userPools
}
enum ModelOperation {
create
update
delete
read
}
# The following objects are deprecated. It is encouraged to use ModelOperations.
enum ModelQuery {
get
list
}
enum ModelMutation {
create
update
delete
}
# https://docs.amplify.aws/cli-legacy/graphql-transformer/connection/#definition
directive @connection(keyName: String, fields: [String!]) on FIELD_DEFINITION
# https://docs.amplify.aws/cli-legacy/graphql-transformer/function/#definition
directive @function(name: String!, region: String) on FIELD_DEFINITION
# https://docs.amplify.aws/cli-legacy/graphql-transformer/http/#definition
directive @http(
method: HttpMethod
url: String!
headers: [HttpHeader]
) on FIELD_DEFINITION
enum HttpMethod {
PUT
POST
GET
DELETE
PATCH
}
input HttpHeader {
key: String
value: String
}
# https://docs.amplify.aws/cli-legacy/graphql-transformer/predictions/#definition
directive @predictions(actions: [PredictionsActions!]!) on FIELD_DEFINITION
enum PredictionsActions {
identifyText # uses Amazon Rekognition to detect text
identifyLabels # uses Amazon Rekognition to detect labels
convertTextToSpeech # uses Amazon Polly in a lambda to output a presigned url to synthesized speech
translateText # uses Amazon Translate to translate text from source to target language
}
# https://docs.amplify.aws/cli-legacy/graphql-transformer/searchable/#definition
# Streams data from DynamoDB to OpenSearch and exposes search capabilities.
directive @searchable(queries: SearchableQueryMap) on OBJECT
input SearchableQueryMap {
search: String
}
# https://docs.amplify.aws/cli-legacy/graphql-transformer/versioned/#definition
directive @versioned(
versionField: String = "version"
versionInput: String = "expectedVersion"
) on OBJECT
directive @aws_api_key on OBJECT | FIELD_DEFINITION
directive @aws_iam on OBJECT | FIELD_DEFINITION
directive @aws_oidc on OBJECT | FIELD_DEFINITION
directive @aws_cognito_user_pools on OBJECT | FIELD_DEFINITION
directive @aws_auth on FIELD_DEFINITION
directive @aws_subscribe(mutations: [String]) on FIELD_DEFINITION
directive @hasOne on FIELD_DEFINITION
directive @hasMany on FIELD_DEFINITION
directive @belongsTo on FIELD_DEFINITION
directive @manyToMany(relationName: String) on FIELD_DEFINITION
directive @index(
name: String
queryField: String
sortKeyFields: String
) on FIELD_DEFINITION
scalar AWSDateTime
`