SchemaBuilderV2   B
last analyzed

Complexity

Total Complexity 9

Size/Duplication

Total Lines 1829
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 9
eloc 1565
c 1
b 0
f 0
dl 0
loc 1829
rs 8.8

8 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 2
A getResourceType() 0 3 1
A getSchemaClass() 0 3 1
A getUser() 0 3 1
A getServiceProviderConfig() 0 3 1
A getSchema() 0 3 1
A getGroup() 0 3 1
A getEnterpriseUser() 0 3 1
1
<?php
2
3
/*
4
 * This file is part of the tmilos/scim-schema package.
5
 *
6
 * (c) Milos Tomic <[email protected]>
7
 *
8
 * This source file is subject to the MIT license that is bundled
9
 * with this source code in the file LICENSE.
10
 */
11
12
namespace Tmilos\ScimSchema\Builder;
13
14
use Tmilos\ScimSchema\Model\v2\Schema;
15
use Tmilos\ScimSchema\ScimConstants;
16
use Tmilos\ScimSchema\ScimConstantsV2;
17
18
class SchemaBuilderV2 extends SchemaBuilder
19
{
20
    protected static $schemas = array(
21
        ScimConstantsV2::SCHEMA_SCHEMA => array(
22
            'schemas' => array(
23
                'urn:ietf:params:scim:schemas:core:2.0:Schema',
24
            ),
25
            'id' => 'urn:ietf:params:scim:schemas:core:2.0:Schema',
26
            'name' => 'Schema',
27
            'description' => 'Specifies the schema that describes a SCIM schema.',
28
            'attributes' => array(
29
                array(
30
                    'name' => 'name',
31
                    'description' => 'The schema\'s human-readable name. When applicable, service providers MUST specify the name, e.g., \'User\'.',
32
                    'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
33
                    'caseExact' => false,
34
                    'multiValued' => false,
35
                    'mutability' => 'readOnly',
36
                    'required' => false,
37
                    'returned' => 'default',
38
                    'uniqueness' => 'none',
39
                ),
40
                array(
41
                    'name' => 'description',
42
                    'description' => 'The schema\'s human-readable description. When applicable, service providers MUST specify the description.',
43
                    'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
44
                    'caseExact' => false,
45
                    'multiValued' => false,
46
                    'mutability' => 'readOnly',
47
                    'required' => false,
48
                    'returned' => 'default',
49
                    'uniqueness' => 'none',
50
                ),
51
                array(
52
                    'name' => 'attributes',
53
                    'description' => 'A complex attribute that includes the attributes of a schema.',
54
                    'type' => ScimConstants::ATTRIBUTE_TYPE_COMPLEX,
55
                    'multiValued' => true,
56
                    'mutability' => 'readOnly',
57
                    'required' => true,
58
                    'returned' => 'default',
59
                    'uniqueness' => 'none',
60
                    'subAttributes' => array(
61
                        array(
62
                            'name' => 'name',
63
                            'description' => 'The attribute\'s name.',
64
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
65
                            'caseExact' => true,
66
                            'multiValued' => false,
67
                            'mutability' => 'readOnly',
68
                            'required' => true,
69
                            'returned' => 'default',
70
                            'uniqueness' => 'none',
71
                        ),
72
                        array(
73
                            'name' => 'type',
74
                            'description' => 'The attribute\'s data type. Valid values include \'string\', \'complex\', \'boolean\', \'decimal\', \'integer\', \'dateTime\', \'reference\', \'binary\'.',
75
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
76
                            'canonicalValues' => array(
77
                                'string',
78
                                'complex',
79
                                'boolean',
80
                                'decimal',
81
                                'integer',
82
                                'dateTime',
83
                                'reference',
84
                                'binary',
85
                            ),
86
                            'caseExact' => false,
87
                            'multiValued' => false,
88
                            'mutability' => 'readOnly',
89
                            'required' => true,
90
                            'returned' => 'default',
91
                            'uniqueness' => 'none',
92
                        ),
93
                        array(
94
                            'name' => 'description',
95
                            'description' => 'A human-readable description of the attribute.',
96
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
97
                            'caseExact' => false,
98
                            'multiValued' => false,
99
                            'mutability' => 'readOnly',
100
                            'required' => false,
101
                            'returned' => 'default',
102
                            'uniqueness' => 'none',
103
                        ),
104
                        array(
105
                            'name' => 'multiValued',
106
                            'description' => 'A Boolean value indicating an attribute\'s plurality.',
107
                            'type' => ScimConstants::ATTRIBUTE_TYPE_BOOLEAN,
108
                            'multiValued' => false,
109
                            'mutability' => 'readOnly',
110
                            'required' => true,
111
                            'returned' => 'default',
112
                            'uniqueness' => 'none',
113
                        ),
114
                        array(
115
                            'name' => 'required',
116
                            'description' => 'A Boolean value indicating whether or not the attribute is required.',
117
                            'type' => ScimConstants::ATTRIBUTE_TYPE_BOOLEAN,
118
                            'multiValued' => false,
119
                            'mutability' => 'readOnly',
120
                            'required' => true,
121
                            'returned' => 'default',
122
                            'uniqueness' => 'none',
123
                        ),
124
                        array(
125
                            'name' => 'canonicalValues',
126
                            'description' => "A collection of canonical values. When applicable, service providers MUST specify the canonical types, e.g., 'work', 'home'.",
127
                            'type' => ScimConstants::ATTRIBUTE_TYPE_COMPLEX,
128
                            'multiValued' => true,
129
                            'mutability' => 'readOnly',
130
                            'required' => false,
131
                            'returned' => 'default',
132
                            'uniqueness' => 'none',
133
                        ),
134
                        array(
135
                            'name' => 'caseExact',
136
                            'description' => 'A Boolean value indicating whether or not a string attribute is case sensitive.',
137
                            'type' => ScimConstants::ATTRIBUTE_TYPE_BOOLEAN,
138
                            'multiValued' => false,
139
                            'mutability' => 'readOnly',
140
                            'required' => false,
141
                            'returned' => 'default',
142
                            'uniqueness' => 'none',
143
                        ),
144
                        array(
145
                            'name' => 'mutability',
146
                            'description' => 'Indicates whether or not an attribute is modifiable.',
147
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
148
                            'canonicalValues' => array(
149
                                'readOnly',
150
                                'readWrite',
151
                                'immutable',
152
                                'writeOnly',
153
                            ),
154
                            'caseExact' => false,
155
                            'multiValued' => false,
156
                            'mutability' => 'readOnly',
157
                            'required' => false,
158
                            'returned' => 'default',
159
                            'uniqueness' => 'none',
160
                        ),
161
                        array(
162
                            'name' => 'returned',
163
                            'description' => 'Indicates when an attribute is returned in a response (e.g., to a query).',
164
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
165
                            'canonicalValues' => array(
166
                                'always',
167
                                'never',
168
                                'default',
169
                                'request',
170
                            ),
171
                            'caseExact' => false,
172
                            'multiValued' => false,
173
                            'mutability' => 'readOnly',
174
                            'required' => false,
175
                            'returned' => 'default',
176
                            'uniqueness' => 'none',
177
                        ),
178
                        array(
179
                            'name' => 'uniqueness',
180
                            'description' => 'Indicates how unique a value must be.',
181
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
182
                            'canonicalValues' => array(
183
                                'none',
184
                                'server',
185
                                'global',
186
                            ),
187
                            'caseExact' => false,
188
                            'multiValued' => false,
189
                            'mutability' => 'readOnly',
190
                            'required' => false,
191
                            'returned' => 'default',
192
                            'uniqueness' => 'none',
193
                        ),
194
                        array(
195
                            'name' => 'referenceTypes',
196
                            'description' => "Used only with an attribute of type 'reference'. Specifies a SCIM resourceType that a reference attribute MAY refer to, e.g., 'User'.",
197
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
198
                            'canonicalValues' => array(
199
                                'scim',
200
                                'external',
201
                                'uri',
202
                                'User',
203
                                'Group',
204
                            ),
205
                            'caseExact' => false,
206
                            'multiValued' => true,
207
                            'mutability' => 'readOnly',
208
                            'required' => false,
209
                            'returned' => 'default',
210
                            'uniqueness' => 'none',
211
                        ),
212
                        array(
213
                            'name' => 'subAttributes',
214
                            'description' => 'Used to define the sub-attributes of a complex attribute.',
215
                            'type' => ScimConstants::ATTRIBUTE_TYPE_COMPLEX,
216
                            'multiValued' => true,
217
                            'mutability' => 'readOnly',
218
                            'required' => false,
219
                            'returned' => 'default',
220
                            'uniqueness' => 'none',
221
                            'subAttributes' => array(
222
                                array(
223
                                    'name' => 'name',
224
                                    'description' => 'The attribute\'s name.',
225
                                    'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
226
                                    'caseExact' => true,
227
                                    'multiValued' => false,
228
                                    'mutability' => 'readOnly',
229
                                    'required' => true,
230
                                    'returned' => 'default',
231
                                    'uniqueness' => 'none',
232
                                ),
233
                                array(
234
                                    'name' => 'type',
235
                                    'description' => 'The attribute\'s data type. Valid values include \'string\', \'complex\', \'boolean\', \'decimal\', \'integer\', \'dateTime\', \'reference\', \'binary\'.',
236
                                    'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
237
                                    'canonicalValues' => array(
238
                                        'string',
239
                                        'complex',
240
                                        'boolean',
241
                                        'decimal',
242
                                        'integer',
243
                                        'dateTime',
244
                                        'reference',
245
                                        'binary',
246
                                    ),
247
                                    'caseExact' => false,
248
                                    'multiValued' => false,
249
                                    'mutability' => 'readOnly',
250
                                    'required' => true,
251
                                    'returned' => 'default',
252
                                    'uniqueness' => 'none',
253
                                ),
254
                                array(
255
                                    'name' => 'description',
256
                                    'description' => 'A human-readable description of the attribute.',
257
                                    'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
258
                                    'caseExact' => false,
259
                                    'multiValued' => false,
260
                                    'mutability' => 'readOnly',
261
                                    'required' => false,
262
                                    'returned' => 'default',
263
                                    'uniqueness' => 'none',
264
                                ),
265
                                array(
266
                                    'name' => 'multiValued',
267
                                    'description' => 'A Boolean value indicating an attribute\'s plurality.',
268
                                    'type' => ScimConstants::ATTRIBUTE_TYPE_BOOLEAN,
269
                                    'multiValued' => false,
270
                                    'mutability' => 'readOnly',
271
                                    'required' => true,
272
                                    'returned' => 'default',
273
                                    'uniqueness' => 'none',
274
                                ),
275
                                array(
276
                                    'name' => 'required',
277
                                    'description' => 'A Boolean value indicating whether or not the attribute is required.',
278
                                    'type' => ScimConstants::ATTRIBUTE_TYPE_BOOLEAN,
279
                                    'multiValued' => false,
280
                                    'mutability' => 'readOnly',
281
                                    'required' => true,
282
                                    'returned' => 'default',
283
                                    'uniqueness' => 'none',
284
                                ),
285
                                array(
286
                                    'name' => 'canonicalValues',
287
                                    'description' => "A collection of canonical values. When applicable, service providers MUST specify the canonical types, e.g., 'work', 'home'.",
288
                                    'type' => ScimConstants::ATTRIBUTE_TYPE_COMPLEX,
289
                                    'multiValued' => true,
290
                                    'mutability' => 'readOnly',
291
                                    'required' => false,
292
                                    'returned' => 'default',
293
                                    'uniqueness' => 'none',
294
                                ),
295
                                array(
296
                                    'name' => 'caseExact',
297
                                    'description' => 'A Boolean value indicating whether or not a string attribute is case sensitive.',
298
                                    'type' => ScimConstants::ATTRIBUTE_TYPE_BOOLEAN,
299
                                    'multiValued' => false,
300
                                    'mutability' => 'readOnly',
301
                                    'required' => false,
302
                                    'returned' => 'default',
303
                                    'uniqueness' => 'none',
304
                                ),
305
                                array(
306
                                    'name' => 'mutability',
307
                                    'description' => 'Indicates whether or not an attribute is modifiable.',
308
                                    'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
309
                                    'canonicalValues' => array(
310
                                        'readOnly',
311
                                        'readWrite',
312
                                        'immutable',
313
                                        'writeOnly',
314
                                    ),
315
                                    'caseExact' => false,
316
                                    'multiValued' => false,
317
                                    'mutability' => 'readOnly',
318
                                    'required' => false,
319
                                    'returned' => 'default',
320
                                    'uniqueness' => 'none',
321
                                ),
322
                                array(
323
                                    'name' => 'returned',
324
                                    'description' => 'Indicates when an attribute is returned in a response (e.g., to a query).',
325
                                    'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
326
                                    'canonicalValues' => array(
327
                                        'always',
328
                                        'never',
329
                                        'default',
330
                                        'request',
331
                                    ),
332
                                    'caseExact' => false,
333
                                    'multiValued' => false,
334
                                    'mutability' => 'readOnly',
335
                                    'required' => false,
336
                                    'returned' => 'default',
337
                                    'uniqueness' => 'none',
338
                                ),
339
                                array(
340
                                    'name' => 'uniqueness',
341
                                    'description' => 'Indicates how unique a value must be.',
342
                                    'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
343
                                    'canonicalValues' => array(
344
                                        'none',
345
                                        'server',
346
                                        'global',
347
                                    ),
348
                                    'caseExact' => false,
349
                                    'multiValued' => false,
350
                                    'mutability' => 'readOnly',
351
                                    'required' => false,
352
                                    'returned' => 'default',
353
                                    'uniqueness' => 'none',
354
                                ),
355
                                array(
356
                                    'name' => 'referenceTypes',
357
                                    'description' => "Used only with an attribute of type 'reference'. Specifies a SCIM resourceType that a reference attribute MAY refer to, e.g., 'User'.",
358
                                    'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
359
                                    'canonicalValues' => array(
360
                                        'scim',
361
                                        'external',
362
                                        'uri',
363
                                        'User',
364
                                        'Group',
365
                                    ),
366
                                    'caseExact' => false,
367
                                    'multiValued' => true,
368
                                    'mutability' => 'readOnly',
369
                                    'required' => false,
370
                                    'returned' => 'default',
371
                                    'uniqueness' => 'none',
372
                                ),
373
                            ),
374
                        ),
375
                    ),
376
                ),
377
            ),
378
            'externalId' => null,
379
            'meta' => array(
380
                'resourceType' => 'Schema',
381
                'created' => '0001-01-01T00:00:00Z',
382
                'lastModified' => '0001-01-01T00:00:00Z',
383
                'location' => 'http://localhost:9091/scim/v2/schemas/urn:ietf:params:scim:schemas:core:2.0:Schema',
384
                'version' => 'W/"9F2C753BE314F95593B8B16669E0191653049038"',
385
            ),
386
        ),
387
        ScimConstantsV2::SCHEMA_RESOURCE_TYPE => array(
388
            'schemas' => array(
389
                'urn:ietf:params:scim:schemas:core:2.0:Schema',
390
            ),
391
            'id' => 'urn:ietf:params:scim:schemas:core:2.0:ResourceType',
392
            'name' => 'ResourceType',
393
            'description' => 'Specifies the schema that describes a SCIM resource type.',
394
            'attributes' => array(
395
                array(
396
                    'name' => 'name',
397
                    'description' => 'The resource type name. When applicable, service providers MUST specify the name, e.g., \'User\'.',
398
                    'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
399
                    'caseExact' => false,
400
                    'multiValued' => false,
401
                    'mutability' => 'readOnly',
402
                    'required' => true,
403
                    'returned' => 'default',
404
                    'uniqueness' => 'none',
405
                ),
406
                array(
407
                    'name' => 'description',
408
                    'description' => 'The resource type\'s human-readable description. When applicable, service providers MUST specify the description.',
409
                    'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
410
                    'caseExact' => false,
411
                    'multiValued' => false,
412
                    'mutability' => 'readOnly',
413
                    'required' => false,
414
                    'returned' => 'default',
415
                    'uniqueness' => 'none',
416
                ),
417
                array(
418
                    'name' => 'endpoint',
419
                    'description' => 'The resource type\'s HTTP-addressable endpoint relative to the Base URL of the service provider, e.g., "Users".',
420
                    'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
421
                    'caseExact' => false,
422
                    'multiValued' => false,
423
                    'mutability' => 'readOnly',
424
                    'required' => true,
425
                    'returned' => 'default',
426
                    'uniqueness' => 'none',
427
                ),
428
                array(
429
                    'name' => 'schema',
430
                    'description' => 'The resource type\'s primary/base schema URI.',
431
                    'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
432
                    'caseExact' => false,
433
                    'multiValued' => false,
434
                    'mutability' => 'readOnly',
435
                    'required' => true,
436
                    'returned' => 'default',
437
                    'uniqueness' => 'none',
438
                ),
439
                array(
440
                    'name' => 'schemaExtensions',
441
                    'description' => 'A list of URIs of the resource type\'s schema extensions.',
442
                    'type' => ScimConstants::ATTRIBUTE_TYPE_COMPLEX,
443
                    'multiValued' => true,
444
                    'mutability' => 'readOnly',
445
                    'required' => false,
446
                    'returned' => 'default',
447
                    'uniqueness' => 'none',
448
                    'subAttributes' => array(
449
                        array(
450
                            'name' => 'schema',
451
                            'description' => 'The URI of an extended schema, e.g., "urn:edu:2.0:Staff". This MUST be equal to the "id" attribute of a "Schema" resource.',
452
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
453
                            'caseExact' => false,
454
                            'multiValued' => false,
455
                            'mutability' => 'readOnly',
456
                            'required' => true,
457
                            'returned' => 'default',
458
                            'uniqueness' => 'none',
459
                        ),
460
                        array(
461
                            'name' => 'required',
462
                            'description' => 'A Boolean value that specifies whether or not the schema extension is required for the resource type. If true, a resource of this type MUST include this schema extension and also include any attributes declared as required in this schema extension. If false, a resource of this type MAY omit this schema extension.',
463
                            'type' => ScimConstants::ATTRIBUTE_TYPE_BOOLEAN,
464
                            'multiValued' => false,
465
                            'mutability' => 'readOnly',
466
                            'required' => true,
467
                            'returned' => 'default',
468
                            'uniqueness' => 'none',
469
                        ),
470
                    ),
471
                ),
472
            ),
473
            'externalId' => null,
474
            'meta' => array(
475
                'resourceType' => 'Schema',
476
                'created' => '0001-01-01T00:00:00Z',
477
                'lastModified' => '0001-01-01T00:00:00Z',
478
                'location' => 'http://localhost:9091/scim/v2/schemas/urn:ietf:params:scim:schemas:core:2.0:ResourceType',
479
                'version' => 'W/"DB7B1335326DD0B77C0DDB33392C6AF3789E1AB3"',
480
            ),
481
        ),
482
        ScimConstantsV2::SCHEMA_GROUP => array(
483
            'schemas' => array(
484
                'urn:ietf:params:scim:schemas:core:2.0:Schema',
485
            ),
486
            'id' => 'urn:ietf:params:scim:schemas:core:2.0:Group',
487
            'name' => 'Group',
488
            'description' => 'Group resource.',
489
            'attributes' => array(
490
                array(
491
                    'name' => 'displayName',
492
                    'description' => 'A human-readable name for the Group. REQUIRED.',
493
                    'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
494
                    'caseExact' => false,
495
                    'multiValued' => false,
496
                    'mutability' => 'readWrite',
497
                    'required' => true,
498
                    'returned' => 'default',
499
                    'uniqueness' => 'none',
500
                ),
501
                array(
502
                    'name' => 'members',
503
                    'description' => 'A list of members of the Group.',
504
                    'type' => ScimConstants::ATTRIBUTE_TYPE_COMPLEX,
505
                    'multiValued' => true,
506
                    'mutability' => 'readWrite',
507
                    'required' => false,
508
                    'returned' => 'default',
509
                    'uniqueness' => 'none',
510
                    'subAttributes' => array(
511
                        array(
512
                            'name' => 'type',
513
                            'description' => 'A label indicating the type of resource, e.g., \'User\' or \'Group\'.',
514
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
515
                            'canonicalValues' => array(
516
                                'User',
517
                                'Group',
518
                            ),
519
                            'caseExact' => false,
520
                            'multiValued' => false,
521
                            'mutability' => 'immutable',
522
                            'required' => false,
523
                            'returned' => 'default',
524
                            'uniqueness' => 'none',
525
                        ),
526
                        array(
527
                            'name' => 'display',
528
                            'description' => 'Display name for the member',
529
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
530
                            'caseExact' => false,
531
                            'multiValued' => false,
532
                            'mutability' => 'immutable',
533
                            'required' => false,
534
                            'returned' => 'default',
535
                            'uniqueness' => 'none',
536
                        ),
537
                        array(
538
                            'name' => 'value',
539
                            'description' => 'Identifier of the member of this Group.',
540
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
541
                            'caseExact' => false,
542
                            'multiValued' => false,
543
                            'mutability' => 'immutable',
544
                            'required' => false,
545
                            'returned' => 'default',
546
                            'uniqueness' => 'none',
547
                        ),
548
                        array(
549
                            'name' => '$ref',
550
                            'description' => 'The URI corresponding to a SCIM resource that is a member of this Group.',
551
                            'type' => ScimConstants::ATTRIBUTE_TYPE_REFERENCE,
552
                            'multiValued' => false,
553
                            'mutability' => 'immutable',
554
                            'required' => false,
555
                            'returned' => 'default',
556
                            'referenceTypes' => array(
557
                                'User',
558
                                'Group',
559
                            ),
560
                            'uniqueness' => 'none',
561
                        ),
562
                    ),
563
                ),
564
            ),
565
            'externalId' => null,
566
            'meta' => array(
567
                'resourceType' => 'Schema',
568
                'created' => '0001-01-01T00:00:00Z',
569
                'lastModified' => '0001-01-01T00:00:00Z',
570
                'location' => 'http://localhost:9091/scim/v2/schemas/urn:ietf:params:scim:schemas:core:2.0:Group',
571
                'version' => 'W/"05A8B9B6C912798878B44A358F579A083EF9C4A3"',
572
            ),
573
        ),
574
        ScimConstantsV2::SCHEMA_USER => array(
575
            'schemas' => array(
576
                'urn:ietf:params:scim:schemas:core:2.0:Schema',
577
            ),
578
            'id' => 'urn:ietf:params:scim:schemas:core:2.0:User',
579
            'name' => 'User',
580
            'description' => 'User resource.',
581
            'attributes' => array(
582
                array(
583
                    'name' => 'userName',
584
                    'description' => 'Unique identifier for the User, typically used by the user to directly authenticate to the service provider. Each User MUST include a non-empty userName value. This identifier MUST be unique across the service provider\'s entire set of Users. REQUIRED.',
585
                    'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
586
                    'caseExact' => false,
587
                    'multiValued' => false,
588
                    'mutability' => 'readWrite',
589
                    'required' => true,
590
                    'returned' => 'default',
591
                    'uniqueness' => 'server',
592
                ),
593
                array(
594
                    'name' => 'name',
595
                    'description' => 'The components of the user\'s real name. Providers MAY return just the full name as a single string in the formatted sub-attribute, or they MAY return just the individual component attributes using the other sub-attributes, or they MAY return both. If both variants are returned, they SHOULD be describing the same name, with the formatted name indicating how the component attributes should be combined.',
596
                    'type' => ScimConstants::ATTRIBUTE_TYPE_COMPLEX,
597
                    'multiValued' => false,
598
                    'mutability' => 'readWrite',
599
                    'required' => false,
600
                    'returned' => 'default',
601
                    'uniqueness' => 'none',
602
                    'subAttributes' => array(
603
                        array(
604
                            'name' => 'formatted',
605
                            'description' => 'The full name, including all middle names, titles, and suffixes as appropriate, formatted for display (e.g., \'Ms. Barbara J Jensen, III\').',
606
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
607
                            'caseExact' => false,
608
                            'multiValued' => false,
609
                            'mutability' => 'readWrite',
610
                            'required' => false,
611
                            'returned' => 'default',
612
                            'uniqueness' => 'none',
613
                        ),
614
                        array(
615
                            'name' => 'familyName',
616
                            'description' => 'The family name of the User, or last name in most Western languages (e.g., \'Jensen\' given the full name \'Ms. Barbara J Jensen, III\').',
617
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
618
                            'caseExact' => false,
619
                            'multiValued' => false,
620
                            'mutability' => 'readWrite',
621
                            'required' => false,
622
                            'returned' => 'default',
623
                            'uniqueness' => 'none',
624
                        ),
625
                        array(
626
                            'name' => 'givenName',
627
                            'description' => 'The given name of the User, or first name in most Western languages (e.g., \'Barbara\' given the full name \'Ms. Barbara J Jensen, III\').',
628
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
629
                            'caseExact' => false,
630
                            'multiValued' => false,
631
                            'mutability' => 'readWrite',
632
                            'required' => false,
633
                            'returned' => 'default',
634
                            'uniqueness' => 'none',
635
                        ),
636
                        array(
637
                            'name' => 'middleName',
638
                            'description' => 'The middle name(s) of the User (e.g., \'Jane\' given the full name \'Ms. Barbara J Jensen, III\').',
639
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
640
                            'caseExact' => false,
641
                            'multiValued' => false,
642
                            'mutability' => 'readWrite',
643
                            'required' => false,
644
                            'returned' => 'default',
645
                            'uniqueness' => 'none',
646
                        ),
647
                        array(
648
                            'name' => 'honorificPrefix',
649
                            'description' => 'The honorific prefix(es) of the User, or title in most Western languages (e.g., \'Ms.\' given the full name \'Ms. Barbara J Jensen, III\').',
650
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
651
                            'caseExact' => false,
652
                            'multiValued' => false,
653
                            'mutability' => 'readWrite',
654
                            'required' => false,
655
                            'returned' => 'default',
656
                            'uniqueness' => 'none',
657
                        ),
658
                        array(
659
                            'name' => 'honorificSuffix',
660
                            'description' => 'The honorific suffix(es) of the User, or suffix in most Western languages (e.g., \'III\' given the full name \'Ms. Barbara J Jensen, III\').',
661
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
662
                            'caseExact' => false,
663
                            'multiValued' => false,
664
                            'mutability' => 'readWrite',
665
                            'required' => false,
666
                            'returned' => 'default',
667
                            'uniqueness' => 'none',
668
                        ),
669
                    ),
670
                ),
671
                array(
672
                    'name' => 'displayName',
673
                    'description' => 'The name of the User, suitable for display to end-users. The name SHOULD be the full name of the User being described, if known.',
674
                    'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
675
                    'caseExact' => false,
676
                    'multiValued' => false,
677
                    'mutability' => 'readWrite',
678
                    'required' => false,
679
                    'returned' => 'default',
680
                    'uniqueness' => 'none',
681
                ),
682
                array(
683
                    'name' => 'nickName',
684
                    'description' => 'The casual way to address the user in real life, e.g., \'Bob\' or \'Bobby\' instead of \'Robert\'. This attribute SHOULD NOT be used to represent a User\'s username (e.g., \'bjensen\' or \'mpepperidge\').',
685
                    'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
686
                    'caseExact' => false,
687
                    'multiValued' => false,
688
                    'mutability' => 'readWrite',
689
                    'required' => false,
690
                    'returned' => 'default',
691
                    'uniqueness' => 'none',
692
                ),
693
                array(
694
                    'name' => 'profileUrl',
695
                    'description' => 'A fully qualified URL pointing to a page representing the User\'s online profile.',
696
                    'type' => ScimConstants::ATTRIBUTE_TYPE_REFERENCE,
697
                    'multiValued' => false,
698
                    'mutability' => 'readWrite',
699
                    'required' => false,
700
                    'returned' => 'default',
701
                    'referenceTypes' => array(
702
                        'external',
703
                    ),
704
                    'uniqueness' => 'none',
705
                ),
706
                array(
707
                    'name' => 'title',
708
                    'description' => 'The user\'s title, such as "Vice President".',
709
                    'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
710
                    'caseExact' => false,
711
                    'multiValued' => false,
712
                    'mutability' => 'readWrite',
713
                    'required' => false,
714
                    'returned' => 'default',
715
                    'uniqueness' => 'none',
716
                ),
717
                array(
718
                    'name' => 'userType',
719
                    'description' => 'Used to identify the relationship between the organization and the user. Typical values used might be \'Contractor\', \'Employee\', \'Intern\', \'Temp\', \'External\', and \'Unknown\', but any value may be used.',
720
                    'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
721
                    'caseExact' => false,
722
                    'multiValued' => false,
723
                    'mutability' => 'readWrite',
724
                    'required' => false,
725
                    'returned' => 'default',
726
                    'uniqueness' => 'none',
727
                    'canonicalValues' => array(
728
                        'Contractor',
729
                        'Employee',
730
                        'Intern',
731
                        'Temp',
732
                        'External',
733
                        'Internal',
734
                        'Unknown',
735
                    ),
736
                ),
737
                array(
738
                    'name' => 'preferredLanguage',
739
                    'description' => 'Indicates the User\'s preferred written or spoken language. Generally used for selecting a localized user interface; e.g., \'en-US\' specifies the language English and country US.',
740
                    'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
741
                    'caseExact' => false,
742
                    'multiValued' => false,
743
                    'mutability' => 'readWrite',
744
                    'required' => false,
745
                    'returned' => 'default',
746
                    'uniqueness' => 'none',
747
                    'canonicalValues' => array(
748
                        'zh-CN',
749
                        'en-US',
750
                        'en-CA',
751
                    ),
752
                ),
753
                array(
754
                    'name' => 'locale',
755
                    'description' => 'Used to indicate the User\'s default location for purposes of localizing items such as currency, date time format, or numerical representations.',
756
                    'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
757
                    'caseExact' => false,
758
                    'multiValued' => false,
759
                    'mutability' => 'readWrite',
760
                    'required' => false,
761
                    'returned' => 'default',
762
                    'uniqueness' => 'none',
763
                    'canonicalValues' => array(
764
                        'en-CA',
765
                        'fr-CA',
766
                        'en-US',
767
                        'zh-CN',
768
                    ),
769
                ),
770
                array(
771
                    'name' => 'timezone',
772
                    'description' => 'The User\'s time zone in the \'Olson\' time zone database format, e.g., \'America/Los_Angeles\'.',
773
                    'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
774
                    'caseExact' => false,
775
                    'multiValued' => false,
776
                    'mutability' => 'readWrite',
777
                    'required' => false,
778
                    'returned' => 'default',
779
                    'uniqueness' => 'none',
780
                    'canonicalValues' => array(
781
                        'Asia/Shanghai',
782
                        'America/New_York',
783
                        'America/Toronto',
784
                    ),
785
                ),
786
                array(
787
                    'name' => 'active',
788
                    'description' => 'A Boolean value indicating the User\'s administrative status.',
789
                    'type' => ScimConstants::ATTRIBUTE_TYPE_BOOLEAN,
790
                    'multiValued' => false,
791
                    'mutability' => 'readWrite',
792
                    'required' => false,
793
                    'returned' => 'default',
794
                    'uniqueness' => 'none',
795
                ),
796
                array(
797
                    'name' => 'password',
798
                    'description' => 'The User\'s cleartext password. This attribute is intended to be used as a means to specify an initial password when creating a new User or to reset an existing User\'s password.',
799
                    'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
800
                    'caseExact' => false,
801
                    'multiValued' => false,
802
                    'mutability' => 'writeOnly',
803
                    'required' => false,
804
                    'returned' => 'never',
805
                    'uniqueness' => 'none',
806
                ),
807
                array(
808
                    'name' => 'emails',
809
                    'description' => 'Email addresses for the user. The value SHOULD be canonicalized by the service provider, e.g., \'[email protected]\' instead of \'[email protected]\'.',
810
                    'type' => ScimConstants::ATTRIBUTE_TYPE_COMPLEX,
811
                    'multiValued' => true,
812
                    'mutability' => 'readWrite',
813
                    'required' => false,
814
                    'returned' => 'default',
815
                    'uniqueness' => 'none',
816
                    'subAttributes' => array(
817
                        array(
818
                            'name' => 'value',
819
                            'description' => 'Email addresses for the user. The value SHOULD be canonicalized by the service provider, e.g., \'[email protected]\' instead of \'[email protected]\'.',
820
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
821
                            'caseExact' => false,
822
                            'multiValued' => false,
823
                            'mutability' => 'readWrite',
824
                            'required' => false,
825
                            'returned' => 'default',
826
                            'uniqueness' => 'none',
827
                        ),
828
                        array(
829
                            'name' => 'display',
830
                            'description' => 'Display value for an email',
831
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
832
                            'caseExact' => false,
833
                            'multiValued' => false,
834
                            'mutability' => 'readOnly',
835
                            'required' => false,
836
                            'returned' => 'default',
837
                            'uniqueness' => 'none',
838
                        ),
839
                        array(
840
                            'name' => 'type',
841
                            'description' => 'A label indicating the attribute\'s function, e.g., \'work\' or \'home\'.',
842
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
843
                            'canonicalValues' => array(
844
                                'work',
845
                                'home',
846
                                'other',
847
                            ),
848
                            'caseExact' => false,
849
                            'multiValued' => false,
850
                            'mutability' => 'readWrite',
851
                            'required' => false,
852
                            'returned' => 'default',
853
                            'uniqueness' => 'none',
854
                        ),
855
                        array(
856
                            'name' => 'primary',
857
                            'description' => 'A Boolean value indicating the \'primary\' or preferred attribute value for this attribute, e.g., the preferred mailing address or primary email address. The primary attribute value \'true\' MUST appear no more than once.',
858
                            'type' => ScimConstants::ATTRIBUTE_TYPE_BOOLEAN,
859
                            'multiValued' => false,
860
                            'mutability' => 'readWrite',
861
                            'required' => false,
862
                            'returned' => 'default',
863
                            'uniqueness' => 'none',
864
                        ),
865
                    ),
866
                ),
867
                array(
868
                    'name' => 'phoneNumbers',
869
                    'description' => 'Phone numbers for the User. The value SHOULD be canonicalized by the service provider according to the format specified in RFC 3966, e.g., \'tel:+1-201-555-0123\'.',
870
                    'type' => ScimConstants::ATTRIBUTE_TYPE_COMPLEX,
871
                    'multiValued' => true,
872
                    'mutability' => 'readWrite',
873
                    'required' => false,
874
                    'returned' => 'default',
875
                    'uniqueness' => 'none',
876
                    'subAttributes' => array(
877
                        array(
878
                            'name' => 'value',
879
                            'description' => 'Phone number of the User.',
880
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
881
                            'caseExact' => false,
882
                            'multiValued' => false,
883
                            'mutability' => 'readWrite',
884
                            'required' => false,
885
                            'returned' => 'default',
886
                            'uniqueness' => 'none',
887
                        ),
888
                        array(
889
                            'name' => 'display',
890
                            'description' => 'Display value for a phone number',
891
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
892
                            'caseExact' => false,
893
                            'multiValued' => false,
894
                            'mutability' => 'readOnly',
895
                            'required' => false,
896
                            'returned' => 'default',
897
                            'uniqueness' => 'none',
898
                        ),
899
                        array(
900
                            'name' => 'type',
901
                            'description' => 'A label indicating the attribute\'s function, e.g., \'work\', \'home\', \'mobile\'.',
902
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
903
                            'canonicalValues' => array(
904
                                'work',
905
                                'home',
906
                                'mobile',
907
                                'fax',
908
                                'pager',
909
                                'other',
910
                            ),
911
                            'caseExact' => false,
912
                            'multiValued' => false,
913
                            'mutability' => 'readWrite',
914
                            'required' => false,
915
                            'returned' => 'default',
916
                            'uniqueness' => 'none',
917
                        ),
918
                        array(
919
                            'name' => 'primary',
920
                            'description' => "A Boolean value indicating the 'primary' or preferred attribute value for this attribute, e.g., the preferred phone number or primary phone number. The primary attribute value 'true' MUST appear no more than once.",
921
                            'type' => ScimConstants::ATTRIBUTE_TYPE_BOOLEAN,
922
                            'multiValued' => false,
923
                            'mutability' => 'readWrite',
924
                            'required' => false,
925
                            'returned' => 'default',
926
                            'uniqueness' => 'none',
927
                        ),
928
                    ),
929
                ),
930
                array(
931
                    'name' => 'ims',
932
                    'description' => 'Instant messaging addresses for the User.',
933
                    'type' => ScimConstants::ATTRIBUTE_TYPE_COMPLEX,
934
                    'multiValued' => true,
935
                    'mutability' => 'readWrite',
936
                    'required' => false,
937
                    'returned' => 'default',
938
                    'uniqueness' => 'none',
939
                    'subAttributes' => array(
940
                        array(
941
                            'name' => 'value',
942
                            'description' => 'Instant messaging address for the User.',
943
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
944
                            'caseExact' => false,
945
                            'multiValued' => false,
946
                            'mutability' => 'readWrite',
947
                            'required' => false,
948
                            'returned' => 'default',
949
                            'uniqueness' => 'none',
950
                        ),
951
                        array(
952
                            'name' => 'display',
953
                            'description' => 'Display value for an IMS',
954
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
955
                            'caseExact' => false,
956
                            'multiValued' => false,
957
                            'mutability' => 'readOnly',
958
                            'required' => false,
959
                            'returned' => 'default',
960
                            'uniqueness' => 'none',
961
                        ),
962
                        array(
963
                            'name' => 'type',
964
                            'description' => 'A label indicating the attribute\'s function, e.g., \'aim\', \'gtalk\', \'xmpp\'.',
965
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
966
                            'canonicalValues' => array(
967
                                'aim',
968
                                'gtalk',
969
                                'icq',
970
                                'xmpp',
971
                                'msn',
972
                                'skype',
973
                                'qq',
974
                                'yahoo',
975
                                'wechat',
976
                                'facebook',
977
                                'weibo',
978
                                'other',
979
                            ),
980
                            'caseExact' => false,
981
                            'multiValued' => false,
982
                            'mutability' => 'readWrite',
983
                            'required' => false,
984
                            'returned' => 'default',
985
                            'uniqueness' => 'none',
986
                        ),
987
                        array(
988
                            'name' => 'primary',
989
                            'description' => 'A Boolean value indicating the \'primary\' or preferred attribute value for this attribute, e.g., the preferred messenger or primary messenger. The primary attribute value \'true\' MUST appear no more than once.',
990
                            'type' => ScimConstants::ATTRIBUTE_TYPE_BOOLEAN,
991
                            'multiValued' => false,
992
                            'mutability' => 'readWrite',
993
                            'required' => false,
994
                            'returned' => 'default',
995
                            'uniqueness' => 'none',
996
                        ),
997
                    ),
998
                ),
999
                array(
1000
                    'name' => 'photos',
1001
                    'description' => 'URLs of photos of the User.',
1002
                    'type' => ScimConstants::ATTRIBUTE_TYPE_COMPLEX,
1003
                    'multiValued' => true,
1004
                    'mutability' => 'readWrite',
1005
                    'required' => false,
1006
                    'returned' => 'default',
1007
                    'uniqueness' => 'none',
1008
                    'subAttributes' => array(
1009
                        array(
1010
                            'name' => 'value',
1011
                            'description' => 'URL of a photo of the User.',
1012
                            'type' => ScimConstants::ATTRIBUTE_TYPE_REFERENCE,
1013
                            'multiValued' => false,
1014
                            'mutability' => 'readWrite',
1015
                            'required' => false,
1016
                            'returned' => 'default',
1017
                            'referenceTypes' => array(
1018
                                'external',
1019
                            ),
1020
                            'uniqueness' => 'none',
1021
                        ),
1022
                        array(
1023
                            'name' => 'type',
1024
                            'description' => 'A label indicating the attribute\'s function, i.e., \'photo\' or \'thumbnail\'.',
1025
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
1026
                            'canonicalValues' => array(
1027
                                'photo',
1028
                                'thumbnail',
1029
                            ),
1030
                            'caseExact' => false,
1031
                            'multiValued' => false,
1032
                            'mutability' => 'readWrite',
1033
                            'required' => false,
1034
                            'returned' => 'default',
1035
                            'uniqueness' => 'none',
1036
                        ),
1037
                        array(
1038
                            'name' => 'primary',
1039
                            'description' => 'A Boolean value indicating the \'primary\' or preferred attribute value for this attribute, e.g., the preferred photo or thumbnail. The primary attribute value \'true\' MUST appear no more than once.',
1040
                            'type' => ScimConstants::ATTRIBUTE_TYPE_BOOLEAN,
1041
                            'multiValued' => false,
1042
                            'mutability' => 'readWrite',
1043
                            'required' => false,
1044
                            'returned' => 'default',
1045
                            'uniqueness' => 'none',
1046
                        ),
1047
                    ),
1048
                ),
1049
                array(
1050
                    'name' => 'addresses',
1051
                    'description' => 'A physical mailing address for this User.',
1052
                    'type' => ScimConstants::ATTRIBUTE_TYPE_COMPLEX,
1053
                    'multiValued' => true,
1054
                    'mutability' => 'readWrite',
1055
                    'required' => false,
1056
                    'returned' => 'default',
1057
                    'uniqueness' => 'none',
1058
                    'subAttributes' => array(
1059
                        array(
1060
                            'name' => 'formatted',
1061
                            'description' => 'The full mailing address, formatted for display or use with a mailing label. This attribute MAY contain newlines.',
1062
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
1063
                            'caseExact' => false,
1064
                            'multiValued' => false,
1065
                            'mutability' => 'readWrite',
1066
                            'required' => false,
1067
                            'returned' => 'default',
1068
                            'uniqueness' => 'none',
1069
                        ),
1070
                        array(
1071
                            'name' => 'streetAddress',
1072
                            'description' => 'The full street address component, which may include house number, street name, P.O. box, and multi-line extended street address information. This attribute MAY contain newlines.',
1073
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
1074
                            'caseExact' => false,
1075
                            'multiValued' => false,
1076
                            'mutability' => 'readWrite',
1077
                            'required' => false,
1078
                            'returned' => 'default',
1079
                            'uniqueness' => 'none',
1080
                        ),
1081
                        array(
1082
                            'name' => 'locality',
1083
                            'description' => 'The city or locality component.',
1084
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
1085
                            'caseExact' => false,
1086
                            'multiValued' => false,
1087
                            'mutability' => 'readWrite',
1088
                            'required' => false,
1089
                            'returned' => 'default',
1090
                            'uniqueness' => 'none',
1091
                        ),
1092
                        array(
1093
                            'name' => 'region',
1094
                            'description' => 'The state or region component.',
1095
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
1096
                            'caseExact' => false,
1097
                            'multiValued' => false,
1098
                            'mutability' => 'readWrite',
1099
                            'required' => false,
1100
                            'returned' => 'default',
1101
                            'uniqueness' => 'none',
1102
                        ),
1103
                        array(
1104
                            'name' => 'postalCode',
1105
                            'description' => 'The zip code or postal code component.',
1106
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
1107
                            'caseExact' => false,
1108
                            'multiValued' => false,
1109
                            'mutability' => 'readWrite',
1110
                            'required' => false,
1111
                            'returned' => 'default',
1112
                            'uniqueness' => 'none',
1113
                        ),
1114
                        array(
1115
                            'name' => 'country',
1116
                            'description' => 'The country name component.',
1117
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
1118
                            'caseExact' => false,
1119
                            'multiValued' => false,
1120
                            'mutability' => 'readWrite',
1121
                            'required' => false,
1122
                            'returned' => 'default',
1123
                            'uniqueness' => 'none',
1124
                        ),
1125
                        array(
1126
                            'name' => 'type',
1127
                            'description' => 'A label indicating the attribute\'s function, e.g., \'work\' or \'home\'.',
1128
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
1129
                            'canonicalValues' => array(
1130
                                'work',
1131
                                'home',
1132
                                'id',
1133
                                'driverlicense',
1134
                                'other',
1135
                            ),
1136
                            'caseExact' => false,
1137
                            'multiValued' => false,
1138
                            'mutability' => 'readWrite',
1139
                            'required' => false,
1140
                            'returned' => 'default',
1141
                            'uniqueness' => 'none',
1142
                        ),
1143
                        array(
1144
                            'name' => 'primary',
1145
                            'description' => 'A Boolean value indicating the \'primary\' or preferred attribute value for this attribute. The primary attribute value \'true\' MUST appear no more than once.',
1146
                            'type' => ScimConstants::ATTRIBUTE_TYPE_BOOLEAN,
1147
                            'multiValued' => false,
1148
                            'mutability' => 'readWrite',
1149
                            'required' => false,
1150
                            'returned' => 'default',
1151
                            'uniqueness' => 'none',
1152
                        ),
1153
                    ),
1154
                ),
1155
                array(
1156
                    'name' => 'groups',
1157
                    'description' => 'A list of groups to which the user belongs, either through direct membership, through nested groups, or dynamically calculated.',
1158
                    'type' => ScimConstants::ATTRIBUTE_TYPE_COMPLEX,
1159
                    'multiValued' => true,
1160
                    'mutability' => 'readOnly',
1161
                    'required' => false,
1162
                    'returned' => 'default',
1163
                    'uniqueness' => 'none',
1164
                    'subAttributes' => array(
1165
                        array(
1166
                            'name' => 'value',
1167
                            'description' => 'The identifier of the User\'s group.',
1168
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
1169
                            'caseExact' => false,
1170
                            'multiValued' => false,
1171
                            'mutability' => 'readOnly',
1172
                            'required' => false,
1173
                            'returned' => 'default',
1174
                            'uniqueness' => 'none',
1175
                        ),
1176
                        array(
1177
                            'name' => '$ref',
1178
                            'description' => 'The URI of the corresponding \'Group\' resource to which the user belongs.',
1179
                            'type' => ScimConstants::ATTRIBUTE_TYPE_REFERENCE,
1180
                            'multiValued' => false,
1181
                            'mutability' => 'readOnly',
1182
                            'required' => false,
1183
                            'returned' => 'default',
1184
                            'referenceTypes' => array(
1185
                                'Group',
1186
                            ),
1187
                            'uniqueness' => 'none',
1188
                        ),
1189
                        array(
1190
                            'name' => 'display',
1191
                            'description' => 'A human-readable name, primarily used for display purposes. READ-ONLY.',
1192
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
1193
                            'caseExact' => false,
1194
                            'multiValued' => false,
1195
                            'mutability' => 'readOnly',
1196
                            'required' => false,
1197
                            'returned' => 'default',
1198
                            'uniqueness' => 'none',
1199
                        ),
1200
                        array(
1201
                            'name' => 'type',
1202
                            'description' => 'A label indicating the attribute\'s function, e.g., \'direct\' or \'indirect\'.',
1203
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
1204
                            'canonicalValues' => array(
1205
                                'direct',
1206
                                'indirect',
1207
                            ),
1208
                            'caseExact' => false,
1209
                            'multiValued' => false,
1210
                            'mutability' => 'readOnly',
1211
                            'required' => false,
1212
                            'returned' => 'default',
1213
                            'uniqueness' => 'none',
1214
                        ),
1215
                    ),
1216
                ),
1217
                array(
1218
                    'name' => 'entitlements',
1219
                    'description' => 'A list of entitlements for the User that represent a thing the User has.',
1220
                    'type' => ScimConstants::ATTRIBUTE_TYPE_COMPLEX,
1221
                    'multiValued' => true,
1222
                    'mutability' => 'readWrite',
1223
                    'required' => false,
1224
                    'returned' => 'default',
1225
                    'uniqueness' => 'none',
1226
                    'subAttributes' => array(
1227
                        array(
1228
                            'name' => 'value',
1229
                            'description' => 'The value of an entitlement.',
1230
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
1231
                            'caseExact' => false,
1232
                            'multiValued' => false,
1233
                            'mutability' => 'readWrite',
1234
                            'required' => false,
1235
                            'returned' => 'default',
1236
                            'uniqueness' => 'none',
1237
                        ),
1238
                        array(
1239
                            'name' => 'display',
1240
                            'description' => 'The display value of an entitlement.',
1241
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
1242
                            'caseExact' => false,
1243
                            'multiValued' => false,
1244
                            'mutability' => 'readOnly',
1245
                            'required' => false,
1246
                            'returned' => 'default',
1247
                            'uniqueness' => 'none',
1248
                        ),
1249
                        array(
1250
                            'name' => 'type',
1251
                            'description' => 'A label indicating the attribute\'s function.',
1252
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
1253
                            'caseExact' => false,
1254
                            'multiValued' => false,
1255
                            'mutability' => 'readWrite',
1256
                            'required' => false,
1257
                            'returned' => 'default',
1258
                            'uniqueness' => 'none',
1259
                        ),
1260
                        array(
1261
                            'name' => 'primary',
1262
                            'description' => 'A Boolean value indicating the \'primary\' or preferred attribute value for this attribute. The primary attribute value \'true\' MUST appear no more than once.',
1263
                            'type' => ScimConstants::ATTRIBUTE_TYPE_BOOLEAN,
1264
                            'multiValued' => false,
1265
                            'mutability' => 'readWrite',
1266
                            'required' => false,
1267
                            'returned' => 'default',
1268
                            'uniqueness' => 'none',
1269
                        ),
1270
                    ),
1271
                ),
1272
                array(
1273
                    'name' => 'roles',
1274
                    'description' => 'A list of roles for the User that collectively represent who the User is, e.g., \'Student\', \'Faculty\'.',
1275
                    'type' => ScimConstants::ATTRIBUTE_TYPE_COMPLEX,
1276
                    'multiValued' => true,
1277
                    'mutability' => 'readWrite',
1278
                    'required' => false,
1279
                    'returned' => 'default',
1280
                    'uniqueness' => 'none',
1281
                    'subAttributes' => array(
1282
                        array(
1283
                            'name' => 'value',
1284
                            'description' => 'The value of a role.',
1285
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
1286
                            'caseExact' => false,
1287
                            'multiValued' => false,
1288
                            'mutability' => 'readWrite',
1289
                            'required' => false,
1290
                            'returned' => 'default',
1291
                            'uniqueness' => 'none',
1292
                        ),
1293
                        array(
1294
                            'name' => 'display',
1295
                            'description' => 'The display value of a role.',
1296
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
1297
                            'caseExact' => false,
1298
                            'multiValued' => false,
1299
                            'mutability' => 'readOnly',
1300
                            'required' => false,
1301
                            'returned' => 'default',
1302
                            'uniqueness' => 'none',
1303
                        ),
1304
                        array(
1305
                            'name' => 'type',
1306
                            'description' => 'A label indicating the attribute\'s function.',
1307
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
1308
                            'caseExact' => false,
1309
                            'multiValued' => false,
1310
                            'mutability' => 'readWrite',
1311
                            'required' => false,
1312
                            'returned' => 'default',
1313
                            'uniqueness' => 'none',
1314
                        ),
1315
                        array(
1316
                            'name' => 'primary',
1317
                            'description' => 'A Boolean value indicating the \'primary\' or preferred attribute value for this attribute. The primary attribute value \'true\' MUST appear no more than once.',
1318
                            'type' => ScimConstants::ATTRIBUTE_TYPE_BOOLEAN,
1319
                            'multiValued' => false,
1320
                            'mutability' => 'readWrite',
1321
                            'required' => false,
1322
                            'returned' => 'default',
1323
                            'uniqueness' => 'none',
1324
                        ),
1325
                    ),
1326
                ),
1327
                array(
1328
                    'name' => 'x509Certificates',
1329
                    'description' => 'A list of certificates issued to the User.',
1330
                    'type' => ScimConstants::ATTRIBUTE_TYPE_COMPLEX,
1331
                    'multiValued' => true,
1332
                    'mutability' => 'readWrite',
1333
                    'required' => false,
1334
                    'returned' => 'default',
1335
                    'uniqueness' => 'none',
1336
                    'subAttributes' => array(
1337
                        array(
1338
                            'name' => 'value',
1339
                            'description' => 'The value of an X.509 certificate.',
1340
                            'type' => ScimConstants::ATTRIBUTE_TYPE_BINARY,
1341
                            'multiValued' => false,
1342
                            'mutability' => 'readWrite',
1343
                            'required' => false,
1344
                            'returned' => 'default',
1345
                            'uniqueness' => 'none',
1346
                        ),
1347
                        array(
1348
                            'name' => 'display',
1349
                            'description' => 'The display value of a certificate.',
1350
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
1351
                            'caseExact' => false,
1352
                            'multiValued' => false,
1353
                            'mutability' => 'readWrite',
1354
                            'required' => false,
1355
                            'returned' => 'default',
1356
                            'uniqueness' => 'none',
1357
                        ),
1358
                        array(
1359
                            'name' => 'type',
1360
                            'description' => "A label indicating the attribute's function.",
1361
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
1362
                            'caseExact' => false,
1363
                            'multiValued' => false,
1364
                            'mutability' => 'readWrite',
1365
                            'required' => false,
1366
                            'returned' => 'default',
1367
                            'uniqueness' => 'none',
1368
                        ),
1369
                        array(
1370
                            'name' => 'primary',
1371
                            'description' => "A Boolean value indicating the 'primary' or preferred attribute value for this attribute. The primary attribute value 'true' MUST appear no more than once.",
1372
                            'type' => ScimConstants::ATTRIBUTE_TYPE_BOOLEAN,
1373
                            'multiValued' => false,
1374
                            'mutability' => 'readWrite',
1375
                            'required' => false,
1376
                            'returned' => 'default',
1377
                            'uniqueness' => 'none',
1378
                        ),
1379
                    ),
1380
                ),
1381
            ),
1382
            'externalId' => null,
1383
            'meta' => array(
1384
                'resourceType' => 'Schema',
1385
                'created' => '0001-01-01T00:00:00Z',
1386
                'lastModified' => '0001-01-01T00:00:00Z',
1387
                'location' => 'http://localhost:9091/scim/v2/schemas/urn:ietf:params:scim:schemas:core:2.0:User',
1388
                'version' => 'W/"5CF43FF3C1E0C85DE1F13305C3B1AC83009FF941"',
1389
            ),
1390
        ),
1391
        ScimConstantsV2::SCHEMA_ENTERPRISE_USER => array(
1392
            'schemas' => array(
1393
                'urn:ietf:params:scim:schemas:core:2.0:Schema',
1394
            ),
1395
            'id' => 'urn:ietf:params:scim:schemas:extension:enterprise:2.0:User',
1396
            'name' => 'EnterpriseUser',
1397
            'description' => 'Enterprise User',
1398
            'attributes' => array(
1399
                array(
1400
                    'name' => 'employeeNumber',
1401
                    'description' => 'Numeric or alphanumeric identifier assigned to a person, typically based on order of hire or association with an organization.',
1402
                    'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
1403
                    'caseExact' => false,
1404
                    'multiValued' => false,
1405
                    'mutability' => 'readWrite',
1406
                    'required' => false,
1407
                    'returned' => 'default',
1408
                    'uniqueness' => 'none',
1409
                ),
1410
                array(
1411
                    'name' => 'costCenter',
1412
                    'description' => 'Identifies the name of a cost center.',
1413
                    'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
1414
                    'caseExact' => false,
1415
                    'multiValued' => false,
1416
                    'mutability' => 'readWrite',
1417
                    'required' => false,
1418
                    'returned' => 'default',
1419
                    'uniqueness' => 'none',
1420
                ),
1421
                array(
1422
                    'name' => 'organization',
1423
                    'description' => 'Identifies the name of an organization.',
1424
                    'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
1425
                    'caseExact' => false,
1426
                    'multiValued' => false,
1427
                    'mutability' => 'readWrite',
1428
                    'required' => false,
1429
                    'returned' => 'default',
1430
                    'uniqueness' => 'none',
1431
                ),
1432
                array(
1433
                    'name' => 'division',
1434
                    'description' => 'Identifies the name of a division.',
1435
                    'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
1436
                    'caseExact' => false,
1437
                    'multiValued' => false,
1438
                    'mutability' => 'readWrite',
1439
                    'required' => false,
1440
                    'returned' => 'default',
1441
                    'uniqueness' => 'none',
1442
                ),
1443
                array(
1444
                    'name' => 'department',
1445
                    'description' => 'Identifies the name of a department.',
1446
                    'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
1447
                    'caseExact' => false,
1448
                    'multiValued' => false,
1449
                    'mutability' => 'readWrite',
1450
                    'required' => false,
1451
                    'returned' => 'default',
1452
                    'uniqueness' => 'none',
1453
                ),
1454
                array(
1455
                    'name' => 'manager',
1456
                    'description' => "The User's manager.  A complex type that optionally allows service providers to represent organizational hierarchy by referencing the 'id' attribute of another User.",
1457
                    'type' => ScimConstants::ATTRIBUTE_TYPE_COMPLEX,
1458
                    'multiValued' => false,
1459
                    'mutability' => 'readWrite',
1460
                    'required' => false,
1461
                    'returned' => 'default',
1462
                    'uniqueness' => 'none',
1463
                    'subAttributes' => array(
1464
                        array(
1465
                            'name' => 'value',
1466
                            'description' => "The id of the SCIM resource representing the User's manager. REQUIRED.",
1467
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
1468
                            'caseExact' => false,
1469
                            'multiValued' => false,
1470
                            'mutability' => 'readWrite',
1471
                            'required' => true,
1472
                            'returned' => 'default',
1473
                            'uniqueness' => 'none',
1474
                        ),
1475
                        array(
1476
                            'name' => '$ref',
1477
                            'description' => "The URI of the SCIM resource representing the User's manager.",
1478
                            'type' => ScimConstants::ATTRIBUTE_TYPE_REFERENCE,
1479
                            'multiValued' => false,
1480
                            'mutability' => 'readWrite',
1481
                            'required' => false,
1482
                            'returned' => 'default',
1483
                            'uniqueness' => 'none',
1484
                            'referenceTypes' => array(
1485
                                'User',
1486
                            ),
1487
                        ),
1488
                        array(
1489
                            'name' => 'displayName',
1490
                            'description' => 'The displayName of the User\'s manager.',
1491
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
1492
                            'caseExact' => false,
1493
                            'multiValued' => false,
1494
                            'mutability' => 'readOnly',
1495
                            'required' => false,
1496
                            'returned' => 'default',
1497
                            'uniqueness' => 'none',
1498
                        ),
1499
                    ),
1500
                ),
1501
            ),
1502
            'externalId' => null,
1503
            'meta' => array(
1504
                'resourceType' => 'Schema',
1505
                'created' => '0001-01-01T00:00:00Z',
1506
                'lastModified' => '0001-01-01T00:00:00Z',
1507
                'location' => 'http://localhost:9091/scim/v2/schemas/urn:ietf:params:scim:schemas:extension:enterprise:2.0:User',
1508
                'version' => 'W/"4E3F49246DCA6C2FC7E7F368DD9A15DB2B22C183"',
1509
            ),
1510
        ),
1511
        ScimConstantsV2::SCHEMA_SERVICE_PROVIDER_CONFIG => array(
1512
            'schemas' => array(
1513
                'urn:ietf:params:scim:schemas:core:2.0:Schema',
1514
            ),
1515
            'id' => 'urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig',
1516
            'name' => 'Service Provider Configuration',
1517
            'description' => 'Schema for representing the service provider\'s configuration',
1518
            'attributes' => array(
1519
                array(
1520
                    'name' => 'documentationUri',
1521
                    'description' => 'An HTTP-addressable URL pointing to the service provider\'s human-consumable help documentation.',
1522
                    'type' => ScimConstants::ATTRIBUTE_TYPE_REFERENCE,
1523
                    'multiValued' => false,
1524
                    'mutability' => 'readOnly',
1525
                    'required' => false,
1526
                    'returned' => 'default',
1527
                    'referenceTypes' => array(
1528
                        'external',
1529
                    ),
1530
                    'uniqueness' => 'none',
1531
                ),
1532
                array(
1533
                    'name' => 'patch',
1534
                    'description' => 'A complex type that specifies PATCH configuration options.',
1535
                    'type' => ScimConstants::ATTRIBUTE_TYPE_COMPLEX,
1536
                    'multiValued' => false,
1537
                    'mutability' => 'readOnly',
1538
                    'required' => true,
1539
                    'returned' => 'default',
1540
                    'uniqueness' => 'none',
1541
                    'subAttributes' => array(
1542
                        array(
1543
                            'name' => 'supported',
1544
                            'description' => 'A Boolean value specifying whether or not the operation is supported.',
1545
                            'type' => ScimConstants::ATTRIBUTE_TYPE_BOOLEAN,
1546
                            'multiValued' => false,
1547
                            'mutability' => 'readOnly',
1548
                            'required' => true,
1549
                            'returned' => 'default',
1550
                            'uniqueness' => 'none',
1551
                        ),
1552
                    ),
1553
                ),
1554
                array(
1555
                    'name' => 'bulk',
1556
                    'description' => 'A complex type that specifies bulk configuration options.',
1557
                    'type' => ScimConstants::ATTRIBUTE_TYPE_COMPLEX,
1558
                    'multiValued' => false,
1559
                    'mutability' => 'readOnly',
1560
                    'required' => true,
1561
                    'returned' => 'default',
1562
                    'uniqueness' => 'none',
1563
                    'subAttributes' => array(
1564
                        array(
1565
                            'name' => 'supported',
1566
                            'description' => 'A Boolean value specifying whether or not the operation is supported.',
1567
                            'type' => ScimConstants::ATTRIBUTE_TYPE_BOOLEAN,
1568
                            'multiValued' => false,
1569
                            'mutability' => 'readOnly',
1570
                            'required' => true,
1571
                            'returned' => 'default',
1572
                            'uniqueness' => 'none',
1573
                        ),
1574
                        array(
1575
                            'name' => 'maxOperations',
1576
                            'description' => 'An integer value specifying the maximum number of operations.',
1577
                            'type' => 'integer',
1578
                            'multiValued' => false,
1579
                            'mutability' => 'readOnly',
1580
                            'required' => true,
1581
                            'returned' => 'default',
1582
                            'uniqueness' => 'none',
1583
                        ),
1584
                        array(
1585
                            'name' => 'maxPayloadSize',
1586
                            'description' => 'An integer value specifying the maximum payload size in bytes.',
1587
                            'type' => 'integer',
1588
                            'multiValued' => false,
1589
                            'mutability' => 'readOnly',
1590
                            'required' => true,
1591
                            'returned' => 'default',
1592
                            'uniqueness' => 'none',
1593
                        ),
1594
                    ),
1595
                ),
1596
                array(
1597
                    'name' => 'filter',
1598
                    'description' => 'A complex type that specifies FILTER options.',
1599
                    'type' => ScimConstants::ATTRIBUTE_TYPE_COMPLEX,
1600
                    'multiValued' => false,
1601
                    'mutability' => 'readOnly',
1602
                    'required' => true,
1603
                    'returned' => 'default',
1604
                    'uniqueness' => 'none',
1605
                    'subAttributes' => array(
1606
                        array(
1607
                            'name' => 'supported',
1608
                            'description' => 'A Boolean value specifying whether or not the operation is supported.',
1609
                            'type' => ScimConstants::ATTRIBUTE_TYPE_BOOLEAN,
1610
                            'multiValued' => false,
1611
                            'mutability' => 'readOnly',
1612
                            'required' => true,
1613
                            'returned' => 'default',
1614
                            'uniqueness' => 'none',
1615
                        ),
1616
                        array(
1617
                            'name' => 'maxResults',
1618
                            'description' => 'An integer value specifying the maximum number of resources returned in a response.',
1619
                            'type' => 'integer',
1620
                            'multiValued' => false,
1621
                            'mutability' => 'readOnly',
1622
                            'required' => true,
1623
                            'returned' => 'default',
1624
                            'uniqueness' => 'none',
1625
                        ),
1626
                    ),
1627
                ),
1628
                array(
1629
                    'name' => 'changePassword',
1630
                    'description' => 'A complex type that specifies configuration options related to changing a password.',
1631
                    'type' => ScimConstants::ATTRIBUTE_TYPE_COMPLEX,
1632
                    'multiValued' => false,
1633
                    'mutability' => 'readOnly',
1634
                    'required' => true,
1635
                    'returned' => 'default',
1636
                    'uniqueness' => 'none',
1637
                    'subAttributes' => array(
1638
                        array(
1639
                            'name' => 'supported',
1640
                            'description' => 'A Boolean value specifying whether or not the operation is supported.',
1641
                            'type' => ScimConstants::ATTRIBUTE_TYPE_BOOLEAN,
1642
                            'multiValued' => false,
1643
                            'mutability' => 'readOnly',
1644
                            'required' => true,
1645
                            'returned' => 'default',
1646
                            'uniqueness' => 'none',
1647
                        ),
1648
                    ),
1649
                ),
1650
                array(
1651
                    'name' => 'sort',
1652
                    'description' => 'A complex type that specifies sort configuration options.',
1653
                    'type' => ScimConstants::ATTRIBUTE_TYPE_COMPLEX,
1654
                    'multiValued' => false,
1655
                    'mutability' => 'readOnly',
1656
                    'required' => true,
1657
                    'returned' => 'default',
1658
                    'uniqueness' => 'none',
1659
                    'subAttributes' => array(
1660
                        array(
1661
                            'name' => 'supported',
1662
                            'description' => 'A Boolean value specifying whether or not the operation is supported.',
1663
                            'type' => ScimConstants::ATTRIBUTE_TYPE_BOOLEAN,
1664
                            'multiValued' => false,
1665
                            'mutability' => 'readOnly',
1666
                            'required' => true,
1667
                            'returned' => 'default',
1668
                            'uniqueness' => 'none',
1669
                        ),
1670
                    ),
1671
                ),
1672
                array(
1673
                    'name' => 'etag',
1674
                    'description' => 'A complex type that specifies etag configuration options.',
1675
                    'type' => ScimConstants::ATTRIBUTE_TYPE_COMPLEX,
1676
                    'multiValued' => false,
1677
                    'mutability' => 'readOnly',
1678
                    'required' => true,
1679
                    'returned' => 'default',
1680
                    'uniqueness' => 'none',
1681
                    'subAttributes' => array(
1682
                        array(
1683
                            'name' => 'supported',
1684
                            'description' => 'A Boolean value specifying whether or not the operation is supported.',
1685
                            'type' => ScimConstants::ATTRIBUTE_TYPE_BOOLEAN,
1686
                            'multiValued' => false,
1687
                            'mutability' => 'readOnly',
1688
                            'required' => true,
1689
                            'returned' => 'default',
1690
                            'uniqueness' => 'none',
1691
                        ),
1692
                    ),
1693
                ),
1694
                array(
1695
                    'name' => 'authenticationSchemes',
1696
                    'description' => 'A multi-valued complex type that specifies supported authentication scheme properties.',
1697
                    'type' => ScimConstants::ATTRIBUTE_TYPE_COMPLEX,
1698
                    'multiValued' => true,
1699
                    'mutability' => 'readOnly',
1700
                    'required' => true,
1701
                    'returned' => 'default',
1702
                    'uniqueness' => 'none',
1703
                    'subAttributes' => array(
1704
                        array(
1705
                            'name' => 'type',
1706
                            'description' => 'Specifies the type of the authentication scheme',
1707
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
1708
                            'caseExact' => false,
1709
                            'multiValued' => false,
1710
                            'mutability' => 'readOnly',
1711
                            'required' => true,
1712
                            'returned' => 'default',
1713
                            'uniqueness' => 'none',
1714
                            'canonicalValues' => array(
1715
                                'oauth2',
1716
                                'httpbasic',
1717
                            ),
1718
                        ),
1719
                        array(
1720
                            'name' => 'name',
1721
                            'description' => 'The common authentication scheme name, e.g., HTTP Basic.',
1722
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
1723
                            'caseExact' => false,
1724
                            'multiValued' => false,
1725
                            'mutability' => 'readOnly',
1726
                            'required' => true,
1727
                            'returned' => 'default',
1728
                            'uniqueness' => 'none',
1729
                        ),
1730
                        array(
1731
                            'name' => 'description',
1732
                            'description' => 'A description of the authentication scheme.',
1733
                            'type' => ScimConstants::ATTRIBUTE_TYPE_STRING,
1734
                            'caseExact' => false,
1735
                            'multiValued' => false,
1736
                            'mutability' => 'readOnly',
1737
                            'required' => true,
1738
                            'returned' => 'default',
1739
                            'uniqueness' => 'none',
1740
                        ),
1741
                        array(
1742
                            'name' => 'specUri',
1743
                            'description' => 'An HTTP-addressable URL pointing to the authentication scheme\'s specification.',
1744
                            'type' => ScimConstants::ATTRIBUTE_TYPE_REFERENCE,
1745
                            'multiValued' => false,
1746
                            'mutability' => 'readOnly',
1747
                            'required' => false,
1748
                            'returned' => 'default',
1749
                            'referenceTypes' => array(
1750
                                'external',
1751
                            ),
1752
                            'uniqueness' => 'none',
1753
                        ),
1754
                        array(
1755
                            'name' => 'documentationUri',
1756
                            'description' => 'An HTTP-addressable URL pointing to the authentication scheme\'s usage documentation.',
1757
                            'type' => ScimConstants::ATTRIBUTE_TYPE_REFERENCE,
1758
                            'multiValued' => false,
1759
                            'mutability' => 'readOnly',
1760
                            'required' => false,
1761
                            'returned' => 'default',
1762
                            'referenceTypes' => array(
1763
                                'external',
1764
                            ),
1765
                            'uniqueness' => 'none',
1766
                        ),
1767
                        array(
1768
                            'name' => 'primary',
1769
                            'description' => 'A boolean indicates whether this authentication schema is primary',
1770
                            'type' => ScimConstants::ATTRIBUTE_TYPE_BOOLEAN,
1771
                            'multiValued' => false,
1772
                            'mutability' => 'readOnly',
1773
                            'required' => false,
1774
                            'returned' => 'default',
1775
                            'uniqueness' => 'none',
1776
                        ),
1777
                    ),
1778
                ),
1779
            ),
1780
            'externalId' => null,
1781
            'meta' => array(
1782
                'resourceType' => 'Schema',
1783
                'created' => '0001-01-01T00:00:00Z',
1784
                'lastModified' => '0001-01-01T00:00:00Z',
1785
                'location' => 'http://localhost:9091/scim/v2/schemas/urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig',
1786
                'version' => 'W/"96A2414FE73EC8C63FD54E9CB681821DF467D94D"',
1787
            ),
1788
        ),
1789
    );
1790
1791
    public function __construct($schemasEndpointUrl = null)
1792
    {
1793
        parent::__construct($schemasEndpointUrl ?: 'http://localhost/'.ScimConstantsV2::ENDPOINT_SCHEMAS);
1794
    }
1795
1796
    protected function getSchemaClass()
1797
    {
1798
        return Schema::class;
1799
    }
1800
1801
    /**
1802
     * @return Schema
1803
     */
1804
    public function getGroup()
1805
    {
1806
        return $this->get(ScimConstantsV2::SCHEMA_GROUP);
1807
    }
1808
1809
    /**
1810
     * @return Schema
1811
     */
1812
    public function getSchema()
1813
    {
1814
        return $this->get(ScimConstantsV2::SCHEMA_SCHEMA);
1815
    }
1816
1817
    /**
1818
     * @return Schema
1819
     */
1820
    public function getUser()
1821
    {
1822
        return $this->get(ScimConstantsV2::SCHEMA_USER);
1823
    }
1824
1825
    /**
1826
     * @return Schema
1827
     */
1828
    public function getEnterpriseUser()
1829
    {
1830
        return $this->get(ScimConstantsV2::SCHEMA_ENTERPRISE_USER);
1831
    }
1832
1833
    /**
1834
     * @return Schema
1835
     */
1836
    public function getServiceProviderConfig()
1837
    {
1838
        return $this->get(ScimConstantsV2::SCHEMA_SERVICE_PROVIDER_CONFIG);
1839
    }
1840
1841
    /**
1842
     * @return Schema
1843
     */
1844
    public function getResourceType()
1845
    {
1846
        return $this->get(ScimConstantsV2::SCHEMA_RESOURCE_TYPE);
1847
    }
1848
}
1849