aws-sdk-verifiedpermissions 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2954 @@
1
+ # frozen_string_literal: true
2
+
3
+ # WARNING ABOUT GENERATED CODE
4
+ #
5
+ # This file is generated. See the contributing guide for more information:
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
+ #
8
+ # WARNING ABOUT GENERATED CODE
9
+
10
+ module Aws::VerifiedPermissions
11
+ module Types
12
+
13
+ # You don't have sufficient access to perform this action.
14
+ #
15
+ # @!attribute [rw] message
16
+ # @return [String]
17
+ #
18
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/AccessDeniedException AWS API Documentation
19
+ #
20
+ class AccessDeniedException < Struct.new(
21
+ :message)
22
+ SENSITIVE = []
23
+ include Aws::Structure
24
+ end
25
+
26
+ # Contains information about an action for a request for which an
27
+ # authorization decision is made.
28
+ #
29
+ # This data type is used as an request parameter to the
30
+ # [IsAuthorized][1] and [IsAuthorizedWithToken][2] operations.
31
+ #
32
+ # Example: `\{ "actionId": "<action name>", "actionType": "Action" \}`
33
+ #
34
+ #
35
+ #
36
+ # [1]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorized.html
37
+ # [2]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorizedWithToken.html
38
+ #
39
+ # @!attribute [rw] action_type
40
+ # The type of an action.
41
+ # @return [String]
42
+ #
43
+ # @!attribute [rw] action_id
44
+ # The ID of an action.
45
+ # @return [String]
46
+ #
47
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/ActionIdentifier AWS API Documentation
48
+ #
49
+ class ActionIdentifier < Struct.new(
50
+ :action_type,
51
+ :action_id)
52
+ SENSITIVE = []
53
+ include Aws::Structure
54
+ end
55
+
56
+ # The value of an attribute.
57
+ #
58
+ # Contains information about the runtime context for a request for which
59
+ # an authorization decision is made.
60
+ #
61
+ # This data type is used as a member of the [ContextDefinition][1]
62
+ # structure which is uses as a request parameter for the
63
+ # [IsAuthorized][2] and [IsAuthorizedWithToken][3] operations.
64
+ #
65
+ #
66
+ #
67
+ # [1]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_ContextDefinition.html
68
+ # [2]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorized.html
69
+ # [3]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorizedWithToken.html
70
+ #
71
+ # @note AttributeValue is a union - when making an API calls you must set exactly one of the members.
72
+ #
73
+ # @!attribute [rw] boolean
74
+ # An attribute value of
75
+ # [Boolean](docs.cedarpolicy.comcedar-syntax-datatypes.html#datatype-boolean)
76
+ # type.
77
+ #
78
+ # Example: `\{"boolean": true\}`
79
+ # @return [Boolean]
80
+ #
81
+ # @!attribute [rw] entity_identifier
82
+ # An attribute value of type [EntityIdentifier][1].
83
+ #
84
+ # Example: `"entityIdentifier": \{ "entityId": "<id>", "entityType":
85
+ # "<entity type>"\}`
86
+ #
87
+ #
88
+ #
89
+ # [1]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_EntityIdentifier.html
90
+ # @return [Types::EntityIdentifier]
91
+ #
92
+ # @!attribute [rw] long
93
+ # An attribute value of
94
+ # [Long](docs.cedarpolicy.comcedar-syntax-datatypes.html#datatype-long)
95
+ # type.
96
+ #
97
+ # Example: `\{"long": 0\}`
98
+ # @return [Integer]
99
+ #
100
+ # @!attribute [rw] string
101
+ # An attribute value of
102
+ # [String](docs.cedarpolicy.comcedar-syntax-datatypes.html#datatype-string)
103
+ # type.
104
+ #
105
+ # Example: `\{"string": "abc"\}`
106
+ # @return [String]
107
+ #
108
+ # @!attribute [rw] set
109
+ # An attribute value of
110
+ # [Set](docs.cedarpolicy.comcedar-syntax-datatypes.html#datatype-set)
111
+ # type.
112
+ #
113
+ # Example: `\{"set": [ \{\} ] \}`
114
+ # @return [Array<Types::AttributeValue>]
115
+ #
116
+ # @!attribute [rw] record
117
+ # An attribute value of
118
+ # [Record](docs.cedarpolicy.comcedar-syntax-datatypes.html#datatype-record)
119
+ # type.
120
+ #
121
+ # Example: `\{"record": \{ "keyName": \{\} \} \}`
122
+ # @return [Hash<String,Types::AttributeValue>]
123
+ #
124
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/AttributeValue AWS API Documentation
125
+ #
126
+ class AttributeValue < Struct.new(
127
+ :boolean,
128
+ :entity_identifier,
129
+ :long,
130
+ :string,
131
+ :set,
132
+ :record,
133
+ :unknown)
134
+ SENSITIVE = []
135
+ include Aws::Structure
136
+ include Aws::Structure::Union
137
+
138
+ class Boolean < AttributeValue; end
139
+ class EntityIdentifier < AttributeValue; end
140
+ class Long < AttributeValue; end
141
+ class String < AttributeValue; end
142
+ class Set < AttributeValue; end
143
+ class Record < AttributeValue; end
144
+ class Unknown < AttributeValue; end
145
+ end
146
+
147
+ # The configuration for an identity source that represents a connection
148
+ # to an Amazon Cognito user pool used as an identity provider for
149
+ # Verified Permissions.
150
+ #
151
+ # This data type is used as a field that is part of an
152
+ # [Configuration][1] structure that is used as a parameter to the
153
+ # [Configuration][1].
154
+ #
155
+ # Example:`"CognitoUserPoolConfiguration":\{"UserPoolArn":"cognito-idp:us-east-1:123456789012:userpool/us-east-1_1a2b3c4d5","ClientIds":
156
+ # ["a1b2c3d4e5f6g7h8i9j0kalbmc"]\}`
157
+ #
158
+ #
159
+ #
160
+ # [1]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_Configuration.html
161
+ #
162
+ # @!attribute [rw] user_pool_arn
163
+ # The [Amazon Resource Name (ARN)][1] of the Amazon Cognito user pool
164
+ # that contains the identities to be authorized.
165
+ #
166
+ # Example: `"UserPoolArn":
167
+ # "cognito-idp:us-east-1:123456789012:userpool/us-east-1_1a2b3c4d5"`
168
+ #
169
+ #
170
+ #
171
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
172
+ # @return [String]
173
+ #
174
+ # @!attribute [rw] client_ids
175
+ # The unique application client IDs that are associated with the
176
+ # specified Amazon Cognito user pool.
177
+ #
178
+ # Example: `"ClientIds": ["&ExampleCogClientId;"]`
179
+ # @return [Array<String>]
180
+ #
181
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/CognitoUserPoolConfiguration AWS API Documentation
182
+ #
183
+ class CognitoUserPoolConfiguration < Struct.new(
184
+ :user_pool_arn,
185
+ :client_ids)
186
+ SENSITIVE = []
187
+ include Aws::Structure
188
+ end
189
+
190
+ # Contains configuration information used when creating a new identity
191
+ # source.
192
+ #
193
+ # <note markdown="1"> At this time, the only valid member of this structure is a Amazon
194
+ # Cognito user pool configuration.
195
+ #
196
+ # You must specify a `userPoolArn`, and optionally, a `ClientId`.
197
+ #
198
+ # </note>
199
+ #
200
+ # This data type is used as a request parameter for the
201
+ # [CreateIdentitySource][1] operation.
202
+ #
203
+ #
204
+ #
205
+ # [1]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CreateIdentitySource.html
206
+ #
207
+ # @note Configuration is a union - when making an API calls you must set exactly one of the members.
208
+ #
209
+ # @!attribute [rw] cognito_user_pool_configuration
210
+ # Contains configuration details of a Amazon Cognito user pool that
211
+ # Verified Permissions can use as a source of authenticated identities
212
+ # as entities. It specifies the [Amazon Resource Name (ARN)][1] of a
213
+ # Amazon Cognito user pool and one or more application client IDs.
214
+ #
215
+ # Example:
216
+ # `"configuration":\{"cognitoUserPoolConfiguration":\{"userPoolArn":"cognito-idp:us-east-1:123456789012:userpool/us-east-1_1a2b3c4d5","clientIds":
217
+ # ["a1b2c3d4e5f6g7h8i9j0kalbmc"]\}\}`
218
+ #
219
+ #
220
+ #
221
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
222
+ # @return [Types::CognitoUserPoolConfiguration]
223
+ #
224
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/Configuration AWS API Documentation
225
+ #
226
+ class Configuration < Struct.new(
227
+ :cognito_user_pool_configuration,
228
+ :unknown)
229
+ SENSITIVE = []
230
+ include Aws::Structure
231
+ include Aws::Structure::Union
232
+
233
+ class CognitoUserPoolConfiguration < Configuration; end
234
+ class Unknown < Configuration; end
235
+ end
236
+
237
+ # The request failed because another request to modify a resource
238
+ # occurred at the same.
239
+ #
240
+ # @!attribute [rw] message
241
+ # @return [String]
242
+ #
243
+ # @!attribute [rw] resources
244
+ # The list of resources referenced with this failed request.
245
+ # @return [Array<Types::ResourceConflict>]
246
+ #
247
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/ConflictException AWS API Documentation
248
+ #
249
+ class ConflictException < Struct.new(
250
+ :message,
251
+ :resources)
252
+ SENSITIVE = []
253
+ include Aws::Structure
254
+ end
255
+
256
+ # Contains additional details about the context of the request. Verified
257
+ # Permissions evaluates this information in an authorization request as
258
+ # part of the `when` and `unless` clauses in a policy.
259
+ #
260
+ # This data type is used as a request parameter for the
261
+ # [IsAuthorized][1] and [IsAuthorizedWithToken][2] operations.
262
+ #
263
+ # Example:
264
+ # `"context":\{"Context":\{"<KeyName1>":\{"boolean":true\},"<KeyName2>":\{"long":1234\}\}\}`
265
+ #
266
+ #
267
+ #
268
+ # [1]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorized.html
269
+ # [2]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorizedWithToken.html
270
+ #
271
+ # @note ContextDefinition is a union - when making an API calls you must set exactly one of the members.
272
+ #
273
+ # @!attribute [rw] context_map
274
+ # An list of attributes that are needed to successfully evaluate an
275
+ # authorization request. Each attribute in this array must include a
276
+ # map of a data type and its value.
277
+ #
278
+ # Example:
279
+ # `"Context":\{"<KeyName1>":\{"boolean":true\},"<KeyName2>":\{"long":1234\}\}`
280
+ # @return [Hash<String,Types::AttributeValue>]
281
+ #
282
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/ContextDefinition AWS API Documentation
283
+ #
284
+ class ContextDefinition < Struct.new(
285
+ :context_map,
286
+ :unknown)
287
+ SENSITIVE = []
288
+ include Aws::Structure
289
+ include Aws::Structure::Union
290
+
291
+ class ContextMap < ContextDefinition; end
292
+ class Unknown < ContextDefinition; end
293
+ end
294
+
295
+ # @!attribute [rw] client_token
296
+ # Specifies a unique, case-sensitive ID that you provide to ensure the
297
+ # idempotency of the request. This lets you safely retry the request
298
+ # without accidentally performing the same operation a second time.
299
+ # Passing the same value to a later call to an operation requires that
300
+ # you also pass the same value for all other parameters. We recommend
301
+ # that you use a [UUID type of value.][1].
302
+ #
303
+ # If you don't provide this value, then Amazon Web Services generates
304
+ # a random one for you.
305
+ #
306
+ # If you retry the operation with the same `ClientToken`, but with
307
+ # different parameters, the retry fails with an
308
+ # `IdempotentParameterMismatch` error.
309
+ #
310
+ # **A suitable default value is auto-generated.** You should normally
311
+ # not need to pass this option.
312
+ #
313
+ #
314
+ #
315
+ # [1]: https://wikipedia.org/wiki/Universally_unique_Id
316
+ # @return [String]
317
+ #
318
+ # @!attribute [rw] policy_store_id
319
+ # Specifies the ID of the policy store in which you want to store this
320
+ # identity source. Only policies and requests made using this policy
321
+ # store can reference identities from the identity provider configured
322
+ # in the new identity source.
323
+ # @return [String]
324
+ #
325
+ # @!attribute [rw] configuration
326
+ # Specifies the details required to communicate with the identity
327
+ # provider (IdP) associated with this identity source.
328
+ #
329
+ # <note markdown="1"> At this time, the only valid member of this structure is a Amazon
330
+ # Cognito user pool configuration.
331
+ #
332
+ # You must specify a `UserPoolArn`, and optionally, a `ClientId`.
333
+ #
334
+ # </note>
335
+ # @return [Types::Configuration]
336
+ #
337
+ # @!attribute [rw] principal_entity_type
338
+ # Specifies the namespace and data type of the principals generated
339
+ # for identities authenticated by the new identity source.
340
+ # @return [String]
341
+ #
342
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/CreateIdentitySourceInput AWS API Documentation
343
+ #
344
+ class CreateIdentitySourceInput < Struct.new(
345
+ :client_token,
346
+ :policy_store_id,
347
+ :configuration,
348
+ :principal_entity_type)
349
+ SENSITIVE = []
350
+ include Aws::Structure
351
+ end
352
+
353
+ # @!attribute [rw] created_date
354
+ # The date and time the identity source was originally created.
355
+ # @return [Time]
356
+ #
357
+ # @!attribute [rw] identity_source_id
358
+ # The unique ID of the new identity source.
359
+ # @return [String]
360
+ #
361
+ # @!attribute [rw] last_updated_date
362
+ # The date and time the identity source was most recently updated.
363
+ # @return [Time]
364
+ #
365
+ # @!attribute [rw] policy_store_id
366
+ # The ID of the policy store that contains the identity source.
367
+ # @return [String]
368
+ #
369
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/CreateIdentitySourceOutput AWS API Documentation
370
+ #
371
+ class CreateIdentitySourceOutput < Struct.new(
372
+ :created_date,
373
+ :identity_source_id,
374
+ :last_updated_date,
375
+ :policy_store_id)
376
+ SENSITIVE = []
377
+ include Aws::Structure
378
+ end
379
+
380
+ # @!attribute [rw] client_token
381
+ # Specifies a unique, case-sensitive ID that you provide to ensure the
382
+ # idempotency of the request. This lets you safely retry the request
383
+ # without accidentally performing the same operation a second time.
384
+ # Passing the same value to a later call to an operation requires that
385
+ # you also pass the same value for all other parameters. We recommend
386
+ # that you use a [UUID type of value.][1].
387
+ #
388
+ # If you don't provide this value, then Amazon Web Services generates
389
+ # a random one for you.
390
+ #
391
+ # If you retry the operation with the same `ClientToken`, but with
392
+ # different parameters, the retry fails with an
393
+ # `IdempotentParameterMismatch` error.
394
+ #
395
+ # **A suitable default value is auto-generated.** You should normally
396
+ # not need to pass this option.
397
+ #
398
+ #
399
+ #
400
+ # [1]: https://wikipedia.org/wiki/Universally_unique_Id
401
+ # @return [String]
402
+ #
403
+ # @!attribute [rw] policy_store_id
404
+ # Specifies the `PolicyStoreId` of the policy store you want to store
405
+ # the policy in.
406
+ # @return [String]
407
+ #
408
+ # @!attribute [rw] definition
409
+ # A structure that specifies the policy type and content to use for
410
+ # the new policy. You must include either a static or a templateLinked
411
+ # element. The policy content must be written in the Cedar policy
412
+ # language.
413
+ # @return [Types::PolicyDefinition]
414
+ #
415
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/CreatePolicyInput AWS API Documentation
416
+ #
417
+ class CreatePolicyInput < Struct.new(
418
+ :client_token,
419
+ :policy_store_id,
420
+ :definition)
421
+ SENSITIVE = []
422
+ include Aws::Structure
423
+ end
424
+
425
+ # @!attribute [rw] policy_store_id
426
+ # The ID of the policy store that contains the new policy.
427
+ # @return [String]
428
+ #
429
+ # @!attribute [rw] policy_id
430
+ # The unique ID of the new policy.
431
+ # @return [String]
432
+ #
433
+ # @!attribute [rw] policy_type
434
+ # The policy type of the new policy.
435
+ # @return [String]
436
+ #
437
+ # @!attribute [rw] principal
438
+ # The principal specified in the new policy's scope. This response
439
+ # element isn't present when `principal` isn't specified in the
440
+ # policy content.
441
+ # @return [Types::EntityIdentifier]
442
+ #
443
+ # @!attribute [rw] resource
444
+ # The resource specified in the new policy's scope. This response
445
+ # element isn't present when the `resource` isn't specified in the
446
+ # policy content.
447
+ # @return [Types::EntityIdentifier]
448
+ #
449
+ # @!attribute [rw] created_date
450
+ # The date and time the policy was originally created.
451
+ # @return [Time]
452
+ #
453
+ # @!attribute [rw] last_updated_date
454
+ # The date and time the policy was last updated.
455
+ # @return [Time]
456
+ #
457
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/CreatePolicyOutput AWS API Documentation
458
+ #
459
+ class CreatePolicyOutput < Struct.new(
460
+ :policy_store_id,
461
+ :policy_id,
462
+ :policy_type,
463
+ :principal,
464
+ :resource,
465
+ :created_date,
466
+ :last_updated_date)
467
+ SENSITIVE = []
468
+ include Aws::Structure
469
+ end
470
+
471
+ # @!attribute [rw] client_token
472
+ # Specifies a unique, case-sensitive ID that you provide to ensure the
473
+ # idempotency of the request. This lets you safely retry the request
474
+ # without accidentally performing the same operation a second time.
475
+ # Passing the same value to a later call to an operation requires that
476
+ # you also pass the same value for all other parameters. We recommend
477
+ # that you use a [UUID type of value.][1].
478
+ #
479
+ # If you don't provide this value, then Amazon Web Services generates
480
+ # a random one for you.
481
+ #
482
+ # If you retry the operation with the same `ClientToken`, but with
483
+ # different parameters, the retry fails with an
484
+ # `IdempotentParameterMismatch` error.
485
+ #
486
+ # **A suitable default value is auto-generated.** You should normally
487
+ # not need to pass this option.
488
+ #
489
+ #
490
+ #
491
+ # [1]: https://wikipedia.org/wiki/Universally_unique_Id
492
+ # @return [String]
493
+ #
494
+ # @!attribute [rw] validation_settings
495
+ # Specifies the validation setting for this policy store.
496
+ #
497
+ # Currently, the only valid and required value is `Mode`.
498
+ #
499
+ # We recommend that you turn on `STRICT` mode only after you define a
500
+ # schema. If a schema doesn't exist, then `STRICT` mode causes any
501
+ # policy to fail validation, and Verified Permissions rejects the
502
+ # policy. You can turn off validation by using the
503
+ # [UpdatePolicyStore][1]. Then, when you have a schema defined, use
504
+ # [UpdatePolicyStore][1] again to turn validation back on.
505
+ #
506
+ #
507
+ #
508
+ # [1]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_UpdatePolicyStore
509
+ # @return [Types::ValidationSettings]
510
+ #
511
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/CreatePolicyStoreInput AWS API Documentation
512
+ #
513
+ class CreatePolicyStoreInput < Struct.new(
514
+ :client_token,
515
+ :validation_settings)
516
+ SENSITIVE = []
517
+ include Aws::Structure
518
+ end
519
+
520
+ # @!attribute [rw] policy_store_id
521
+ # The unique ID of the new policy store.
522
+ # @return [String]
523
+ #
524
+ # @!attribute [rw] arn
525
+ # The Amazon Resource Name (ARN) of the new policy store.
526
+ # @return [String]
527
+ #
528
+ # @!attribute [rw] created_date
529
+ # The date and time the policy store was originally created.
530
+ # @return [Time]
531
+ #
532
+ # @!attribute [rw] last_updated_date
533
+ # The date and time the policy store was last updated.
534
+ # @return [Time]
535
+ #
536
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/CreatePolicyStoreOutput AWS API Documentation
537
+ #
538
+ class CreatePolicyStoreOutput < Struct.new(
539
+ :policy_store_id,
540
+ :arn,
541
+ :created_date,
542
+ :last_updated_date)
543
+ SENSITIVE = []
544
+ include Aws::Structure
545
+ end
546
+
547
+ # @!attribute [rw] client_token
548
+ # Specifies a unique, case-sensitive ID that you provide to ensure the
549
+ # idempotency of the request. This lets you safely retry the request
550
+ # without accidentally performing the same operation a second time.
551
+ # Passing the same value to a later call to an operation requires that
552
+ # you also pass the same value for all other parameters. We recommend
553
+ # that you use a [UUID type of value.][1].
554
+ #
555
+ # If you don't provide this value, then Amazon Web Services generates
556
+ # a random one for you.
557
+ #
558
+ # If you retry the operation with the same `ClientToken`, but with
559
+ # different parameters, the retry fails with an
560
+ # `IdempotentParameterMismatch` error.
561
+ #
562
+ # **A suitable default value is auto-generated.** You should normally
563
+ # not need to pass this option.
564
+ #
565
+ #
566
+ #
567
+ # [1]: https://wikipedia.org/wiki/Universally_unique_Id
568
+ # @return [String]
569
+ #
570
+ # @!attribute [rw] policy_store_id
571
+ # The ID of the policy store in which to create the policy template.
572
+ # @return [String]
573
+ #
574
+ # @!attribute [rw] description
575
+ # Specifies a description for the policy template.
576
+ # @return [String]
577
+ #
578
+ # @!attribute [rw] statement
579
+ # Specifies the content that you want to use for the new policy
580
+ # template, written in the Cedar policy language.
581
+ # @return [String]
582
+ #
583
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/CreatePolicyTemplateInput AWS API Documentation
584
+ #
585
+ class CreatePolicyTemplateInput < Struct.new(
586
+ :client_token,
587
+ :policy_store_id,
588
+ :description,
589
+ :statement)
590
+ SENSITIVE = []
591
+ include Aws::Structure
592
+ end
593
+
594
+ # @!attribute [rw] policy_store_id
595
+ # The ID of the policy store that contains the policy template.
596
+ # @return [String]
597
+ #
598
+ # @!attribute [rw] policy_template_id
599
+ # The unique ID of the new policy template.
600
+ # @return [String]
601
+ #
602
+ # @!attribute [rw] created_date
603
+ # The date and time the policy template was originally created.
604
+ # @return [Time]
605
+ #
606
+ # @!attribute [rw] last_updated_date
607
+ # The date and time the policy template was most recently updated.
608
+ # @return [Time]
609
+ #
610
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/CreatePolicyTemplateOutput AWS API Documentation
611
+ #
612
+ class CreatePolicyTemplateOutput < Struct.new(
613
+ :policy_store_id,
614
+ :policy_template_id,
615
+ :created_date,
616
+ :last_updated_date)
617
+ SENSITIVE = []
618
+ include Aws::Structure
619
+ end
620
+
621
+ # @!attribute [rw] policy_store_id
622
+ # Specifies the ID of the policy store that contains the identity
623
+ # source that you want to delete.
624
+ # @return [String]
625
+ #
626
+ # @!attribute [rw] identity_source_id
627
+ # Specifies the ID of the identity source that you want to delete.
628
+ # @return [String]
629
+ #
630
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/DeleteIdentitySourceInput AWS API Documentation
631
+ #
632
+ class DeleteIdentitySourceInput < Struct.new(
633
+ :policy_store_id,
634
+ :identity_source_id)
635
+ SENSITIVE = []
636
+ include Aws::Structure
637
+ end
638
+
639
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/DeleteIdentitySourceOutput AWS API Documentation
640
+ #
641
+ class DeleteIdentitySourceOutput < Aws::EmptyStructure; end
642
+
643
+ # @!attribute [rw] policy_store_id
644
+ # Specifies the ID of the policy store that contains the policy that
645
+ # you want to delete.
646
+ # @return [String]
647
+ #
648
+ # @!attribute [rw] policy_id
649
+ # Specifies the ID of the policy that you want to delete.
650
+ # @return [String]
651
+ #
652
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/DeletePolicyInput AWS API Documentation
653
+ #
654
+ class DeletePolicyInput < Struct.new(
655
+ :policy_store_id,
656
+ :policy_id)
657
+ SENSITIVE = []
658
+ include Aws::Structure
659
+ end
660
+
661
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/DeletePolicyOutput AWS API Documentation
662
+ #
663
+ class DeletePolicyOutput < Aws::EmptyStructure; end
664
+
665
+ # @!attribute [rw] policy_store_id
666
+ # Specifies the ID of the policy store that you want to delete.
667
+ # @return [String]
668
+ #
669
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/DeletePolicyStoreInput AWS API Documentation
670
+ #
671
+ class DeletePolicyStoreInput < Struct.new(
672
+ :policy_store_id)
673
+ SENSITIVE = []
674
+ include Aws::Structure
675
+ end
676
+
677
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/DeletePolicyStoreOutput AWS API Documentation
678
+ #
679
+ class DeletePolicyStoreOutput < Aws::EmptyStructure; end
680
+
681
+ # @!attribute [rw] policy_store_id
682
+ # Specifies the ID of the policy store that contains the policy
683
+ # template that you want to delete.
684
+ # @return [String]
685
+ #
686
+ # @!attribute [rw] policy_template_id
687
+ # Specifies the ID of the policy template that you want to delete.
688
+ # @return [String]
689
+ #
690
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/DeletePolicyTemplateInput AWS API Documentation
691
+ #
692
+ class DeletePolicyTemplateInput < Struct.new(
693
+ :policy_store_id,
694
+ :policy_template_id)
695
+ SENSITIVE = []
696
+ include Aws::Structure
697
+ end
698
+
699
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/DeletePolicyTemplateOutput AWS API Documentation
700
+ #
701
+ class DeletePolicyTemplateOutput < Aws::EmptyStructure; end
702
+
703
+ # Contains information about one of the policies that determined an
704
+ # authorization decision.
705
+ #
706
+ # This data type is used as an element in a response parameter for the
707
+ # [IsAuthorized][1] and [IsAuthorizedWithToken][2] operations.
708
+ #
709
+ # Example:
710
+ # `"determiningPolicies":[\{"policyId":"SPEXAMPLEabcdefg111111"\}]`
711
+ #
712
+ #
713
+ #
714
+ # [1]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorized.html
715
+ # [2]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorizedWithToken.html
716
+ #
717
+ # @!attribute [rw] policy_id
718
+ # The Id of a policy that determined to an authorization decision.
719
+ #
720
+ # Example: `"policyId":"SPEXAMPLEabcdefg111111"`
721
+ # @return [String]
722
+ #
723
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/DeterminingPolicyItem AWS API Documentation
724
+ #
725
+ class DeterminingPolicyItem < Struct.new(
726
+ :policy_id)
727
+ SENSITIVE = []
728
+ include Aws::Structure
729
+ end
730
+
731
+ # Contains the list of entities to be considered during an authorization
732
+ # request. This includes all principals, resources, and actions required
733
+ # to successfully evaluate the request.
734
+ #
735
+ # This data type is used as a field in the response parameter for the
736
+ # [IsAuthorized][1] and [IsAuthorizedWithToken][2] operations.
737
+ #
738
+ #
739
+ #
740
+ # [1]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorized.html
741
+ # [2]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorizedWithToken.html
742
+ #
743
+ # @note EntitiesDefinition is a union - when making an API calls you must set exactly one of the members.
744
+ #
745
+ # @!attribute [rw] entity_list
746
+ # An array of entities that are needed to successfully evaluate an
747
+ # authorization request. Each entity in this array must include an
748
+ # identifier for the entity, the attributes of the entity, and a list
749
+ # of any parent entities.
750
+ # @return [Array<Types::EntityItem>]
751
+ #
752
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/EntitiesDefinition AWS API Documentation
753
+ #
754
+ class EntitiesDefinition < Struct.new(
755
+ :entity_list,
756
+ :unknown)
757
+ SENSITIVE = []
758
+ include Aws::Structure
759
+ include Aws::Structure::Union
760
+
761
+ class EntityList < EntitiesDefinition; end
762
+ class Unknown < EntitiesDefinition; end
763
+ end
764
+
765
+ # Contains the identifier of an entity, including its ID and type.
766
+ #
767
+ # This data type is used as a request parameter for [IsAuthorized][1]
768
+ # operation, and as a response parameter for the [CreatePolicy][2],
769
+ # [GetPolicy][3], and [UpdatePolicy][4] operations.
770
+ #
771
+ # Example: `\{"entityId":"string","entityType":"string"\}`
772
+ #
773
+ #
774
+ #
775
+ # [1]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorized.html
776
+ # [2]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CreatePolicy.html
777
+ # [3]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_GetPolicy.html
778
+ # [4]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_UpdatePolicy.html
779
+ #
780
+ # @!attribute [rw] entity_type
781
+ # The type of an entity.
782
+ #
783
+ # Example: `"entityType":"typeName"`
784
+ # @return [String]
785
+ #
786
+ # @!attribute [rw] entity_id
787
+ # The identifier of an entity.
788
+ #
789
+ # `"entityId":"identifier"`
790
+ # @return [String]
791
+ #
792
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/EntityIdentifier AWS API Documentation
793
+ #
794
+ class EntityIdentifier < Struct.new(
795
+ :entity_type,
796
+ :entity_id)
797
+ SENSITIVE = []
798
+ include Aws::Structure
799
+ end
800
+
801
+ # Contains information about an entity that can be referenced in a Cedar
802
+ # policy.
803
+ #
804
+ # This data type is used as one of the fields in the
805
+ # [EntitiesDefinition][1] structure.
806
+ #
807
+ # `\{ "id": \{ "entityType": "Photo", "entityId": "VacationPhoto94.jpg"
808
+ # \}, "Attributes": \{\}, "Parents": [ \{ "entityType": "Album",
809
+ # "entityId": "alice_folder" \} ] \}`
810
+ #
811
+ #
812
+ #
813
+ # [1]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_EntitiesDefinition.html
814
+ #
815
+ # @!attribute [rw] identifier
816
+ # The identifier of the entity.
817
+ # @return [Types::EntityIdentifier]
818
+ #
819
+ # @!attribute [rw] attributes
820
+ # A list of attributes for the entity.
821
+ # @return [Hash<String,Types::AttributeValue>]
822
+ #
823
+ # @!attribute [rw] parents
824
+ # The parents in the hierarchy that contains the entity.
825
+ # @return [Array<Types::EntityIdentifier>]
826
+ #
827
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/EntityItem AWS API Documentation
828
+ #
829
+ class EntityItem < Struct.new(
830
+ :identifier,
831
+ :attributes,
832
+ :parents)
833
+ SENSITIVE = []
834
+ include Aws::Structure
835
+ end
836
+
837
+ # Contains information about a principal or resource that can be
838
+ # referenced in a Cedar policy.
839
+ #
840
+ # This data type is used as part of the [PolicyFilter][1] structure that
841
+ # is used as a request parameter for the [ListPolicies][2] operation..
842
+ #
843
+ #
844
+ #
845
+ # [1]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_PolicyFilter.html
846
+ # [2]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_ListPolicies.html
847
+ #
848
+ # @note EntityReference is a union - when making an API calls you must set exactly one of the members.
849
+ #
850
+ # @!attribute [rw] unspecified
851
+ # Used to indicate that a principal or resource is not specified. This
852
+ # can be used to search for policies that are not associated with a
853
+ # specific principal or resource.
854
+ # @return [Boolean]
855
+ #
856
+ # @!attribute [rw] identifier
857
+ # The identifier of the entity. It can consist of either an EntityType
858
+ # and EntityId, a principal, or a resource.
859
+ # @return [Types::EntityIdentifier]
860
+ #
861
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/EntityReference AWS API Documentation
862
+ #
863
+ class EntityReference < Struct.new(
864
+ :unspecified,
865
+ :identifier,
866
+ :unknown)
867
+ SENSITIVE = []
868
+ include Aws::Structure
869
+ include Aws::Structure::Union
870
+
871
+ class Unspecified < EntityReference; end
872
+ class Identifier < EntityReference; end
873
+ class Unknown < EntityReference; end
874
+ end
875
+
876
+ # Contains a description of an evaluation error.
877
+ #
878
+ # This data type is used as a request parameter in the [IsAuthorized][1]
879
+ # and [IsAuthorizedWithToken][2] operations.
880
+ #
881
+ #
882
+ #
883
+ # [1]: https://docs.aws.amazon.com/amazon-verified-permissions/latest/APIReference/API_IsAuthorized.html
884
+ # [2]: https://docs.aws.amazon.com/amazon-verified-permissions/latest/APIReference/API_IsAuthorizedWithToken.html
885
+ #
886
+ # @!attribute [rw] error_description
887
+ # The error description.
888
+ # @return [String]
889
+ #
890
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/EvaluationErrorItem AWS API Documentation
891
+ #
892
+ class EvaluationErrorItem < Struct.new(
893
+ :error_description)
894
+ SENSITIVE = []
895
+ include Aws::Structure
896
+ end
897
+
898
+ # @!attribute [rw] policy_store_id
899
+ # Specifies the ID of the policy store that contains the identity
900
+ # source you want information about.
901
+ # @return [String]
902
+ #
903
+ # @!attribute [rw] identity_source_id
904
+ # Specifies the ID of the identity source you want information about.
905
+ # @return [String]
906
+ #
907
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/GetIdentitySourceInput AWS API Documentation
908
+ #
909
+ class GetIdentitySourceInput < Struct.new(
910
+ :policy_store_id,
911
+ :identity_source_id)
912
+ SENSITIVE = []
913
+ include Aws::Structure
914
+ end
915
+
916
+ # @!attribute [rw] created_date
917
+ # The date and time that the identity source was originally created.
918
+ # @return [Time]
919
+ #
920
+ # @!attribute [rw] details
921
+ # A structure that describes the configuration of the identity source.
922
+ # @return [Types::IdentitySourceDetails]
923
+ #
924
+ # @!attribute [rw] identity_source_id
925
+ # The ID of the identity source.
926
+ # @return [String]
927
+ #
928
+ # @!attribute [rw] last_updated_date
929
+ # The date and time that the identity source was most recently
930
+ # updated.
931
+ # @return [Time]
932
+ #
933
+ # @!attribute [rw] policy_store_id
934
+ # The ID of the policy store that contains the identity source.
935
+ # @return [String]
936
+ #
937
+ # @!attribute [rw] principal_entity_type
938
+ # The data type of principals generated for identities authenticated
939
+ # by this identity source.
940
+ # @return [String]
941
+ #
942
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/GetIdentitySourceOutput AWS API Documentation
943
+ #
944
+ class GetIdentitySourceOutput < Struct.new(
945
+ :created_date,
946
+ :details,
947
+ :identity_source_id,
948
+ :last_updated_date,
949
+ :policy_store_id,
950
+ :principal_entity_type)
951
+ SENSITIVE = []
952
+ include Aws::Structure
953
+ end
954
+
955
+ # @!attribute [rw] policy_store_id
956
+ # Specifies the ID of the policy store that contains the policy that
957
+ # you want information about.
958
+ # @return [String]
959
+ #
960
+ # @!attribute [rw] policy_id
961
+ # Specifies the ID of the policy you want information about.
962
+ # @return [String]
963
+ #
964
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/GetPolicyInput AWS API Documentation
965
+ #
966
+ class GetPolicyInput < Struct.new(
967
+ :policy_store_id,
968
+ :policy_id)
969
+ SENSITIVE = []
970
+ include Aws::Structure
971
+ end
972
+
973
+ # @!attribute [rw] policy_store_id
974
+ # The ID of the policy store that contains the policy that you want
975
+ # information about.
976
+ # @return [String]
977
+ #
978
+ # @!attribute [rw] policy_id
979
+ # The unique ID of the policy that you want information about.
980
+ # @return [String]
981
+ #
982
+ # @!attribute [rw] policy_type
983
+ # The type of the policy.
984
+ # @return [String]
985
+ #
986
+ # @!attribute [rw] principal
987
+ # The principal specified in the policy's scope. This element isn't
988
+ # included in the response when `Principal` isn't present in the
989
+ # policy content.
990
+ # @return [Types::EntityIdentifier]
991
+ #
992
+ # @!attribute [rw] resource
993
+ # The resource specified in the policy's scope. This element isn't
994
+ # included in the response when `Resource` isn't present in the
995
+ # policy content.
996
+ # @return [Types::EntityIdentifier]
997
+ #
998
+ # @!attribute [rw] definition
999
+ # The definition of the requested policy.
1000
+ # @return [Types::PolicyDefinitionDetail]
1001
+ #
1002
+ # @!attribute [rw] created_date
1003
+ # The date and time that the policy was originally created.
1004
+ # @return [Time]
1005
+ #
1006
+ # @!attribute [rw] last_updated_date
1007
+ # The date and time that the policy was last updated.
1008
+ # @return [Time]
1009
+ #
1010
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/GetPolicyOutput AWS API Documentation
1011
+ #
1012
+ class GetPolicyOutput < Struct.new(
1013
+ :policy_store_id,
1014
+ :policy_id,
1015
+ :policy_type,
1016
+ :principal,
1017
+ :resource,
1018
+ :definition,
1019
+ :created_date,
1020
+ :last_updated_date)
1021
+ SENSITIVE = []
1022
+ include Aws::Structure
1023
+ end
1024
+
1025
+ # @!attribute [rw] policy_store_id
1026
+ # Specifies the ID of the policy store that you want information
1027
+ # about.
1028
+ # @return [String]
1029
+ #
1030
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/GetPolicyStoreInput AWS API Documentation
1031
+ #
1032
+ class GetPolicyStoreInput < Struct.new(
1033
+ :policy_store_id)
1034
+ SENSITIVE = []
1035
+ include Aws::Structure
1036
+ end
1037
+
1038
+ # @!attribute [rw] policy_store_id
1039
+ # The ID of the policy store;
1040
+ # @return [String]
1041
+ #
1042
+ # @!attribute [rw] arn
1043
+ # The Amazon Resource Name (ARN) of the policy store.
1044
+ # @return [String]
1045
+ #
1046
+ # @!attribute [rw] validation_settings
1047
+ # The current validation settings for the policy store.
1048
+ # @return [Types::ValidationSettings]
1049
+ #
1050
+ # @!attribute [rw] created_date
1051
+ # The date and time that the policy store was originally created.
1052
+ # @return [Time]
1053
+ #
1054
+ # @!attribute [rw] last_updated_date
1055
+ # The date and time that the policy store was last updated.
1056
+ # @return [Time]
1057
+ #
1058
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/GetPolicyStoreOutput AWS API Documentation
1059
+ #
1060
+ class GetPolicyStoreOutput < Struct.new(
1061
+ :policy_store_id,
1062
+ :arn,
1063
+ :validation_settings,
1064
+ :created_date,
1065
+ :last_updated_date)
1066
+ SENSITIVE = []
1067
+ include Aws::Structure
1068
+ end
1069
+
1070
+ # @!attribute [rw] policy_store_id
1071
+ # Specifies the ID of the policy store that contains the policy
1072
+ # template that you want information about.
1073
+ # @return [String]
1074
+ #
1075
+ # @!attribute [rw] policy_template_id
1076
+ # Specifies the ID of the policy template that you want information
1077
+ # about.
1078
+ # @return [String]
1079
+ #
1080
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/GetPolicyTemplateInput AWS API Documentation
1081
+ #
1082
+ class GetPolicyTemplateInput < Struct.new(
1083
+ :policy_store_id,
1084
+ :policy_template_id)
1085
+ SENSITIVE = []
1086
+ include Aws::Structure
1087
+ end
1088
+
1089
+ # @!attribute [rw] policy_store_id
1090
+ # The ID of the policy store that contains the policy template.
1091
+ # @return [String]
1092
+ #
1093
+ # @!attribute [rw] policy_template_id
1094
+ # The ID of the policy template.
1095
+ # @return [String]
1096
+ #
1097
+ # @!attribute [rw] description
1098
+ # The description of the policy template.
1099
+ # @return [String]
1100
+ #
1101
+ # @!attribute [rw] statement
1102
+ # The content of the body of the policy template written in the Cedar
1103
+ # policy language.
1104
+ # @return [String]
1105
+ #
1106
+ # @!attribute [rw] created_date
1107
+ # The date and time that the policy template was originally created.
1108
+ # @return [Time]
1109
+ #
1110
+ # @!attribute [rw] last_updated_date
1111
+ # The date and time that the policy template was most recently
1112
+ # updated.
1113
+ # @return [Time]
1114
+ #
1115
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/GetPolicyTemplateOutput AWS API Documentation
1116
+ #
1117
+ class GetPolicyTemplateOutput < Struct.new(
1118
+ :policy_store_id,
1119
+ :policy_template_id,
1120
+ :description,
1121
+ :statement,
1122
+ :created_date,
1123
+ :last_updated_date)
1124
+ SENSITIVE = []
1125
+ include Aws::Structure
1126
+ end
1127
+
1128
+ # @!attribute [rw] policy_store_id
1129
+ # Specifies the ID of the policy store that contains the schema.
1130
+ # @return [String]
1131
+ #
1132
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/GetSchemaInput AWS API Documentation
1133
+ #
1134
+ class GetSchemaInput < Struct.new(
1135
+ :policy_store_id)
1136
+ SENSITIVE = []
1137
+ include Aws::Structure
1138
+ end
1139
+
1140
+ # @!attribute [rw] policy_store_id
1141
+ # The ID of the policy store that contains the schema.
1142
+ # @return [String]
1143
+ #
1144
+ # @!attribute [rw] schema
1145
+ # The body of the schema, written in Cedar schema JSON.
1146
+ # @return [String]
1147
+ #
1148
+ # @!attribute [rw] created_date
1149
+ # The date and time that the schema was originally created.
1150
+ # @return [Time]
1151
+ #
1152
+ # @!attribute [rw] last_updated_date
1153
+ # The date and time that the schema was most recently updated.
1154
+ # @return [Time]
1155
+ #
1156
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/GetSchemaOutput AWS API Documentation
1157
+ #
1158
+ class GetSchemaOutput < Struct.new(
1159
+ :policy_store_id,
1160
+ :schema,
1161
+ :created_date,
1162
+ :last_updated_date)
1163
+ SENSITIVE = []
1164
+ include Aws::Structure
1165
+ end
1166
+
1167
+ # A structure that contains configuration of the identity source.
1168
+ #
1169
+ # This data type is used as a response parameter for the
1170
+ # [CreateIdentitySource][1] operation.
1171
+ #
1172
+ #
1173
+ #
1174
+ # [1]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CreateIdentitySource.html
1175
+ #
1176
+ # @!attribute [rw] client_ids
1177
+ # The application client IDs associated with the specified Amazon
1178
+ # Cognito user pool that are enabled for this identity source.
1179
+ # @return [Array<String>]
1180
+ #
1181
+ # @!attribute [rw] user_pool_arn
1182
+ # The [Amazon Resource Name (ARN)][1] of the Amazon Cognito user pool
1183
+ # whose identities are accessible to this Verified Permissions policy
1184
+ # store.
1185
+ #
1186
+ #
1187
+ #
1188
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
1189
+ # @return [String]
1190
+ #
1191
+ # @!attribute [rw] discovery_url
1192
+ # The well-known URL that points to this user pool's OIDC discovery
1193
+ # endpoint. This is a URL string in the following format. This URL
1194
+ # replaces the placeholders for both the Amazon Web Services Region
1195
+ # and the user pool identifier with those appropriate for this user
1196
+ # pool.
1197
+ #
1198
+ # `https://cognito-idp.<region>.amazonaws.com/<user-pool-id>/.well-known/openid-configuration`
1199
+ # @return [String]
1200
+ #
1201
+ # @!attribute [rw] open_id_issuer
1202
+ # A string that identifies the type of OIDC service represented by
1203
+ # this identity source.
1204
+ #
1205
+ # At this time, the only valid value is `cognito`.
1206
+ # @return [String]
1207
+ #
1208
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/IdentitySourceDetails AWS API Documentation
1209
+ #
1210
+ class IdentitySourceDetails < Struct.new(
1211
+ :client_ids,
1212
+ :user_pool_arn,
1213
+ :discovery_url,
1214
+ :open_id_issuer)
1215
+ SENSITIVE = []
1216
+ include Aws::Structure
1217
+ end
1218
+
1219
+ # A structure that defines characteristics of an identity source that
1220
+ # you can use to filter.
1221
+ #
1222
+ # This data type is used as a request parameter for the
1223
+ # [ListIdentityStores][1] operation.
1224
+ #
1225
+ #
1226
+ #
1227
+ # [1]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_ListIdentityStores.html
1228
+ #
1229
+ # @!attribute [rw] principal_entity_type
1230
+ # The Cedar entity type of the principals returned by the identity
1231
+ # provider (IdP) associated with this identity source.
1232
+ # @return [String]
1233
+ #
1234
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/IdentitySourceFilter AWS API Documentation
1235
+ #
1236
+ class IdentitySourceFilter < Struct.new(
1237
+ :principal_entity_type)
1238
+ SENSITIVE = []
1239
+ include Aws::Structure
1240
+ end
1241
+
1242
+ # A structure that defines an identity source.
1243
+ #
1244
+ # This data type is used as a request parameter for the
1245
+ # [ListIdentityStores][1] operation.
1246
+ #
1247
+ #
1248
+ #
1249
+ # [1]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_ListIdentityStores.html
1250
+ #
1251
+ # @!attribute [rw] created_date
1252
+ # The date and time the identity source was originally created.
1253
+ # @return [Time]
1254
+ #
1255
+ # @!attribute [rw] details
1256
+ # A structure that contains the details of the associated identity
1257
+ # provider (IdP).
1258
+ # @return [Types::IdentitySourceItemDetails]
1259
+ #
1260
+ # @!attribute [rw] identity_source_id
1261
+ # The unique identifier of the identity source.
1262
+ # @return [String]
1263
+ #
1264
+ # @!attribute [rw] last_updated_date
1265
+ # The date and time the identity source was most recently updated.
1266
+ # @return [Time]
1267
+ #
1268
+ # @!attribute [rw] policy_store_id
1269
+ # The identifier of the policy store that contains the identity
1270
+ # source.
1271
+ # @return [String]
1272
+ #
1273
+ # @!attribute [rw] principal_entity_type
1274
+ # The Cedar entity type of the principals returned from the IdP
1275
+ # associated with this identity source.
1276
+ # @return [String]
1277
+ #
1278
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/IdentitySourceItem AWS API Documentation
1279
+ #
1280
+ class IdentitySourceItem < Struct.new(
1281
+ :created_date,
1282
+ :details,
1283
+ :identity_source_id,
1284
+ :last_updated_date,
1285
+ :policy_store_id,
1286
+ :principal_entity_type)
1287
+ SENSITIVE = []
1288
+ include Aws::Structure
1289
+ end
1290
+
1291
+ # A structure that contains configuration of the identity source.
1292
+ #
1293
+ # This data type is used as a response parameter for the
1294
+ # [CreateIdentitySource][1] operation.
1295
+ #
1296
+ #
1297
+ #
1298
+ # [1]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CreateIdentitySource.html
1299
+ #
1300
+ # @!attribute [rw] client_ids
1301
+ # The application client IDs associated with the specified Amazon
1302
+ # Cognito user pool that are enabled for this identity source.
1303
+ # @return [Array<String>]
1304
+ #
1305
+ # @!attribute [rw] user_pool_arn
1306
+ # The Amazon Cognito user pool whose identities are accessible to this
1307
+ # Verified Permissions policy store.
1308
+ # @return [String]
1309
+ #
1310
+ # @!attribute [rw] discovery_url
1311
+ # The well-known URL that points to this user pool's OIDC discovery
1312
+ # endpoint. This is a URL string in the following format. This URL
1313
+ # replaces the placeholders for both the Amazon Web Services Region
1314
+ # and the user pool identifier with those appropriate for this user
1315
+ # pool.
1316
+ #
1317
+ # `https://cognito-idp.<region>.amazonaws.com/<user-pool-id>/.well-known/openid-configuration`
1318
+ # @return [String]
1319
+ #
1320
+ # @!attribute [rw] open_id_issuer
1321
+ # A string that identifies the type of OIDC service represented by
1322
+ # this identity source.
1323
+ #
1324
+ # At this time, the only valid value is `cognito`.
1325
+ # @return [String]
1326
+ #
1327
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/IdentitySourceItemDetails AWS API Documentation
1328
+ #
1329
+ class IdentitySourceItemDetails < Struct.new(
1330
+ :client_ids,
1331
+ :user_pool_arn,
1332
+ :discovery_url,
1333
+ :open_id_issuer)
1334
+ SENSITIVE = []
1335
+ include Aws::Structure
1336
+ end
1337
+
1338
+ # The request failed because of an internal error. Try your request
1339
+ # again later
1340
+ #
1341
+ # @!attribute [rw] message
1342
+ # @return [String]
1343
+ #
1344
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/InternalServerException AWS API Documentation
1345
+ #
1346
+ class InternalServerException < Struct.new(
1347
+ :message)
1348
+ SENSITIVE = []
1349
+ include Aws::Structure
1350
+ end
1351
+
1352
+ # @!attribute [rw] policy_store_id
1353
+ # Specifies the ID of the policy store. Policies in this policy store
1354
+ # will be used to make an authorization decision for the input.
1355
+ # @return [String]
1356
+ #
1357
+ # @!attribute [rw] principal
1358
+ # Specifies the principal for which the authorization decision is to
1359
+ # be made.
1360
+ # @return [Types::EntityIdentifier]
1361
+ #
1362
+ # @!attribute [rw] action
1363
+ # Specifies the requested action to be authorized. For example, is the
1364
+ # principal authorized to perform this action on the resource?
1365
+ # @return [Types::ActionIdentifier]
1366
+ #
1367
+ # @!attribute [rw] resource
1368
+ # Specifies the resource for which the authorization decision is to be
1369
+ # made.
1370
+ # @return [Types::EntityIdentifier]
1371
+ #
1372
+ # @!attribute [rw] context
1373
+ # Specifies additional context that can be used to make more granular
1374
+ # authorization decisions.
1375
+ # @return [Types::ContextDefinition]
1376
+ #
1377
+ # @!attribute [rw] entities
1378
+ # Specifies the list of entities and their associated attributes that
1379
+ # Verified Permissions can examine when evaluating the policies.
1380
+ # @return [Types::EntitiesDefinition]
1381
+ #
1382
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/IsAuthorizedInput AWS API Documentation
1383
+ #
1384
+ class IsAuthorizedInput < Struct.new(
1385
+ :policy_store_id,
1386
+ :principal,
1387
+ :action,
1388
+ :resource,
1389
+ :context,
1390
+ :entities)
1391
+ SENSITIVE = []
1392
+ include Aws::Structure
1393
+ end
1394
+
1395
+ # @!attribute [rw] decision
1396
+ # An authorization decision that indicates if the authorization
1397
+ # request should be allowed or denied.
1398
+ # @return [String]
1399
+ #
1400
+ # @!attribute [rw] determining_policies
1401
+ # The list of determining policies used to make the authorization
1402
+ # decision. For example, if there are two matching policies, where one
1403
+ # is a forbid and the other is a permit, then the forbid policy will
1404
+ # be the determining policy. In the case of multiple matching permit
1405
+ # policies then there would be multiple determining policies. In the
1406
+ # case that no policies match, and hence the response is DENY, there
1407
+ # would be no determining policies.
1408
+ # @return [Array<Types::DeterminingPolicyItem>]
1409
+ #
1410
+ # @!attribute [rw] errors
1411
+ # Errors that occurred while making an authorization decision, for
1412
+ # example, a policy references an Entity or entity Attribute that does
1413
+ # not exist in the slice.
1414
+ # @return [Array<Types::EvaluationErrorItem>]
1415
+ #
1416
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/IsAuthorizedOutput AWS API Documentation
1417
+ #
1418
+ class IsAuthorizedOutput < Struct.new(
1419
+ :decision,
1420
+ :determining_policies,
1421
+ :errors)
1422
+ SENSITIVE = []
1423
+ include Aws::Structure
1424
+ end
1425
+
1426
+ # @!attribute [rw] policy_store_id
1427
+ # Specifies the ID of the policy store. Policies in this policy store
1428
+ # will be used to make an authorization decision for the input.
1429
+ # @return [String]
1430
+ #
1431
+ # @!attribute [rw] identity_token
1432
+ # Specifies an identity token for the principal to be authorized. This
1433
+ # token is provided to you by the identity provider (IdP) associated
1434
+ # with the specified identity source. You must specify either an
1435
+ # `AccessToken` or an `IdentityToken`, but not both.
1436
+ # @return [String]
1437
+ #
1438
+ # @!attribute [rw] access_token
1439
+ # Specifies an access token for the principal to be authorized. This
1440
+ # token is provided to you by the identity provider (IdP) associated
1441
+ # with the specified identity source. You must specify either an
1442
+ # `AccessToken` or an `IdentityToken`, but not both.
1443
+ # @return [String]
1444
+ #
1445
+ # @!attribute [rw] action
1446
+ # Specifies the requested action to be authorized. Is the specified
1447
+ # principal authorized to perform this action on the specified
1448
+ # resource.
1449
+ # @return [Types::ActionIdentifier]
1450
+ #
1451
+ # @!attribute [rw] resource
1452
+ # Specifies the resource for which the authorization decision is made.
1453
+ # For example, is the principal allowed to perform the action on the
1454
+ # resource?
1455
+ # @return [Types::EntityIdentifier]
1456
+ #
1457
+ # @!attribute [rw] context
1458
+ # Specifies additional context that can be used to make more granular
1459
+ # authorization decisions.
1460
+ # @return [Types::ContextDefinition]
1461
+ #
1462
+ # @!attribute [rw] entities
1463
+ # Specifies the list of entities and their associated attributes that
1464
+ # Verified Permissions can examine when evaluating the policies.
1465
+ # @return [Types::EntitiesDefinition]
1466
+ #
1467
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/IsAuthorizedWithTokenInput AWS API Documentation
1468
+ #
1469
+ class IsAuthorizedWithTokenInput < Struct.new(
1470
+ :policy_store_id,
1471
+ :identity_token,
1472
+ :access_token,
1473
+ :action,
1474
+ :resource,
1475
+ :context,
1476
+ :entities)
1477
+ SENSITIVE = []
1478
+ include Aws::Structure
1479
+ end
1480
+
1481
+ # @!attribute [rw] decision
1482
+ # An authorization decision that indicates if the authorization
1483
+ # request should be allowed or denied.
1484
+ # @return [String]
1485
+ #
1486
+ # @!attribute [rw] determining_policies
1487
+ # The list of determining policies used to make the authorization
1488
+ # decision. For example, if there are multiple matching policies,
1489
+ # where at least one is a forbid policy, then because forbid always
1490
+ # overrides permit the forbid policies are the determining policies.
1491
+ # If all matching policies are permit policies, then those policies
1492
+ # are the determining policies. When no policies match and the
1493
+ # response is the default DENY, there are no determining policies.
1494
+ # @return [Array<Types::DeterminingPolicyItem>]
1495
+ #
1496
+ # @!attribute [rw] errors
1497
+ # Errors that occurred while making an authorization decision. For
1498
+ # example, a policy references an entity or entity attribute that does
1499
+ # not exist in the slice.
1500
+ # @return [Array<Types::EvaluationErrorItem>]
1501
+ #
1502
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/IsAuthorizedWithTokenOutput AWS API Documentation
1503
+ #
1504
+ class IsAuthorizedWithTokenOutput < Struct.new(
1505
+ :decision,
1506
+ :determining_policies,
1507
+ :errors)
1508
+ SENSITIVE = []
1509
+ include Aws::Structure
1510
+ end
1511
+
1512
+ # @!attribute [rw] policy_store_id
1513
+ # Specifies the ID of the policy store that contains the identity
1514
+ # sources that you want to list.
1515
+ # @return [String]
1516
+ #
1517
+ # @!attribute [rw] next_token
1518
+ # Specifies that you want to receive the next page of results. Valid
1519
+ # only if you received a `NextToken` response in the previous request.
1520
+ # If you did, it indicates that more output is available. Set this
1521
+ # parameter to the value provided by the previous call's `NextToken`
1522
+ # response to request the next page of results.
1523
+ # @return [String]
1524
+ #
1525
+ # @!attribute [rw] max_results
1526
+ # Specifies the total number of results that you want included on each
1527
+ # page of the response. If you do not include this parameter, it
1528
+ # defaults to a value that is specific to the operation. If additional
1529
+ # items exist beyond the number you specify, the `NextToken` response
1530
+ # element is returned with a value (not null). Include the specified
1531
+ # value as the `NextToken` request parameter in the next call to the
1532
+ # operation to get the next part of the results. Note that the service
1533
+ # might return fewer results than the maximum even when there are more
1534
+ # results available. You should check `NextToken` after every
1535
+ # operation to ensure that you receive all of the results.
1536
+ # @return [Integer]
1537
+ #
1538
+ # @!attribute [rw] filters
1539
+ # Specifies characteristics of an identity source that you can use to
1540
+ # limit the output to matching identity sources.
1541
+ # @return [Array<Types::IdentitySourceFilter>]
1542
+ #
1543
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/ListIdentitySourcesInput AWS API Documentation
1544
+ #
1545
+ class ListIdentitySourcesInput < Struct.new(
1546
+ :policy_store_id,
1547
+ :next_token,
1548
+ :max_results,
1549
+ :filters)
1550
+ SENSITIVE = []
1551
+ include Aws::Structure
1552
+ end
1553
+
1554
+ # @!attribute [rw] next_token
1555
+ # If present, this value indicates that more output is available than
1556
+ # is included in the current response. Use this value in the
1557
+ # `NextToken` request parameter in a subsequent call to the operation
1558
+ # to get the next part of the output. You should repeat this until the
1559
+ # `NextToken` response element comes back as `null`. This indicates
1560
+ # that this is the last page of results.
1561
+ # @return [String]
1562
+ #
1563
+ # @!attribute [rw] identity_sources
1564
+ # The list of identity sources stored in the specified policy store.
1565
+ # @return [Array<Types::IdentitySourceItem>]
1566
+ #
1567
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/ListIdentitySourcesOutput AWS API Documentation
1568
+ #
1569
+ class ListIdentitySourcesOutput < Struct.new(
1570
+ :next_token,
1571
+ :identity_sources)
1572
+ SENSITIVE = []
1573
+ include Aws::Structure
1574
+ end
1575
+
1576
+ # @!attribute [rw] policy_store_id
1577
+ # Specifies the ID of the policy store you want to list policies from.
1578
+ # @return [String]
1579
+ #
1580
+ # @!attribute [rw] next_token
1581
+ # Specifies that you want to receive the next page of results. Valid
1582
+ # only if you received a `NextToken` response in the previous request.
1583
+ # If you did, it indicates that more output is available. Set this
1584
+ # parameter to the value provided by the previous call's `NextToken`
1585
+ # response to request the next page of results.
1586
+ # @return [String]
1587
+ #
1588
+ # @!attribute [rw] max_results
1589
+ # Specifies the total number of results that you want included on each
1590
+ # page of the response. If you do not include this parameter, it
1591
+ # defaults to a value that is specific to the operation. If additional
1592
+ # items exist beyond the number you specify, the `NextToken` response
1593
+ # element is returned with a value (not null). Include the specified
1594
+ # value as the `NextToken` request parameter in the next call to the
1595
+ # operation to get the next part of the results. Note that the service
1596
+ # might return fewer results than the maximum even when there are more
1597
+ # results available. You should check `NextToken` after every
1598
+ # operation to ensure that you receive all of the results.
1599
+ # @return [Integer]
1600
+ #
1601
+ # @!attribute [rw] filter
1602
+ # Specifies a filter that limits the response to only policies that
1603
+ # match the specified criteria. For example, you list only the
1604
+ # policies that reference a specified principal.
1605
+ # @return [Types::PolicyFilter]
1606
+ #
1607
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/ListPoliciesInput AWS API Documentation
1608
+ #
1609
+ class ListPoliciesInput < Struct.new(
1610
+ :policy_store_id,
1611
+ :next_token,
1612
+ :max_results,
1613
+ :filter)
1614
+ SENSITIVE = []
1615
+ include Aws::Structure
1616
+ end
1617
+
1618
+ # @!attribute [rw] next_token
1619
+ # If present, this value indicates that more output is available than
1620
+ # is included in the current response. Use this value in the
1621
+ # `NextToken` request parameter in a subsequent call to the operation
1622
+ # to get the next part of the output. You should repeat this until the
1623
+ # `NextToken` response element comes back as `null`. This indicates
1624
+ # that this is the last page of results.
1625
+ # @return [String]
1626
+ #
1627
+ # @!attribute [rw] policies
1628
+ # Lists all policies that are available in the specified policy store.
1629
+ # @return [Array<Types::PolicyItem>]
1630
+ #
1631
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/ListPoliciesOutput AWS API Documentation
1632
+ #
1633
+ class ListPoliciesOutput < Struct.new(
1634
+ :next_token,
1635
+ :policies)
1636
+ SENSITIVE = []
1637
+ include Aws::Structure
1638
+ end
1639
+
1640
+ # @!attribute [rw] next_token
1641
+ # Specifies that you want to receive the next page of results. Valid
1642
+ # only if you received a `NextToken` response in the previous request.
1643
+ # If you did, it indicates that more output is available. Set this
1644
+ # parameter to the value provided by the previous call's `NextToken`
1645
+ # response to request the next page of results.
1646
+ # @return [String]
1647
+ #
1648
+ # @!attribute [rw] max_results
1649
+ # Specifies the total number of results that you want included on each
1650
+ # page of the response. If you do not include this parameter, it
1651
+ # defaults to a value that is specific to the operation. If additional
1652
+ # items exist beyond the number you specify, the `NextToken` response
1653
+ # element is returned with a value (not null). Include the specified
1654
+ # value as the `NextToken` request parameter in the next call to the
1655
+ # operation to get the next part of the results. Note that the service
1656
+ # might return fewer results than the maximum even when there are more
1657
+ # results available. You should check `NextToken` after every
1658
+ # operation to ensure that you receive all of the results.
1659
+ # @return [Integer]
1660
+ #
1661
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/ListPolicyStoresInput AWS API Documentation
1662
+ #
1663
+ class ListPolicyStoresInput < Struct.new(
1664
+ :next_token,
1665
+ :max_results)
1666
+ SENSITIVE = []
1667
+ include Aws::Structure
1668
+ end
1669
+
1670
+ # @!attribute [rw] next_token
1671
+ # If present, this value indicates that more output is available than
1672
+ # is included in the current response. Use this value in the
1673
+ # `NextToken` request parameter in a subsequent call to the operation
1674
+ # to get the next part of the output. You should repeat this until the
1675
+ # `NextToken` response element comes back as `null`. This indicates
1676
+ # that this is the last page of results.
1677
+ # @return [String]
1678
+ #
1679
+ # @!attribute [rw] policy_stores
1680
+ # The list of policy stores in the account.
1681
+ # @return [Array<Types::PolicyStoreItem>]
1682
+ #
1683
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/ListPolicyStoresOutput AWS API Documentation
1684
+ #
1685
+ class ListPolicyStoresOutput < Struct.new(
1686
+ :next_token,
1687
+ :policy_stores)
1688
+ SENSITIVE = []
1689
+ include Aws::Structure
1690
+ end
1691
+
1692
+ # @!attribute [rw] policy_store_id
1693
+ # Specifies the ID of the policy store that contains the policy
1694
+ # templates you want to list.
1695
+ # @return [String]
1696
+ #
1697
+ # @!attribute [rw] next_token
1698
+ # Specifies that you want to receive the next page of results. Valid
1699
+ # only if you received a `NextToken` response in the previous request.
1700
+ # If you did, it indicates that more output is available. Set this
1701
+ # parameter to the value provided by the previous call's `NextToken`
1702
+ # response to request the next page of results.
1703
+ # @return [String]
1704
+ #
1705
+ # @!attribute [rw] max_results
1706
+ # Specifies the total number of results that you want included on each
1707
+ # page of the response. If you do not include this parameter, it
1708
+ # defaults to a value that is specific to the operation. If additional
1709
+ # items exist beyond the number you specify, the `NextToken` response
1710
+ # element is returned with a value (not null). Include the specified
1711
+ # value as the `NextToken` request parameter in the next call to the
1712
+ # operation to get the next part of the results. Note that the service
1713
+ # might return fewer results than the maximum even when there are more
1714
+ # results available. You should check `NextToken` after every
1715
+ # operation to ensure that you receive all of the results.
1716
+ # @return [Integer]
1717
+ #
1718
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/ListPolicyTemplatesInput AWS API Documentation
1719
+ #
1720
+ class ListPolicyTemplatesInput < Struct.new(
1721
+ :policy_store_id,
1722
+ :next_token,
1723
+ :max_results)
1724
+ SENSITIVE = []
1725
+ include Aws::Structure
1726
+ end
1727
+
1728
+ # @!attribute [rw] next_token
1729
+ # If present, this value indicates that more output is available than
1730
+ # is included in the current response. Use this value in the
1731
+ # `NextToken` request parameter in a subsequent call to the operation
1732
+ # to get the next part of the output. You should repeat this until the
1733
+ # `NextToken` response element comes back as `null`. This indicates
1734
+ # that this is the last page of results.
1735
+ # @return [String]
1736
+ #
1737
+ # @!attribute [rw] policy_templates
1738
+ # The list of the policy templates in the specified policy store.
1739
+ # @return [Array<Types::PolicyTemplateItem>]
1740
+ #
1741
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/ListPolicyTemplatesOutput AWS API Documentation
1742
+ #
1743
+ class ListPolicyTemplatesOutput < Struct.new(
1744
+ :next_token,
1745
+ :policy_templates)
1746
+ SENSITIVE = []
1747
+ include Aws::Structure
1748
+ end
1749
+
1750
+ # A structure that contains the details for a Cedar policy definition.
1751
+ # It includes the policy type, a description, and a policy body. This is
1752
+ # a top level data type used to create a policy.
1753
+ #
1754
+ # This data type is used as a request parameter for the
1755
+ # [CreatePolicy][1] operation. This structure must always have either an
1756
+ # `static` or a `templateLinked` element.
1757
+ #
1758
+ #
1759
+ #
1760
+ # [1]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CreatePolicy.html
1761
+ #
1762
+ # @note PolicyDefinition is a union - when making an API calls you must set exactly one of the members.
1763
+ #
1764
+ # @!attribute [rw] static
1765
+ # A structure that describes a static policy. An static policy
1766
+ # doesn't use a template or allow placeholders for entities.
1767
+ # @return [Types::StaticPolicyDefinition]
1768
+ #
1769
+ # @!attribute [rw] template_linked
1770
+ # A structure that describes a policy that was instantiated from a
1771
+ # template. The template can specify placeholders for `principal` and
1772
+ # `resource`. When you use [CreatePolicy][1] to create a policy from a
1773
+ # template, you specify the exact principal and resource to use for
1774
+ # the instantiated policy.
1775
+ #
1776
+ #
1777
+ #
1778
+ # [1]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CreatePolicy.html
1779
+ # @return [Types::TemplateLinkedPolicyDefinition]
1780
+ #
1781
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/PolicyDefinition AWS API Documentation
1782
+ #
1783
+ class PolicyDefinition < Struct.new(
1784
+ :static,
1785
+ :template_linked,
1786
+ :unknown)
1787
+ SENSITIVE = []
1788
+ include Aws::Structure
1789
+ include Aws::Structure::Union
1790
+
1791
+ class Static < PolicyDefinition; end
1792
+ class TemplateLinked < PolicyDefinition; end
1793
+ class Unknown < PolicyDefinition; end
1794
+ end
1795
+
1796
+ # A structure that describes a policy definition. It must always have
1797
+ # either an `static` or a `templateLinked` element.
1798
+ #
1799
+ # This data type is used as a response parameter for the [GetPolicy][1]
1800
+ # operation.
1801
+ #
1802
+ #
1803
+ #
1804
+ # [1]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_GetPolicy.html
1805
+ #
1806
+ # @note PolicyDefinitionDetail is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of PolicyDefinitionDetail corresponding to the set member.
1807
+ #
1808
+ # @!attribute [rw] static
1809
+ # Information about a static policy that wasn't created with a policy
1810
+ # template.
1811
+ # @return [Types::StaticPolicyDefinitionDetail]
1812
+ #
1813
+ # @!attribute [rw] template_linked
1814
+ # Information about a template-linked policy that was created by
1815
+ # instantiating a policy template.
1816
+ # @return [Types::TemplateLinkedPolicyDefinitionDetail]
1817
+ #
1818
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/PolicyDefinitionDetail AWS API Documentation
1819
+ #
1820
+ class PolicyDefinitionDetail < Struct.new(
1821
+ :static,
1822
+ :template_linked,
1823
+ :unknown)
1824
+ SENSITIVE = []
1825
+ include Aws::Structure
1826
+ include Aws::Structure::Union
1827
+
1828
+ class Static < PolicyDefinitionDetail; end
1829
+ class TemplateLinked < PolicyDefinitionDetail; end
1830
+ class Unknown < PolicyDefinitionDetail; end
1831
+ end
1832
+
1833
+ # A structure that describes a [PolicyDefinintion][1]. It will always
1834
+ # have either an `StaticPolicy` or a `TemplateLinkedPolicy` element.
1835
+ #
1836
+ # This data type is used as a response parameter for the
1837
+ # [CreatePolicy][2] and [ListPolicies][3] operations.
1838
+ #
1839
+ #
1840
+ #
1841
+ # [1]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_PolicyDefinintion.html
1842
+ # [2]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CreatePolicy.html
1843
+ # [3]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_ListPolicies.html
1844
+ #
1845
+ # @note PolicyDefinitionItem is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of PolicyDefinitionItem corresponding to the set member.
1846
+ #
1847
+ # @!attribute [rw] static
1848
+ # Information about a static policy that wasn't created with a policy
1849
+ # template.
1850
+ # @return [Types::StaticPolicyDefinitionItem]
1851
+ #
1852
+ # @!attribute [rw] template_linked
1853
+ # Information about a template-linked policy that was created by
1854
+ # instantiating a policy template.
1855
+ # @return [Types::TemplateLinkedPolicyDefinitionItem]
1856
+ #
1857
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/PolicyDefinitionItem AWS API Documentation
1858
+ #
1859
+ class PolicyDefinitionItem < Struct.new(
1860
+ :static,
1861
+ :template_linked,
1862
+ :unknown)
1863
+ SENSITIVE = []
1864
+ include Aws::Structure
1865
+ include Aws::Structure::Union
1866
+
1867
+ class Static < PolicyDefinitionItem; end
1868
+ class TemplateLinked < PolicyDefinitionItem; end
1869
+ class Unknown < PolicyDefinitionItem; end
1870
+ end
1871
+
1872
+ # Contains information about a filter to refine policies returned in a
1873
+ # query.
1874
+ #
1875
+ # This data type is used as a response parameter for the
1876
+ # [ListPolicies][1] operation.
1877
+ #
1878
+ #
1879
+ #
1880
+ # [1]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_ListPolicies.html
1881
+ #
1882
+ # @!attribute [rw] principal
1883
+ # Filters the output to only policies that reference the specified
1884
+ # principal.
1885
+ # @return [Types::EntityReference]
1886
+ #
1887
+ # @!attribute [rw] resource
1888
+ # Filters the output to only policies that reference the specified
1889
+ # resource.
1890
+ # @return [Types::EntityReference]
1891
+ #
1892
+ # @!attribute [rw] policy_type
1893
+ # Filters the output to only policies of the specified type.
1894
+ # @return [String]
1895
+ #
1896
+ # @!attribute [rw] policy_template_id
1897
+ # Filters the output to only template-linked policies that were
1898
+ # instantiated from the specified policy template.
1899
+ # @return [String]
1900
+ #
1901
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/PolicyFilter AWS API Documentation
1902
+ #
1903
+ class PolicyFilter < Struct.new(
1904
+ :principal,
1905
+ :resource,
1906
+ :policy_type,
1907
+ :policy_template_id)
1908
+ SENSITIVE = []
1909
+ include Aws::Structure
1910
+ end
1911
+
1912
+ # Contains information about a policy.
1913
+ #
1914
+ # This data type is used as a response parameter for the
1915
+ # [ListPolicies][1] operation.
1916
+ #
1917
+ #
1918
+ #
1919
+ # [1]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_ListPolicies.html
1920
+ #
1921
+ # @!attribute [rw] policy_store_id
1922
+ # The identifier of the PolicyStore where the policy you want
1923
+ # information about is stored.
1924
+ # @return [String]
1925
+ #
1926
+ # @!attribute [rw] policy_id
1927
+ # The identifier of the policy you want information about.
1928
+ # @return [String]
1929
+ #
1930
+ # @!attribute [rw] policy_type
1931
+ # The type of the policy. This is one of the following values:
1932
+ #
1933
+ # * `static`
1934
+ #
1935
+ # * `templateLinked`
1936
+ # @return [String]
1937
+ #
1938
+ # @!attribute [rw] principal
1939
+ # The principal associated with the policy.
1940
+ # @return [Types::EntityIdentifier]
1941
+ #
1942
+ # @!attribute [rw] resource
1943
+ # The resource associated with the policy.
1944
+ # @return [Types::EntityIdentifier]
1945
+ #
1946
+ # @!attribute [rw] definition
1947
+ # The policy definition of an item in the list of policies returned.
1948
+ # @return [Types::PolicyDefinitionItem]
1949
+ #
1950
+ # @!attribute [rw] created_date
1951
+ # The date and time the policy was created.
1952
+ # @return [Time]
1953
+ #
1954
+ # @!attribute [rw] last_updated_date
1955
+ # The date and time the policy was most recently updated.
1956
+ # @return [Time]
1957
+ #
1958
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/PolicyItem AWS API Documentation
1959
+ #
1960
+ class PolicyItem < Struct.new(
1961
+ :policy_store_id,
1962
+ :policy_id,
1963
+ :policy_type,
1964
+ :principal,
1965
+ :resource,
1966
+ :definition,
1967
+ :created_date,
1968
+ :last_updated_date)
1969
+ SENSITIVE = []
1970
+ include Aws::Structure
1971
+ end
1972
+
1973
+ # Contains information about a policy store.
1974
+ #
1975
+ # This data type is used as a response parameter for the
1976
+ # [ListPolicyStores][1] operation.
1977
+ #
1978
+ #
1979
+ #
1980
+ # [1]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_ListPolicyStores.html
1981
+ #
1982
+ # @!attribute [rw] policy_store_id
1983
+ # The unique identifier of the policy store.
1984
+ # @return [String]
1985
+ #
1986
+ # @!attribute [rw] arn
1987
+ # The Amazon Resource Name (ARN) of the policy store.
1988
+ # @return [String]
1989
+ #
1990
+ # @!attribute [rw] created_date
1991
+ # The date and time the policy was created.
1992
+ # @return [Time]
1993
+ #
1994
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/PolicyStoreItem AWS API Documentation
1995
+ #
1996
+ class PolicyStoreItem < Struct.new(
1997
+ :policy_store_id,
1998
+ :arn,
1999
+ :created_date)
2000
+ SENSITIVE = []
2001
+ include Aws::Structure
2002
+ end
2003
+
2004
+ # Contains details about a policy template
2005
+ #
2006
+ # This data type is used as a response parameter for the
2007
+ # [ListPolicyTemplates][1] operation.
2008
+ #
2009
+ #
2010
+ #
2011
+ # [1]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_ListPolicyTemplates.html
2012
+ #
2013
+ # @!attribute [rw] policy_store_id
2014
+ # The unique identifier of the policy store that contains the
2015
+ # template.
2016
+ # @return [String]
2017
+ #
2018
+ # @!attribute [rw] policy_template_id
2019
+ # The unique identifier of the policy template.
2020
+ # @return [String]
2021
+ #
2022
+ # @!attribute [rw] description
2023
+ # The description attached to the policy template.
2024
+ # @return [String]
2025
+ #
2026
+ # @!attribute [rw] created_date
2027
+ # The date and time that the policy template was created.
2028
+ # @return [Time]
2029
+ #
2030
+ # @!attribute [rw] last_updated_date
2031
+ # The date and time that the policy template was most recently
2032
+ # updated.
2033
+ # @return [Time]
2034
+ #
2035
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/PolicyTemplateItem AWS API Documentation
2036
+ #
2037
+ class PolicyTemplateItem < Struct.new(
2038
+ :policy_store_id,
2039
+ :policy_template_id,
2040
+ :description,
2041
+ :created_date,
2042
+ :last_updated_date)
2043
+ SENSITIVE = []
2044
+ include Aws::Structure
2045
+ end
2046
+
2047
+ # @!attribute [rw] policy_store_id
2048
+ # Specifies the ID of the policy store in which to place the schema.
2049
+ # @return [String]
2050
+ #
2051
+ # @!attribute [rw] definition
2052
+ # Specifies the definition of the schema to be stored. The schema
2053
+ # definition must be written in Cedar schema JSON.
2054
+ # @return [Types::SchemaDefinition]
2055
+ #
2056
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/PutSchemaInput AWS API Documentation
2057
+ #
2058
+ class PutSchemaInput < Struct.new(
2059
+ :policy_store_id,
2060
+ :definition)
2061
+ SENSITIVE = []
2062
+ include Aws::Structure
2063
+ end
2064
+
2065
+ # @!attribute [rw] policy_store_id
2066
+ # The unique ID of the policy store that contains the schema.
2067
+ # @return [String]
2068
+ #
2069
+ # @!attribute [rw] namespaces
2070
+ # Identifies the namespaces of the entities referenced by this schema.
2071
+ # @return [Array<String>]
2072
+ #
2073
+ # @!attribute [rw] created_date
2074
+ # The date and time that the schema was originally created.
2075
+ # @return [Time]
2076
+ #
2077
+ # @!attribute [rw] last_updated_date
2078
+ # The date and time that the schema was last updated.
2079
+ # @return [Time]
2080
+ #
2081
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/PutSchemaOutput AWS API Documentation
2082
+ #
2083
+ class PutSchemaOutput < Struct.new(
2084
+ :policy_store_id,
2085
+ :namespaces,
2086
+ :created_date,
2087
+ :last_updated_date)
2088
+ SENSITIVE = []
2089
+ include Aws::Structure
2090
+ end
2091
+
2092
+ # Contains information about a resource conflict.
2093
+ #
2094
+ # @!attribute [rw] resource_id
2095
+ # The unique identifier of the resource involved in a conflict.
2096
+ # @return [String]
2097
+ #
2098
+ # @!attribute [rw] resource_type
2099
+ # The type of the resource involved in a conflict.
2100
+ # @return [String]
2101
+ #
2102
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/ResourceConflict AWS API Documentation
2103
+ #
2104
+ class ResourceConflict < Struct.new(
2105
+ :resource_id,
2106
+ :resource_type)
2107
+ SENSITIVE = []
2108
+ include Aws::Structure
2109
+ end
2110
+
2111
+ # The request failed because it references a resource that doesn't
2112
+ # exist.
2113
+ #
2114
+ # @!attribute [rw] message
2115
+ # @return [String]
2116
+ #
2117
+ # @!attribute [rw] resource_id
2118
+ # The unique ID of the resource referenced in the failed request.
2119
+ # @return [String]
2120
+ #
2121
+ # @!attribute [rw] resource_type
2122
+ # The resource type of the resource referenced in the failed request.
2123
+ # @return [String]
2124
+ #
2125
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/ResourceNotFoundException AWS API Documentation
2126
+ #
2127
+ class ResourceNotFoundException < Struct.new(
2128
+ :message,
2129
+ :resource_id,
2130
+ :resource_type)
2131
+ SENSITIVE = []
2132
+ include Aws::Structure
2133
+ end
2134
+
2135
+ # Contains a list of principal types, resource types, and actions that
2136
+ # can be specified in policies stored in the same policy store. If the
2137
+ # validation mode for the policy store is set to `STRICT`, then policies
2138
+ # that can't be validated by this schema are rejected by Verified
2139
+ # Permissions and can't be stored in the policy store.
2140
+ #
2141
+ # @note SchemaDefinition is a union - when making an API calls you must set exactly one of the members.
2142
+ #
2143
+ # @!attribute [rw] cedar_json
2144
+ # A JSON string representation of the schema supported by applications
2145
+ # that use this policy store. For more information, see [Policy store
2146
+ # schema][1] in the *Amazon Verified Permissions User Guide*.
2147
+ #
2148
+ #
2149
+ #
2150
+ # [1]: https://docs.aws.amazon.com/verifiedpermissions/latest/userguide/schema.html
2151
+ # @return [String]
2152
+ #
2153
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/SchemaDefinition AWS API Documentation
2154
+ #
2155
+ class SchemaDefinition < Struct.new(
2156
+ :cedar_json,
2157
+ :unknown)
2158
+ SENSITIVE = []
2159
+ include Aws::Structure
2160
+ include Aws::Structure::Union
2161
+
2162
+ class CedarJson < SchemaDefinition; end
2163
+ class Unknown < SchemaDefinition; end
2164
+ end
2165
+
2166
+ # The request failed because it would cause a service quota to be
2167
+ # exceeded.
2168
+ #
2169
+ # @!attribute [rw] message
2170
+ # @return [String]
2171
+ #
2172
+ # @!attribute [rw] resource_id
2173
+ # The unique ID of the resource referenced in the failed request.
2174
+ # @return [String]
2175
+ #
2176
+ # @!attribute [rw] resource_type
2177
+ # The resource type of the resource referenced in the failed request.
2178
+ # @return [String]
2179
+ #
2180
+ # @!attribute [rw] service_code
2181
+ # The code for the Amazon Web Service that owns the quota.
2182
+ # @return [String]
2183
+ #
2184
+ # @!attribute [rw] quota_code
2185
+ # The quota code recognized by the Amazon Web Services Service Quotas
2186
+ # service.
2187
+ # @return [String]
2188
+ #
2189
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/ServiceQuotaExceededException AWS API Documentation
2190
+ #
2191
+ class ServiceQuotaExceededException < Struct.new(
2192
+ :message,
2193
+ :resource_id,
2194
+ :resource_type,
2195
+ :service_code,
2196
+ :quota_code)
2197
+ SENSITIVE = []
2198
+ include Aws::Structure
2199
+ end
2200
+
2201
+ # Contains information about a static policy.
2202
+ #
2203
+ # This data type is used as a field that is part of the
2204
+ # [PolicyDefinitionDetail][1] type.
2205
+ #
2206
+ #
2207
+ #
2208
+ # [1]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_PolicyDefinitionDetail.html
2209
+ #
2210
+ # @!attribute [rw] description
2211
+ # The description of the static policy.
2212
+ # @return [String]
2213
+ #
2214
+ # @!attribute [rw] statement
2215
+ # The policy content of the static policy, written in the Cedar policy
2216
+ # language.
2217
+ # @return [String]
2218
+ #
2219
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/StaticPolicyDefinition AWS API Documentation
2220
+ #
2221
+ class StaticPolicyDefinition < Struct.new(
2222
+ :description,
2223
+ :statement)
2224
+ SENSITIVE = []
2225
+ include Aws::Structure
2226
+ end
2227
+
2228
+ # A structure that contains details about a static policy. It includes
2229
+ # the description and policy body.
2230
+ #
2231
+ # This data type is used within a [PolicyDefinition][1] structure as
2232
+ # part of a request parameter for the [CreatePolicy][2] operation.
2233
+ #
2234
+ #
2235
+ #
2236
+ # [1]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_PolicyDefinition.html
2237
+ # [2]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CreatePolicy.html
2238
+ #
2239
+ # @!attribute [rw] description
2240
+ # A description of the static policy.
2241
+ # @return [String]
2242
+ #
2243
+ # @!attribute [rw] statement
2244
+ # The content of the static policy written in the Cedar policy
2245
+ # language.
2246
+ # @return [String]
2247
+ #
2248
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/StaticPolicyDefinitionDetail AWS API Documentation
2249
+ #
2250
+ class StaticPolicyDefinitionDetail < Struct.new(
2251
+ :description,
2252
+ :statement)
2253
+ SENSITIVE = []
2254
+ include Aws::Structure
2255
+ end
2256
+
2257
+ # A structure that contains details about a static policy. It includes
2258
+ # the description and policy statement.
2259
+ #
2260
+ # This data type is used within a [PolicyDefinition][1] structure as
2261
+ # part of a request parameter for the [CreatePolicy][2] operation.
2262
+ #
2263
+ #
2264
+ #
2265
+ # [1]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_PolicyDefinition.html
2266
+ # [2]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CreatePolicy.html
2267
+ #
2268
+ # @!attribute [rw] description
2269
+ # A description of the static policy.
2270
+ # @return [String]
2271
+ #
2272
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/StaticPolicyDefinitionItem AWS API Documentation
2273
+ #
2274
+ class StaticPolicyDefinitionItem < Struct.new(
2275
+ :description)
2276
+ SENSITIVE = []
2277
+ include Aws::Structure
2278
+ end
2279
+
2280
+ # Contains information about a policy created by instantiating a policy
2281
+ # template.
2282
+ #
2283
+ # @!attribute [rw] policy_template_id
2284
+ # The unique identifier of the policy template used to create this
2285
+ # policy.
2286
+ # @return [String]
2287
+ #
2288
+ # @!attribute [rw] principal
2289
+ # The principal associated with this template-linked policy. Verified
2290
+ # Permissions substitutes this principal for the `?principal`
2291
+ # placeholder in the policy template when it evaluates an
2292
+ # authorization request.
2293
+ # @return [Types::EntityIdentifier]
2294
+ #
2295
+ # @!attribute [rw] resource
2296
+ # The resource associated with this template-linked policy. Verified
2297
+ # Permissions substitutes this resource for the `?resource`
2298
+ # placeholder in the policy template when it evaluates an
2299
+ # authorization request.
2300
+ # @return [Types::EntityIdentifier]
2301
+ #
2302
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/TemplateLinkedPolicyDefinition AWS API Documentation
2303
+ #
2304
+ class TemplateLinkedPolicyDefinition < Struct.new(
2305
+ :policy_template_id,
2306
+ :principal,
2307
+ :resource)
2308
+ SENSITIVE = []
2309
+ include Aws::Structure
2310
+ end
2311
+
2312
+ # Contains information about a policy that was
2313
+ #
2314
+ #
2315
+ #
2316
+ # created by instantiating a policy template.
2317
+ #
2318
+ # This
2319
+ #
2320
+ # @!attribute [rw] policy_template_id
2321
+ # The unique identifier of the policy template used to create this
2322
+ # policy.
2323
+ # @return [String]
2324
+ #
2325
+ # @!attribute [rw] principal
2326
+ # The principal associated with this template-linked policy. Verified
2327
+ # Permissions substitutes this principal for the `?principal`
2328
+ # placeholder in the policy template when it evaluates an
2329
+ # authorization request.
2330
+ # @return [Types::EntityIdentifier]
2331
+ #
2332
+ # @!attribute [rw] resource
2333
+ # The resource associated with this template-linked policy. Verified
2334
+ # Permissions substitutes this resource for the `?resource`
2335
+ # placeholder in the policy template when it evaluates an
2336
+ # authorization request.
2337
+ # @return [Types::EntityIdentifier]
2338
+ #
2339
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/TemplateLinkedPolicyDefinitionDetail AWS API Documentation
2340
+ #
2341
+ class TemplateLinkedPolicyDefinitionDetail < Struct.new(
2342
+ :policy_template_id,
2343
+ :principal,
2344
+ :resource)
2345
+ SENSITIVE = []
2346
+ include Aws::Structure
2347
+ end
2348
+
2349
+ # Contains information about a policy created by instantiating a policy
2350
+ # template.
2351
+ #
2352
+ # This
2353
+ #
2354
+ # @!attribute [rw] policy_template_id
2355
+ # The unique identifier of the policy template used to create this
2356
+ # policy.
2357
+ # @return [String]
2358
+ #
2359
+ # @!attribute [rw] principal
2360
+ # The principal associated with this template-linked policy. Verified
2361
+ # Permissions substitutes this principal for the `?principal`
2362
+ # placeholder in the policy template when it evaluates an
2363
+ # authorization request.
2364
+ # @return [Types::EntityIdentifier]
2365
+ #
2366
+ # @!attribute [rw] resource
2367
+ # The resource associated with this template-linked policy. Verified
2368
+ # Permissions substitutes this resource for the `?resource`
2369
+ # placeholder in the policy template when it evaluates an
2370
+ # authorization request.
2371
+ # @return [Types::EntityIdentifier]
2372
+ #
2373
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/TemplateLinkedPolicyDefinitionItem AWS API Documentation
2374
+ #
2375
+ class TemplateLinkedPolicyDefinitionItem < Struct.new(
2376
+ :policy_template_id,
2377
+ :principal,
2378
+ :resource)
2379
+ SENSITIVE = []
2380
+ include Aws::Structure
2381
+ end
2382
+
2383
+ # The request failed because it exceeded a throttling quota.
2384
+ #
2385
+ # @!attribute [rw] message
2386
+ # @return [String]
2387
+ #
2388
+ # @!attribute [rw] service_code
2389
+ # The code for the Amazon Web Service that owns the quota.
2390
+ # @return [String]
2391
+ #
2392
+ # @!attribute [rw] quota_code
2393
+ # The quota code recognized by the Amazon Web Services Service Quotas
2394
+ # service.
2395
+ # @return [String]
2396
+ #
2397
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/ThrottlingException AWS API Documentation
2398
+ #
2399
+ class ThrottlingException < Struct.new(
2400
+ :message,
2401
+ :service_code,
2402
+ :quota_code)
2403
+ SENSITIVE = []
2404
+ include Aws::Structure
2405
+ end
2406
+
2407
+ # Contains configuration details of a Amazon Cognito user pool for use
2408
+ # with an identity source.
2409
+ #
2410
+ # @!attribute [rw] user_pool_arn
2411
+ # The [Amazon Resource Name (ARN)][1] of the Amazon Cognito user pool
2412
+ # associated with this identity source.
2413
+ #
2414
+ #
2415
+ #
2416
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
2417
+ # @return [String]
2418
+ #
2419
+ # @!attribute [rw] client_ids
2420
+ # The client ID of an app client that is configured for the specified
2421
+ # Amazon Cognito user pool.
2422
+ # @return [Array<String>]
2423
+ #
2424
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/UpdateCognitoUserPoolConfiguration AWS API Documentation
2425
+ #
2426
+ class UpdateCognitoUserPoolConfiguration < Struct.new(
2427
+ :user_pool_arn,
2428
+ :client_ids)
2429
+ SENSITIVE = []
2430
+ include Aws::Structure
2431
+ end
2432
+
2433
+ # Contains an updated configuration to replace the configuration in an
2434
+ # existing identity source.
2435
+ #
2436
+ # <note markdown="1"> At this time, the only valid member of this structure is a Amazon
2437
+ # Cognito user pool configuration.
2438
+ #
2439
+ # You must specify a `userPoolArn`, and optionally, a `ClientId`.
2440
+ #
2441
+ # </note>
2442
+ #
2443
+ # @note UpdateConfiguration is a union - when making an API calls you must set exactly one of the members.
2444
+ #
2445
+ # @!attribute [rw] cognito_user_pool_configuration
2446
+ # Contains configuration details of a Amazon Cognito user pool.
2447
+ # @return [Types::UpdateCognitoUserPoolConfiguration]
2448
+ #
2449
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/UpdateConfiguration AWS API Documentation
2450
+ #
2451
+ class UpdateConfiguration < Struct.new(
2452
+ :cognito_user_pool_configuration,
2453
+ :unknown)
2454
+ SENSITIVE = []
2455
+ include Aws::Structure
2456
+ include Aws::Structure::Union
2457
+
2458
+ class CognitoUserPoolConfiguration < UpdateConfiguration; end
2459
+ class Unknown < UpdateConfiguration; end
2460
+ end
2461
+
2462
+ # @!attribute [rw] policy_store_id
2463
+ # Specifies the ID of the policy store that contains the identity
2464
+ # source that you want to update.
2465
+ # @return [String]
2466
+ #
2467
+ # @!attribute [rw] identity_source_id
2468
+ # Specifies the ID of the identity source that you want to update.
2469
+ # @return [String]
2470
+ #
2471
+ # @!attribute [rw] update_configuration
2472
+ # Specifies the details required to communicate with the identity
2473
+ # provider (IdP) associated with this identity source.
2474
+ #
2475
+ # <note markdown="1"> At this time, the only valid member of this structure is a Amazon
2476
+ # Cognito user pool configuration.
2477
+ #
2478
+ # You must specify a `userPoolArn`, and optionally, a `ClientId`.
2479
+ #
2480
+ # </note>
2481
+ # @return [Types::UpdateConfiguration]
2482
+ #
2483
+ # @!attribute [rw] principal_entity_type
2484
+ # Specifies the data type of principals generated for identities
2485
+ # authenticated by the identity source.
2486
+ # @return [String]
2487
+ #
2488
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/UpdateIdentitySourceInput AWS API Documentation
2489
+ #
2490
+ class UpdateIdentitySourceInput < Struct.new(
2491
+ :policy_store_id,
2492
+ :identity_source_id,
2493
+ :update_configuration,
2494
+ :principal_entity_type)
2495
+ SENSITIVE = []
2496
+ include Aws::Structure
2497
+ end
2498
+
2499
+ # @!attribute [rw] created_date
2500
+ # The date and time that the updated identity source was originally
2501
+ # created.
2502
+ # @return [Time]
2503
+ #
2504
+ # @!attribute [rw] identity_source_id
2505
+ # The ID of the updated identity source.
2506
+ # @return [String]
2507
+ #
2508
+ # @!attribute [rw] last_updated_date
2509
+ # The date and time that the identity source was most recently
2510
+ # updated.
2511
+ # @return [Time]
2512
+ #
2513
+ # @!attribute [rw] policy_store_id
2514
+ # The ID of the policy store that contains the updated identity
2515
+ # source.
2516
+ # @return [String]
2517
+ #
2518
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/UpdateIdentitySourceOutput AWS API Documentation
2519
+ #
2520
+ class UpdateIdentitySourceOutput < Struct.new(
2521
+ :created_date,
2522
+ :identity_source_id,
2523
+ :last_updated_date,
2524
+ :policy_store_id)
2525
+ SENSITIVE = []
2526
+ include Aws::Structure
2527
+ end
2528
+
2529
+ # Contains information about updates to be applied to a policy.
2530
+ #
2531
+ # This data type is used as a request parameter in the [UpdatePolicy][1]
2532
+ # operation.
2533
+ #
2534
+ #
2535
+ #
2536
+ # [1]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_UpdatePolicy.html
2537
+ #
2538
+ # @note UpdatePolicyDefinition is a union - when making an API calls you must set exactly one of the members.
2539
+ #
2540
+ # @!attribute [rw] static
2541
+ # Contains details about the updates to be applied to a static policy.
2542
+ # @return [Types::UpdateStaticPolicyDefinition]
2543
+ #
2544
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/UpdatePolicyDefinition AWS API Documentation
2545
+ #
2546
+ class UpdatePolicyDefinition < Struct.new(
2547
+ :static,
2548
+ :unknown)
2549
+ SENSITIVE = []
2550
+ include Aws::Structure
2551
+ include Aws::Structure::Union
2552
+
2553
+ class Static < UpdatePolicyDefinition; end
2554
+ class Unknown < UpdatePolicyDefinition; end
2555
+ end
2556
+
2557
+ # @!attribute [rw] policy_store_id
2558
+ # Specifies the ID of the policy store that contains the policy that
2559
+ # you want to update.
2560
+ # @return [String]
2561
+ #
2562
+ # @!attribute [rw] policy_id
2563
+ # Specifies the ID of the policy that you want to update. To find this
2564
+ # value, you can use [ListPolicies][1].
2565
+ #
2566
+ #
2567
+ #
2568
+ # [1]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_ListPolicies.html
2569
+ # @return [String]
2570
+ #
2571
+ # @!attribute [rw] definition
2572
+ # Specifies the updated policy content that you want to replace on the
2573
+ # specified policy. The content must be valid Cedar policy language
2574
+ # text.
2575
+ #
2576
+ # You can change only the following elements from the policy
2577
+ # definition:
2578
+ #
2579
+ # * The `action` referenced by the policy.
2580
+ #
2581
+ # * Any conditional clauses, such as `when` or `unless` clauses.
2582
+ #
2583
+ # You **can't** change the following elements:
2584
+ #
2585
+ # * Changing from `static` to `templateLinked`.
2586
+ #
2587
+ # * Changing the effect of the policy from `permit` or `forbid`.
2588
+ #
2589
+ # * The `principal` referenced by the policy.
2590
+ #
2591
+ # * The `resource` referenced by the policy.
2592
+ # @return [Types::UpdatePolicyDefinition]
2593
+ #
2594
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/UpdatePolicyInput AWS API Documentation
2595
+ #
2596
+ class UpdatePolicyInput < Struct.new(
2597
+ :policy_store_id,
2598
+ :policy_id,
2599
+ :definition)
2600
+ SENSITIVE = []
2601
+ include Aws::Structure
2602
+ end
2603
+
2604
+ # @!attribute [rw] policy_store_id
2605
+ # The ID of the policy store that contains the policy that was
2606
+ # updated.
2607
+ # @return [String]
2608
+ #
2609
+ # @!attribute [rw] policy_id
2610
+ # The ID of the policy that was updated.
2611
+ # @return [String]
2612
+ #
2613
+ # @!attribute [rw] policy_type
2614
+ # The type of the policy that was updated.
2615
+ # @return [String]
2616
+ #
2617
+ # @!attribute [rw] principal
2618
+ # The principal specified in the policy's scope. This element isn't
2619
+ # included in the response when `Principal` isn't present in the
2620
+ # policy content.
2621
+ # @return [Types::EntityIdentifier]
2622
+ #
2623
+ # @!attribute [rw] resource
2624
+ # The resource specified in the policy's scope. This element isn't
2625
+ # included in the response when `Resource` isn't present in the
2626
+ # policy content.
2627
+ # @return [Types::EntityIdentifier]
2628
+ #
2629
+ # @!attribute [rw] created_date
2630
+ # The date and time that the policy was originally created.
2631
+ # @return [Time]
2632
+ #
2633
+ # @!attribute [rw] last_updated_date
2634
+ # The date and time that the policy was most recently updated.
2635
+ # @return [Time]
2636
+ #
2637
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/UpdatePolicyOutput AWS API Documentation
2638
+ #
2639
+ class UpdatePolicyOutput < Struct.new(
2640
+ :policy_store_id,
2641
+ :policy_id,
2642
+ :policy_type,
2643
+ :principal,
2644
+ :resource,
2645
+ :created_date,
2646
+ :last_updated_date)
2647
+ SENSITIVE = []
2648
+ include Aws::Structure
2649
+ end
2650
+
2651
+ # @!attribute [rw] policy_store_id
2652
+ # Specifies the ID of the policy store that you want to update
2653
+ # @return [String]
2654
+ #
2655
+ # @!attribute [rw] validation_settings
2656
+ # A structure that defines the validation settings that want to enable
2657
+ # for the policy store.
2658
+ # @return [Types::ValidationSettings]
2659
+ #
2660
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/UpdatePolicyStoreInput AWS API Documentation
2661
+ #
2662
+ class UpdatePolicyStoreInput < Struct.new(
2663
+ :policy_store_id,
2664
+ :validation_settings)
2665
+ SENSITIVE = []
2666
+ include Aws::Structure
2667
+ end
2668
+
2669
+ # @!attribute [rw] policy_store_id
2670
+ # The ID of the updated policy store.
2671
+ # @return [String]
2672
+ #
2673
+ # @!attribute [rw] arn
2674
+ # The [Amazon Resource Name (ARN)][1] of the updated policy store.
2675
+ #
2676
+ #
2677
+ #
2678
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
2679
+ # @return [String]
2680
+ #
2681
+ # @!attribute [rw] created_date
2682
+ # The date and time that the policy store was originally created.
2683
+ # @return [Time]
2684
+ #
2685
+ # @!attribute [rw] last_updated_date
2686
+ # The date and time that the policy store was most recently updated.
2687
+ # @return [Time]
2688
+ #
2689
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/UpdatePolicyStoreOutput AWS API Documentation
2690
+ #
2691
+ class UpdatePolicyStoreOutput < Struct.new(
2692
+ :policy_store_id,
2693
+ :arn,
2694
+ :created_date,
2695
+ :last_updated_date)
2696
+ SENSITIVE = []
2697
+ include Aws::Structure
2698
+ end
2699
+
2700
+ # @!attribute [rw] policy_store_id
2701
+ # Specifies the ID of the policy store that contains the policy
2702
+ # template that you want to update.
2703
+ # @return [String]
2704
+ #
2705
+ # @!attribute [rw] policy_template_id
2706
+ # Specifies the ID of the policy template that you want to update.
2707
+ # @return [String]
2708
+ #
2709
+ # @!attribute [rw] description
2710
+ # Specifies a new description to apply to the policy template.
2711
+ # @return [String]
2712
+ #
2713
+ # @!attribute [rw] statement
2714
+ # Specifies new statement content written in Cedar policy language to
2715
+ # replace the current body of the policy template.
2716
+ #
2717
+ # You can change only the following elements of the policy body:
2718
+ #
2719
+ # * The `action` referenced by the policy template.
2720
+ #
2721
+ # * Any conditional clauses, such as `when` or `unless` clauses.
2722
+ #
2723
+ # You **can't** change the following elements:
2724
+ #
2725
+ # * The effect (`permit` or `forbid`) of the policy template.
2726
+ #
2727
+ # * The `principal` referenced by the policy template.
2728
+ #
2729
+ # * The `resource` referenced by the policy template.
2730
+ # @return [String]
2731
+ #
2732
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/UpdatePolicyTemplateInput AWS API Documentation
2733
+ #
2734
+ class UpdatePolicyTemplateInput < Struct.new(
2735
+ :policy_store_id,
2736
+ :policy_template_id,
2737
+ :description,
2738
+ :statement)
2739
+ SENSITIVE = []
2740
+ include Aws::Structure
2741
+ end
2742
+
2743
+ # @!attribute [rw] policy_store_id
2744
+ # The ID of the policy store that contains the updated policy
2745
+ # template.
2746
+ # @return [String]
2747
+ #
2748
+ # @!attribute [rw] policy_template_id
2749
+ # The ID of the updated policy template.
2750
+ # @return [String]
2751
+ #
2752
+ # @!attribute [rw] created_date
2753
+ # The date and time that the policy template was originally created.
2754
+ # @return [Time]
2755
+ #
2756
+ # @!attribute [rw] last_updated_date
2757
+ # The date and time that the policy template was most recently
2758
+ # updated.
2759
+ # @return [Time]
2760
+ #
2761
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/UpdatePolicyTemplateOutput AWS API Documentation
2762
+ #
2763
+ class UpdatePolicyTemplateOutput < Struct.new(
2764
+ :policy_store_id,
2765
+ :policy_template_id,
2766
+ :created_date,
2767
+ :last_updated_date)
2768
+ SENSITIVE = []
2769
+ include Aws::Structure
2770
+ end
2771
+
2772
+ # Contains information about an update to a static policy.
2773
+ #
2774
+ # @!attribute [rw] description
2775
+ # Specifies the description to be added to or replaced on the static
2776
+ # policy.
2777
+ # @return [String]
2778
+ #
2779
+ # @!attribute [rw] statement
2780
+ # Specifies the Cedar policy language text to be added to or replaced
2781
+ # on the static policy.
2782
+ #
2783
+ # You can change only the following elements from the original
2784
+ # content:
2785
+ #
2786
+ # * The `action` referenced by the policy.
2787
+ #
2788
+ # * Any conditional clauses, such as `when` or `unless` clauses.
2789
+ #
2790
+ # You **can't** change the following elements:
2791
+ #
2792
+ # * Changing from `StaticPolicy` to `TemplateLinkedPolicy`.
2793
+ #
2794
+ # * The effect (`permit` or `forbid`) of the policy.
2795
+ #
2796
+ # * The `principal` referenced by the policy.
2797
+ #
2798
+ # * The `resource` referenced by the policy.
2799
+ # @return [String]
2800
+ #
2801
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/UpdateStaticPolicyDefinition AWS API Documentation
2802
+ #
2803
+ class UpdateStaticPolicyDefinition < Struct.new(
2804
+ :description,
2805
+ :statement)
2806
+ SENSITIVE = []
2807
+ include Aws::Structure
2808
+ end
2809
+
2810
+ # The request failed because one or more input parameters don't satisfy
2811
+ # their constraint requirements. The output is provided as a list of
2812
+ # fields and a reason for each field that isn't valid.
2813
+ #
2814
+ # The possible reasons include the following:
2815
+ #
2816
+ # * **UnrecognizedEntityType**
2817
+ #
2818
+ # The policy includes an entity type that isn't found in the schema.
2819
+ #
2820
+ # * **UnrecognizedActionId**
2821
+ #
2822
+ # The policy includes an action id that isn't found in the schema.
2823
+ #
2824
+ # * **InvalidActionApplication**
2825
+ #
2826
+ # The policy includes an action that, according to the schema,
2827
+ # doesn't support the specified principal and resource.
2828
+ #
2829
+ # * **UnexpectedType**
2830
+ #
2831
+ # The policy included an operand that isn't a valid type for the
2832
+ # specified operation.
2833
+ #
2834
+ # * **IncompatibleTypes**
2835
+ #
2836
+ # The types of elements included in a `set`, or the types of
2837
+ # expressions used in an `if...then...else` clause aren't compatible
2838
+ # in this context.
2839
+ #
2840
+ # * **MissingAttribute**
2841
+ #
2842
+ # The policy attempts to access a record or entity attribute that
2843
+ # isn't specified in the schema. Test for the existence of the
2844
+ # attribute first before attempting to access its value. For more
2845
+ # information, see the [has (presence of attribute test)
2846
+ # operator](docs.cedarpolicy.comsyntax-operators.html#has-presence-of-attribute-test)
2847
+ # in the *Cedar Policy Language Guide*.
2848
+ #
2849
+ # * **UnsafeOptionalAttributeAccess**
2850
+ #
2851
+ # The policy attempts to access a record or entity attribute that is
2852
+ # optional and isn't guaranteed to be present. Test for the existence
2853
+ # of the attribute first before attempting to access its value. For
2854
+ # more information, see the [has (presence of attribute test)
2855
+ # operator](docs.cedarpolicy.comsyntax-operators.html#has-presence-of-attribute-test)
2856
+ # in the *Cedar Policy Language Guide*.
2857
+ #
2858
+ # * **ImpossiblePolicy**
2859
+ #
2860
+ # Cedar has determined that a policy condition always evaluates to
2861
+ # false. If the policy is always false, it can never apply to any
2862
+ # query, and so it can never affect an authorization decision.
2863
+ #
2864
+ # * **WrongNumberArguments**
2865
+ #
2866
+ # The policy references an extension type with the wrong number of
2867
+ # arguments.
2868
+ #
2869
+ # * **FunctionArgumentValidationError**
2870
+ #
2871
+ # Cedar couldn't parse the argument passed to an extension type. For
2872
+ # example, a string that is to be parsed as an IPv4 address can
2873
+ # contain only digits and the period character.
2874
+ #
2875
+ # @!attribute [rw] message
2876
+ # @return [String]
2877
+ #
2878
+ # @!attribute [rw] field_list
2879
+ # The list of fields that aren't valid.
2880
+ # @return [Array<Types::ValidationExceptionField>]
2881
+ #
2882
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/ValidationException AWS API Documentation
2883
+ #
2884
+ class ValidationException < Struct.new(
2885
+ :message,
2886
+ :field_list)
2887
+ SENSITIVE = []
2888
+ include Aws::Structure
2889
+ end
2890
+
2891
+ # Details about a field that failed policy validation.
2892
+ #
2893
+ # @!attribute [rw] path
2894
+ # The path to the specific element that Verified Permissions found to
2895
+ # be not valid.
2896
+ # @return [String]
2897
+ #
2898
+ # @!attribute [rw] message
2899
+ # Describes the policy validation error.
2900
+ # @return [String]
2901
+ #
2902
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/ValidationExceptionField AWS API Documentation
2903
+ #
2904
+ class ValidationExceptionField < Struct.new(
2905
+ :path,
2906
+ :message)
2907
+ SENSITIVE = []
2908
+ include Aws::Structure
2909
+ end
2910
+
2911
+ # A structure that contains Cedar policy validation settings for the
2912
+ # policy store. The validation mode determines which validation failures
2913
+ # that Cedar considers serious enough to block acceptance of a new or
2914
+ # edited static policy or policy template.
2915
+ #
2916
+ # This data type is used as a request parameter in the
2917
+ # [CreatePolicyStore][1] and [UpdatePolicyStore][2] operations.
2918
+ #
2919
+ #
2920
+ #
2921
+ # [1]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CreatePolicyStore.html
2922
+ # [2]: https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_UpdatePolicyStore.html
2923
+ #
2924
+ # @!attribute [rw] mode
2925
+ # The validation mode currently configured for this policy store. The
2926
+ # valid values are:
2927
+ #
2928
+ # * **OFF** – Neither Verified Permissions nor Cedar perform any
2929
+ # validation on policies. No validation errors are reported by
2930
+ # either service.
2931
+ #
2932
+ # * **STRICT** – Requires a schema to be present in the policy store.
2933
+ # Cedar performs validation on all submitted new or updated static
2934
+ # policies and policy templates. Any that fail validation are
2935
+ # rejected and Cedar doesn't store them in the policy store.
2936
+ #
2937
+ # If `Mode=STRICT` and the policy store doesn't contain a schema,
2938
+ # Verified Permissions rejects all static policies and policy
2939
+ # templates because there is no schema to validate against.
2940
+ #
2941
+ # To submit a static policy or policy template without a schema, you
2942
+ # must turn off validation.
2943
+ # @return [String]
2944
+ #
2945
+ # @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/ValidationSettings AWS API Documentation
2946
+ #
2947
+ class ValidationSettings < Struct.new(
2948
+ :mode)
2949
+ SENSITIVE = []
2950
+ include Aws::Structure
2951
+ end
2952
+
2953
+ end
2954
+ end