-
Notifications
You must be signed in to change notification settings - Fork 0
/
schema.graphql
4954 lines (3685 loc) · 124 KB
/
schema.graphql
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
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
# GraphQL representation of a Jahia ACL role
type AclRole {
# List of dependencies for a given role
dependencies: [AclRole]
# Role description for a given locale
description(
# locale
locale: String
): String
# Role label for a given locale
label(
# locale
locale: String
): String
# Role name
name: String
# Role group
roleGroup: String
}
# Admin mutations
type AdminMutation {
# Get Jahia admin mutation
jahia: JahiaAdminMutation!
# Personal API tokens mutations
personalApiTokens: PersonalApiTokensMutation
}
# Admin queries root
type AdminQuery {
# Details about the Jahia cluster
cluster: Cluster
# Current datetime
datetime: String
# Get Jahia admin query
jahia: JahiaAdminQuery!
# Get available ACL roles; does not include any hidden or privileged roles
roles: [AclRole]
# Version of the running Jahia instance
version: String! @deprecated(reason: "Deprecated")
# Get user group endpoint
userGroup: UserGroupQuery
# Personal API tokens queries
personalApiTokens: PersonalApiTokensQuery
# Get user administration endpoint
userAdmin: UserAdminQuery
}
# Asset type for files
type Asset {
# Asset metadata
metadata: Metadata
# Mime type of the asset
type: String
# Asset size
size: Long
}
# Category type
type Category {
# Asset metadata
metadata: Metadata
# Description
description: String
# Title
title: String
}
# Details about the Jahia Cluster
type Cluster {
# Is the cluster mode activated on this Jahia instance
isActivated: Boolean
}
# Mutation for configuration value object
type ConfigurationItemValuesMutation {
# Modify a list of items
mutateList(
# property name part
name: String
): ConfigurationItemsListMutation
# Modify a structured object
mutateObject(
# property name part
name: String
): ConfigurationItemValuesMutation
# Remove the specified property and all sub/list properties
remove(
# property name part
name: String
): Boolean
# Set a property value
value(
# property name part
name: String
value: String
): String
}
# Query for configuration value object
type ConfigurationItemValuesQuery {
# Get keys
keys: [String]
# Get a list of items
list(
# property name part
name: String
): ConfigurationItemsListQuery
# Get a sub structured object value
object(
# property name part
name: String
): ConfigurationItemValuesQuery
# Get a property value
value(
# property name part
name: String
): String
# Get property values
values: [GqlConfigurationProperty]
}
# Mutation for configuration list of values
type ConfigurationItemsListMutation {
# Adds a new sub list to the list
addList: ConfigurationItemsListMutation
# Adds a new structured object to the list
addObject: ConfigurationItemValuesMutation
# Adds a property value to the list
addValue(value: String): String
}
# Query for configuration list of values
type ConfigurationItemsListQuery {
# Get sub lists of items
lists: [ConfigurationItemsListQuery]
# Get sub structured object values
objects: [ConfigurationItemValuesQuery]
# Adds a new structured object to the list
size: Int
# Get property values
values: [String]
}
# Simple node count aggregation
type CountAggregation {
# Count all values
values(
# The name of the JCR property
name: String!
# The language to obtain the property in; must be a valid language code for internationalized properties, does not matter for non-internationalized ones
language: String
): Int
}
# GraphQL representation of a Jahia current user
type Current_32_user {
# Full display name
displayName: String
# Email of the user
email: String
# First name of the user
firstname: String
# Preferred language by the user
language: String
# Last name of the user
lastname: String
# Displays if user is locked
locked: Boolean
# User name
name: String! @deprecated(reason: "Deprecated")
# Get the corresponding JCR node
node: JCRNode
# User organization
organization: String
# User property
property(
# The name of the property
name: String!
): String
# Site where the user is defined
site: JCRSite
# Username of the user
username: String!
# Is this principal member of the specified group
memberOf(
# Target group
group: String
# Site where the group is defined
site: String
): Boolean
}
# Date type
scalar Date
type EditorForm {
# Retrieve a description text for the form, might contain explanations on how to use the form
description: String
# Retrieve the displayable name of the form (in a specific language)
displayName: String
# Retrieve the name (aka identifier) of the form
name: String
# Retrieve the sections that make up the form
sections: [EditorFormSection]
# Returns the preview status of the form. If true, the form can display a preview.
hasPreview: Boolean
}
type EditorFormField {
# This value contains the current existing values for the field.
currentValues: [EditorFormFieldValue]
# The declaring node type for the field
declaringNodeType: String
# This value contains the default values for the field.
defaultValues: [EditorFormFieldValue]
# The description of the field
description: String
# The displayable name of the field
displayName: String
# The error message of the field
errorMessage: String
# This value is true if the field allows for internationalized values
i18n: Boolean
# This value is true if the field is mandatory
mandatory: Boolean
# This value is true if the field value is multi-valued.
multiple: Boolean
# The name of the field
name: String
# This value is true if the field is readonly. This could be due to locks or permissions
readOnly: Boolean
# The required type for the field
requiredType: JCRPropertyType
# Options for the selector type. For JCR definitions, this will usually include choicelist initializer name and properties.
selectorOptions: [EditorFormProperty]
# The selector type for the field. In the case of fields generated from node types, this is actually the SelectorType.
selectorType: String
# This array contains the list of possible values to choose from
valueConstraints: [EditorFormFieldValueConstraint]
}
type EditorFormFieldSet {
# Only used in the case of a dynamic field set. Set to true if it is activated
activated: Boolean
# Get the internationalized description of the field set
description: String
# Get the internationalized displayable name of the field set
displayName: String
# Defines if the field has to be displayed or not
displayed: Boolean
# True if this is dynamic field set (meaningin it can be activated or not)
dynamic: Boolean
# Get the fields contained in the target
fields: [EditorFormField]
# Get the name of the field set
name: String
# This value is true if the fieldset is readonly. This could be due to locks or permissions
readOnly: Boolean
}
type EditorFormFieldValue {
# This value's string representation
string: String
# The type of this value
type: String
}
type EditorFormFieldValueConstraint {
# The value as it is intended to be displayed in UIs
displayValue: String
# The key of the value to get the translated value from the client side
displayValueKey: String
# The properties for the value
properties: [EditorFormProperty]
# The actual value to be used in storage
value: EditorFormFieldValue
}
type EditorFormProperty {
# Property name
name: String
# Property value
value: String
# Property values
values: [String]
}
type EditorFormSection {
# Is the section expanded
expanded: Boolean
# Returns the description of the section
description: String
# Retrieve the displayable name of the section
displayName: String
# Returns the field sets contained in this section
fieldSets: [EditorFormFieldSet]
# Retrieve the name (aka identifier) of the section
name: String
# Check if this section should be hide
hide: Boolean
}
enum FieldEvaluation {
# The field value is equal to given one
EQUAL
# The field value is different from given one
DIFFERENT
# The field value is empty - either null value, or no items for a list
EMPTY
# The field value is not empty - if a list, must contain at least one item
NOT_EMPTY
# The property value contains given String
CONTAINS
# The property value contains given String ignoring the case
CONTAINS_IGNORE_CASE
# The property value is among given Strings
AMONG
}
# GraphQL representation of a generic JCR node
type GenericJCRNode implements JCRNode {
# Get ACL info for this node
acl: GqlAcl
# Get the last modified date of this node and its descendants. The recursion in descendants can be controlled by recursionTypesFilter. If no filter is passed, recursion will stop by default on sub pages.
aggregatedLastModifiedDate(
# The language
language: String
# Stop recursion on graphql field values
recursionTypesFilter: InputNodeTypesInput
): String
# GraphQL representations of the ancestor nodes of the JCR node, top down direction
ancestors(
# The path of the topmost ancestor node to include in the result; null or empty string to include all the ancestor nodes
upToPath: String
# Filter by graphQL fields values
fieldFilter: InputFieldFiltersInput
): [JCRNode]!
# GraphQL representations of the child nodes, according to parameters passed
children(
# fetching only nodes before this node (exclusive)
before: String
# fetching only nodes after this node (exclusive)
after: String
# fetching only the first certain number of nodes
first: Int
# fetching only the last certain number of nodes
last: Int
# fetching only nodes after this node (inclusive)
offset: Int
# fetching only the first certain number of nodes
limit: Int
# Filter of child nodes by their names; null to avoid such filtering
names: [String]
# Language to use to get children
validInLanguage: String
# Filter of child nodes by their types; null to avoid such filtering
typesFilter: InputNodeTypesInput
# Filter of child nodes by their property values; null to avoid such filtering
propertiesFilter: InputNodePropertiesInput
# Filter by graphQL fields values
fieldFilter: InputFieldFiltersInput
# Sort by graphQL fields values
fieldSorter: InputFieldSorterInput
# Group fields according to specified criteria
fieldGrouping: InputFieldGroupingInput
# Include the current node itself in results
includesSelf: Boolean = false
): JCRNodeConnection
# GraphQL representation of a descendant node, based on its relative path
descendant(
# Name or relative path of the sub node
relPath: String!
): JCRNode
# GraphQL representations of the descendant nodes, according to parameters passed
descendants(
# fetching only nodes before this node (exclusive)
before: String
# fetching only nodes after this node (exclusive)
after: String
# fetching only the first certain number of nodes
first: Int
# fetching only the last certain number of nodes
last: Int
# fetching only nodes after this node (inclusive)
offset: Int
# fetching only the first certain number of nodes
limit: Int
# Filter of descendant nodes by their types; null to avoid such filtering
typesFilter: InputNodeTypesInput
# Language to use to get children
validInLanguage: String
# Filter of descendant nodes by their property values; null to avoid such filtering
propertiesFilter: InputNodePropertiesInput
# Filter out and stop recursion on nodes by their types; null to avoid such filtering
recursionTypesFilter: InputNodeTypesInput
# Filter out and stop recursion on nodes by their property values; null to avoid such filtering
recursionPropertiesFilter: InputNodePropertiesInput
# Filter by graphQL fields values
fieldFilter: InputFieldFiltersInput
# Sort by graphQL fields values
fieldSorter: InputFieldSorterInput
# Group fields according to specified criteria
fieldGrouping: InputFieldGroupingInput
): JCRNodeConnection
# The displayable name of the JCR node
displayName(
# Language
language: String
): String
# Check if the given locales need translation, by comparing last modifications dates with already existing translations
languagesToTranslate(
# The translated languages
languagesTranslated: [String]
# The languages to check
languagesToCheck: [String]
): [String]
# The name of the JCR node this object represents
name: String!
# GraphQL representation of this node in certain workspace
nodeInWorkspace(
# The target workspace
workspace: Workspace!
): JCRNode
# Get information on the operations that can be done on this node
operationsSupport: GqlOperationsSupport
# GraphQL representation of the parent JCR node
parent: JCRNode
# The path of the JCR node this object represents
path: String!
# GraphQL representations of the properties in the requested language
properties(
# The names of the JCR properties; null to obtain all properties
names: [String]
# The language to obtain the properties in; must be a valid language code in case any internationalized properties are requested, does not matter for non-internationalized ones
language: String
# Filter by graphQL fields values
fieldFilter: InputFieldFiltersInput
# When set to true, returns the node in the default language if there is no translation for the requested language. Returns null if the option "Replace untranslated content with the default language content" is not activated for the site of the requested node. Will also return null if there is no translation for the default language.
useFallbackLanguage: Boolean = false
): [JCRProperty]!
# The GraphQL representation of the property in the requested language; null if the property does not exist
property(
# The name of the JCR property
name: String!
# The language to obtain the property in; must be a valid language code for internationalized properties, does not matter for non-internationalized ones
language: String
# When set to true, returns the node in the default language if there is no translation for the requested language. Returns null if the option "Replace untranslated content with the default language content" is not activated for the site of the requested node. Will also return null if there is no translation for the default language.
useFallbackLanguage: Boolean = false
): JCRProperty
# GraphQL representations of the reference properties that target the current JCR Node
references(
# fetching only nodes before this node (exclusive)
before: String
# fetching only nodes after this node (exclusive)
after: String
# fetching only the first certain number of nodes
first: Int
# fetching only the last certain number of nodes
last: Int
# fetching only nodes after this node (inclusive)
offset: Int
# fetching only the first certain number of nodes
limit: Int
# Filter by graphQL fields values
fieldFilter: InputFieldFiltersInput
): JCRPropertyConnection!
# Returns languages of available translations for this node
translationLanguages(
# Optional: Return languages only if it is active for the site
isActiveOnly: Boolean
): [String]
# The UUID of the JCR node this object represents
uuid: String!
# Get the workspace of the query
workspace: Workspace!
# Check if the current user has a specific permission
hasPermission(
# The name of the permission
permissionName: String!
): Boolean
# Give access to the experience fields for the current node
asExperience: GqlExperience
jExperience(
# Unomi profile id
profileId: String
# Unomi session id
sessionId: String
): PersonalizedResult @deprecated(reason: "Use asExperience instead")
# Aggregated publication info about the JCR node
aggregatedPublicationInfo(
# Publication language
language: String!
# Whether to take sub-nodes into account when calculating the aggregated publication status
subNodes: Boolean = false
# Whether to take references into account when calculating the aggregated publication status
references: Boolean = false
): GqlPublicationInfo!
# Get vanity URLs from the current node filtered by the parameters
vanityUrls(
# Languages
languages: [String]
# Filter results based on graphql field values
fieldFilter: InputFieldFiltersInput
): [VanityUrl]
# Returns a list of types allowed under the provided node
allowedChildNodeTypes(
# Whether all sub-types of allowed child node types should be included
includeSubTypes: Boolean = true
# Filter by GraphQL fields values
fieldFilter: InputFieldFiltersInput
): [JCRNodeType]
# Returns the node definition that applies to this node.
definition: JCRNodeDefinition
# Returns an array of <code>NodeType</code> objects representing the mixin node types in effect for this node.
mixinTypes(
# Filter by GraphQL fields values
fieldFilter: InputFieldFiltersInput
): [JCRNodeType]!
# Get the primary node type of this node
primaryNodeType: JCRNodeType!
# Reports if the current node matches the nodetype(s) passed in parameter
isNodeType(
# Node type name
type: InputNodeTypesInput!
): Boolean!
# Read default Work in progress information. Set by "wip.checkbox.checked" system proprety
defaultWipInfo: wipInfo
# Read work in progress information for a given node
wipInfo: wipInfo
# Retrieve lock info of the current node
lockInfo: LockInfo
# Render URL in ajax mode
ajaxRenderUrl: String
# Returns the first parent of the current node that can be displayed in full page. If no matching node is found, null is returned.
displayableNode: JCRNode
# Gets the fully rendered content for this node
renderedContent(
# Name of the view
view: String
# Template type
templateType: String
# Rendering context configuration
contextConfiguration: String
# Language
language: String
# Main resource path
mainResourcePath: String
# Is edit mode
isEditMode: Boolean
# Additional request attributes
requestAttributes: [InputRenderRequestAttributeInput]
): RenderedNode
# Check if the node as a renderable template associated with it (not a view a template).
isDisplayableNode: Boolean
# GraphQL representation of the site the JCR node belongs to, or the system site in case the node does not belong to any site
site: JCRSite
# Returns the next available name for a node, appending if needed numbers.
findAvailableNodeName(nodeType: String, language: String): String
# Returns edit lock status of the current node object
lockedAndCannotBeEdited: Boolean
}
# ACL properties and list of access control entry
type GqlAcl {
# Get list of access control entries for this ACL
aclEntries(
# Fetch ACL entry only for this principal
principalFilter: InputPrincipalInput
# The languages to check
inclInherited: Boolean
): [GqlAclEntry]
# Get inheritance break attribute for this node
inheritanceBreak: Boolean
# Get parent node for this ACL
parentNode: JCRNode
}
# ACL entry
type GqlAclEntry {
# Type of access for this ACL entry - one of GRANT, DENY or EXTERNAL
aclEntryType: String
# External permissions name
externalPermissionsName: String
# Get node where this ACL entry originated from
inheritedFrom: JCRNode
# Get principal for this entry
principal: Principal
# Get role for this entry
role: AclRole
# Return true if this ACL entry did not originate from this ACL's parent node
inherited: Boolean
}
# Background job
type GqlBackgroundJob {
# The amount of time the job ran for (in milliseconds). The returned value will be -1 until the job has actually completed
duration: Long
# The job group name
group: String
# The job (Boolean) property that correspond to the given name. The returned value will be null in case the job doesn't have the property
jobBooleanProperty(
# The job name
name: String
): Boolean
# The job (Int) property that correspond to the given name. The returned value will be null in case the job doesn't have the property
jobIntegerProperty(
# The job name
name: String
): Int
# The job (Long) property that correspond to the given name. The returned value will be null in case the job doesn't have the property
jobLongProperty(
# The job name
name: String
): Long
# The job state is different from the status, it reflect the last action done on the job instance (Started, Vetoed, Finished)
jobState: GqlBackgroundJobState
# The job status
jobStatus: GqlBackgroundJobStatus
# The job (String) property that correspond to the given name. The returned value will be null in case the job doesn't have the property
jobStringProperty(
# The job name
name: String
): String
# The job name
name: String
# The site key. The returned value will be null in case the job doesn't have associated site key
siteKey: String
# The user key. The returned value will be null in case the job doesn't have associated user key
userKey: String
}
enum GqlBackgroundJobState {
# STARTED
STARTED
# VETOED
VETOED
# FINISHED
FINISHED
}
enum GqlBackgroundJobStatus {
# ADDED
ADDED
# SCHEDULED
SCHEDULED
# EXECUTING
EXECUTING
# SUCCESSFUL
SUCCESSFUL
# FAILED
FAILED
# CANCELED
CANCELED
}
# Mutation for OSGi configuration
type GqlConfigurationMutation {
# Modify a list of items
mutateList(
# property name part
name: String
): ConfigurationItemsListMutation
# Modify a structured object
mutateObject(
# property name part
name: String
): ConfigurationItemValuesMutation
# Remove the specified property and all sub/list properties
remove(
# property name part
name: String
): Boolean
# Set a property value
value(
# property name part
name: String
value: String
): String
}
# OSGi configuration property
type GqlConfigurationProperty {
# The property key
key: String
# The property value
value: String
}
# Query for OSGi configuration
type GqlConfigurationQuery {
# Get all properties of the configuration, as they are stored in OSGi
flatKeys: [String]
# Get all properties of the configuration, as they are stored in OSGi
flatProperties: [GqlConfigurationProperty]
# Get keys
keys: [String]
# Get a list of items
list(
# property name part
name: String
): ConfigurationItemsListQuery
# Get a sub structured object value
object(
# property name part
name: String
): ConfigurationItemValuesQuery
# Get a property value
value(
# property name part
name: String
): String
# Get property values
values: [GqlConfigurationProperty]
}
type GqlDashboard {
# Retrieves the list of modules currently available on the platform
modules: [GqlModule]
# Whether the tools are accessible on the installation
toolsAccess: Boolean
}
type GqlEditorFormMutations {
# Publish the edited node with the associated technical sub nodes (visibility conditions, vanity urls, ACLs)
publishForm(
# UUID or path of the edited node.
uuidOrPath: String!
# A string representation of a locale, in IETF BCP 47 language tag format, ie en_US, en, fr, fr_CH, ...
locale: String!
): Boolean
# Unlock the given node for edition, if the node is locked.
unlockEditor(
# An ID generated client side used to identify the lock
editorID: String!
): Boolean
}
type GqlEditorForms {
# Retrieve the custom configuration path for CKEditor
ckeditorConfigPath(
# node path
nodePath: String
): String
# Retrieve the toolbar type for CKEditor
ckeditorToolbar(
# node path
nodePath: String
): String
# Get a list of allowed child nodeTypes for a given nodeType and path. (Note that it returns nothing for type [jnt:page]. [jnt:contentFolder] is filterered by [jmix:editorialContent])
contentTypesAsTree(
# List of types we want to retrieve, null for all
nodeTypes: [String]
# the child node name, used to check the type allowed for this named child node, do not specify if you want to check for unnamed children
childNodeName: String
# List of types we want to exclude, null for all
excludedNodeTypes: [String]
# if true, retrieves all the sub types of the given node types, if false, returns the type only. Default value is true
includeSubTypes: Boolean = true
# if true, check the contribute property of the node. Default value is true
useContribute: Boolean = true
# thPath of an existing node under with the new content will be created.
nodePath: String!
# A string representation of a locale, in IETF BCP 47 language tag format, ie en_US, en, fr, fr_CH, ...
uiLocale: String!
): [NodeTypeTreeEntry]
# Get a editor form to create a new content from its nodetype and parent
createForm(
# The primary node type name identifying the form we want to retrieve
primaryNodeType: String!
# A string representation of a locale, in IETF BCP 47 language tag format, ie en_US, en, fr, fr_CH, ...
uiLocale: String!
# A string representation of a locale, in IETF BCP 47 language tag format, ie en_US, en, fr, fr_CH, ...
locale: String!
# uuid or path of an existing node under with the new content will be created.
uuidOrPath: String!
): EditorForm