1// Code generated by smithy-go-codegen DO NOT EDIT.
2
3package types
4
5import (
6	"time"
7)
8
9// Represents a named directory attribute.
10type Attribute struct {
11
12	// The name of the attribute.
13	Name *string
14
15	// The value of the attribute.
16	Value *string
17}
18
19// Information about the certificate.
20type Certificate struct {
21
22	// The identifier of the certificate.
23	CertificateId *string
24
25	// A ClientCertAuthSettings object that contains client certificate authentication
26	// settings.
27	ClientCertAuthSettings *ClientCertAuthSettings
28
29	// The common name for the certificate.
30	CommonName *string
31
32	// The date and time when the certificate will expire.
33	ExpiryDateTime *time.Time
34
35	// The date and time that the certificate was registered.
36	RegisteredDateTime *time.Time
37
38	// The state of the certificate.
39	State CertificateState
40
41	// Describes a state change for the certificate.
42	StateReason *string
43
44	// The function that the registered certificate performs. Valid values include
45	// ClientLDAPS or ClientCertAuth. The default value is ClientLDAPS.
46	Type CertificateType
47}
48
49// Contains general information about a certificate.
50type CertificateInfo struct {
51
52	// The identifier of the certificate.
53	CertificateId *string
54
55	// The common name for the certificate.
56	CommonName *string
57
58	// The date and time when the certificate will expire.
59	ExpiryDateTime *time.Time
60
61	// The state of the certificate.
62	State CertificateState
63
64	// The function that the registered certificate performs. Valid values include
65	// ClientLDAPS or ClientCertAuth. The default value is ClientLDAPS.
66	Type CertificateType
67}
68
69// Contains information about the client certificate authentication settings for
70// the RegisterCertificate and DescribeCertificate operations.
71type ClientCertAuthSettings struct {
72
73	// Specifies the URL of the default OCSP server used to check for revocation
74	// status. A secondary value to any OCSP address found in the AIA extension of the
75	// user certificate.
76	OCSPUrl *string
77}
78
79// Contains information about a computer account in a directory.
80type Computer struct {
81
82	// An array of Attribute objects containing the LDAP attributes that belong to the
83	// computer account.
84	ComputerAttributes []Attribute
85
86	// The identifier of the computer.
87	ComputerId *string
88
89	// The computer name.
90	ComputerName *string
91}
92
93// Points to a remote domain with which you are setting up a trust relationship.
94// Conditional forwarders are required in order to set up a trust relationship with
95// another domain.
96type ConditionalForwarder struct {
97
98	// The IP addresses of the remote DNS server associated with RemoteDomainName. This
99	// is the IP address of the DNS server that your conditional forwarder points to.
100	DnsIpAddrs []string
101
102	// The fully qualified domain name (FQDN) of the remote domains pointed to by the
103	// conditional forwarder.
104	RemoteDomainName *string
105
106	// The replication scope of the conditional forwarder. The only allowed value is
107	// Domain, which will replicate the conditional forwarder to all of the domain
108	// controllers for your AWS directory.
109	ReplicationScope ReplicationScope
110}
111
112// Contains information for the ConnectDirectory operation when an AD Connector
113// directory is being created.
114type DirectoryConnectSettings struct {
115
116	// A list of one or more IP addresses of DNS servers or domain controllers in the
117	// on-premises directory.
118	//
119	// This member is required.
120	CustomerDnsIps []string
121
122	// The user name of an account in the on-premises directory that is used to connect
123	// to the directory. This account must have the following permissions:
124	//
125	// * Read
126	// users and groups
127	//
128	// * Create computer objects
129	//
130	// * Join computers to the domain
131	//
132	// This member is required.
133	CustomerUserName *string
134
135	// A list of subnet identifiers in the VPC in which the AD Connector is created.
136	//
137	// This member is required.
138	SubnetIds []string
139
140	// The identifier of the VPC in which the AD Connector is created.
141	//
142	// This member is required.
143	VpcId *string
144}
145
146// Contains information about an AD Connector directory.
147type DirectoryConnectSettingsDescription struct {
148
149	// A list of the Availability Zones that the directory is in.
150	AvailabilityZones []string
151
152	// The IP addresses of the AD Connector servers.
153	ConnectIps []string
154
155	// The user name of the service account in the on-premises directory.
156	CustomerUserName *string
157
158	// The security group identifier for the AD Connector directory.
159	SecurityGroupId *string
160
161	// A list of subnet identifiers in the VPC that the AD Connector is in.
162	SubnetIds []string
163
164	// The identifier of the VPC that the AD Connector is in.
165	VpcId *string
166}
167
168// Contains information about an AWS Directory Service directory.
169type DirectoryDescription struct {
170
171	// The access URL for the directory, such as http://.awsapps.com. If no alias has
172	// been created for the directory,  is the directory identifier, such as
173	// d-XXXXXXXXXX.
174	AccessUrl *string
175
176	// The alias for the directory. If no alias has been created for the directory, the
177	// alias is the directory identifier, such as d-XXXXXXXXXX.
178	Alias *string
179
180	// A DirectoryConnectSettingsDescription object that contains additional
181	// information about an AD Connector directory. This member is only present if the
182	// directory is an AD Connector directory.
183	ConnectSettings *DirectoryConnectSettingsDescription
184
185	// The description for the directory.
186	Description *string
187
188	// The desired number of domain controllers in the directory if the directory is
189	// Microsoft AD.
190	DesiredNumberOfDomainControllers int32
191
192	// The directory identifier.
193	DirectoryId *string
194
195	// The IP addresses of the DNS servers for the directory. For a Simple AD or
196	// Microsoft AD directory, these are the IP addresses of the Simple AD or Microsoft
197	// AD directory servers. For an AD Connector directory, these are the IP addresses
198	// of the DNS servers or domain controllers in the on-premises directory to which
199	// the AD Connector is connected.
200	DnsIpAddrs []string
201
202	// The edition associated with this directory.
203	Edition DirectoryEdition
204
205	// Specifies when the directory was created.
206	LaunchTime *time.Time
207
208	// The fully qualified name of the directory.
209	Name *string
210
211	// Describes the AWS Managed Microsoft AD directory in the directory owner account.
212	OwnerDirectoryDescription *OwnerDirectoryDescription
213
214	// A RadiusSettings object that contains information about the RADIUS server
215	// configured for this directory.
216	RadiusSettings *RadiusSettings
217
218	// The status of the RADIUS MFA server connection.
219	RadiusStatus RadiusStatus
220
221	// Lists the Regions where the directory has replicated.
222	RegionsInfo *RegionsInfo
223
224	// The method used when sharing a directory to determine whether the directory
225	// should be shared within your AWS organization (ORGANIZATIONS) or with any AWS
226	// account by sending a shared directory request (HANDSHAKE).
227	ShareMethod ShareMethod
228
229	// A directory share request that is sent by the directory owner to the directory
230	// consumer. The request includes a typed message to help the directory consumer
231	// administrator determine whether to approve or reject the share invitation.
232	ShareNotes *string
233
234	// Current directory status of the shared AWS Managed Microsoft AD directory.
235	ShareStatus ShareStatus
236
237	// The short name of the directory.
238	ShortName *string
239
240	// The directory size.
241	Size DirectorySize
242
243	// Indicates if single sign-on is enabled for the directory. For more information,
244	// see EnableSso and DisableSso.
245	SsoEnabled bool
246
247	// The current stage of the directory.
248	Stage DirectoryStage
249
250	// The date and time that the stage was last updated.
251	StageLastUpdatedDateTime *time.Time
252
253	// Additional information about the directory stage.
254	StageReason *string
255
256	// The directory size.
257	Type DirectoryType
258
259	// A DirectoryVpcSettingsDescription object that contains additional information
260	// about a directory. This member is only present if the directory is a Simple AD
261	// or Managed AD directory.
262	VpcSettings *DirectoryVpcSettingsDescription
263}
264
265// Contains directory limit information for a Region.
266type DirectoryLimits struct {
267
268	// The current number of cloud directories in the Region.
269	CloudOnlyDirectoriesCurrentCount *int32
270
271	// The maximum number of cloud directories allowed in the Region.
272	CloudOnlyDirectoriesLimit *int32
273
274	// Indicates if the cloud directory limit has been reached.
275	CloudOnlyDirectoriesLimitReached bool
276
277	// The current number of AWS Managed Microsoft AD directories in the region.
278	CloudOnlyMicrosoftADCurrentCount *int32
279
280	// The maximum number of AWS Managed Microsoft AD directories allowed in the
281	// region.
282	CloudOnlyMicrosoftADLimit *int32
283
284	// Indicates if the AWS Managed Microsoft AD directory limit has been reached.
285	CloudOnlyMicrosoftADLimitReached bool
286
287	// The current number of connected directories in the Region.
288	ConnectedDirectoriesCurrentCount *int32
289
290	// The maximum number of connected directories allowed in the Region.
291	ConnectedDirectoriesLimit *int32
292
293	// Indicates if the connected directory limit has been reached.
294	ConnectedDirectoriesLimitReached bool
295}
296
297// Contains VPC information for the CreateDirectory or CreateMicrosoftAD operation.
298type DirectoryVpcSettings struct {
299
300	// The identifiers of the subnets for the directory servers. The two subnets must
301	// be in different Availability Zones. AWS Directory Service creates a directory
302	// server and a DNS server in each of these subnets.
303	//
304	// This member is required.
305	SubnetIds []string
306
307	// The identifier of the VPC in which to create the directory.
308	//
309	// This member is required.
310	VpcId *string
311}
312
313// Contains information about the directory.
314type DirectoryVpcSettingsDescription struct {
315
316	// The list of Availability Zones that the directory is in.
317	AvailabilityZones []string
318
319	// The domain controller security group identifier for the directory.
320	SecurityGroupId *string
321
322	// The identifiers of the subnets for the directory servers.
323	SubnetIds []string
324
325	// The identifier of the VPC that the directory is in.
326	VpcId *string
327}
328
329// Contains information about the domain controllers for a specified directory.
330type DomainController struct {
331
332	// The Availability Zone where the domain controller is located.
333	AvailabilityZone *string
334
335	// Identifier of the directory where the domain controller resides.
336	DirectoryId *string
337
338	// The IP address of the domain controller.
339	DnsIpAddr *string
340
341	// Identifies a specific domain controller in the directory.
342	DomainControllerId *string
343
344	// Specifies when the domain controller was created.
345	LaunchTime *time.Time
346
347	// The status of the domain controller.
348	Status DomainControllerStatus
349
350	// The date and time that the status was last updated.
351	StatusLastUpdatedDateTime *time.Time
352
353	// A description of the domain controller state.
354	StatusReason *string
355
356	// Identifier of the subnet in the VPC that contains the domain controller.
357	SubnetId *string
358
359	// The identifier of the VPC that contains the domain controller.
360	VpcId *string
361}
362
363// Information about SNS topic and AWS Directory Service directory associations.
364type EventTopic struct {
365
366	// The date and time of when you associated your directory with the SNS topic.
367	CreatedDateTime *time.Time
368
369	// The Directory ID of an AWS Directory Service directory that will publish status
370	// messages to an SNS topic.
371	DirectoryId *string
372
373	// The topic registration status.
374	Status TopicStatus
375
376	// The SNS topic ARN (Amazon Resource Name).
377	TopicArn *string
378
379	// The name of an AWS SNS topic the receives status messages from the directory.
380	TopicName *string
381}
382
383// IP address block. This is often the address block of the DNS server used for
384// your on-premises domain.
385type IpRoute struct {
386
387	// IP address block using CIDR format, for example 10.0.0.0/24. This is often the
388	// address block of the DNS server used for your on-premises domain. For a single
389	// IP address use a CIDR address block with /32. For example 10.0.0.0/32.
390	CidrIp *string
391
392	// Description of the address block.
393	Description *string
394}
395
396// Information about one or more IP address blocks.
397type IpRouteInfo struct {
398
399	// The date and time the address block was added to the directory.
400	AddedDateTime *time.Time
401
402	// IP address block in the IpRoute.
403	CidrIp *string
404
405	// Description of the IpRouteInfo.
406	Description *string
407
408	// Identifier (ID) of the directory associated with the IP addresses.
409	DirectoryId *string
410
411	// The status of the IP address block.
412	IpRouteStatusMsg IpRouteStatusMsg
413
414	// The reason for the IpRouteStatusMsg.
415	IpRouteStatusReason *string
416}
417
418// Contains general information about the LDAPS settings.
419type LDAPSSettingInfo struct {
420
421	// The state of the LDAPS settings.
422	LDAPSStatus LDAPSStatus
423
424	// Describes a state change for LDAPS.
425	LDAPSStatusReason *string
426
427	// The date and time when the LDAPS settings were last updated.
428	LastUpdatedDateTime *time.Time
429}
430
431// Represents a log subscription, which tracks real-time data from a chosen log
432// group to a specified destination.
433type LogSubscription struct {
434
435	// Identifier (ID) of the directory that you want to associate with the log
436	// subscription.
437	DirectoryId *string
438
439	// The name of the log group.
440	LogGroupName *string
441
442	// The date and time that the log subscription was created.
443	SubscriptionCreatedDateTime *time.Time
444}
445
446// Describes the directory owner account details that have been shared to the
447// directory consumer account.
448type OwnerDirectoryDescription struct {
449
450	// Identifier of the directory owner account.
451	AccountId *string
452
453	// Identifier of the AWS Managed Microsoft AD directory in the directory owner
454	// account.
455	DirectoryId *string
456
457	// IP address of the directory’s domain controllers.
458	DnsIpAddrs []string
459
460	// A RadiusSettings object that contains information about the RADIUS server.
461	RadiusSettings *RadiusSettings
462
463	// Information about the status of the RADIUS server.
464	RadiusStatus RadiusStatus
465
466	// Information about the VPC settings for the directory.
467	VpcSettings *DirectoryVpcSettingsDescription
468}
469
470// Contains information about a Remote Authentication Dial In User Service (RADIUS)
471// server.
472type RadiusSettings struct {
473
474	// The protocol specified for your RADIUS endpoints.
475	AuthenticationProtocol RadiusAuthenticationProtocol
476
477	// Not currently used.
478	DisplayLabel *string
479
480	// The port that your RADIUS server is using for communications. Your on-premises
481	// network must allow inbound traffic over this port from the AWS Directory Service
482	// servers.
483	RadiusPort int32
484
485	// The maximum number of times that communication with the RADIUS server is
486	// attempted.
487	RadiusRetries int32
488
489	// An array of strings that contains the fully qualified domain name (FQDN) or IP
490	// addresses of the RADIUS server endpoints, or the FQDN or IP addresses of your
491	// RADIUS server load balancer.
492	RadiusServers []string
493
494	// The amount of time, in seconds, to wait for the RADIUS server to respond.
495	RadiusTimeout int32
496
497	// Required for enabling RADIUS on the directory.
498	SharedSecret *string
499
500	// Not currently used.
501	UseSameUsername bool
502}
503
504// The replicated Region information for a directory.
505type RegionDescription struct {
506
507	// The desired number of domain controllers in the specified Region for the
508	// specified directory.
509	DesiredNumberOfDomainControllers int32
510
511	// The identifier of the directory.
512	DirectoryId *string
513
514	// The date and time that the Region description was last updated.
515	LastUpdatedDateTime *time.Time
516
517	// Specifies when the Region replication began.
518	LaunchTime *time.Time
519
520	// The name of the Region. For example, us-east-1.
521	RegionName *string
522
523	// Specifies whether the Region is the primary Region or an additional Region.
524	RegionType RegionType
525
526	// The status of the replication process for the specified Region.
527	Status DirectoryStage
528
529	// The date and time that the Region status was last updated.
530	StatusLastUpdatedDateTime *time.Time
531
532	// Contains VPC information for the CreateDirectory or CreateMicrosoftAD operation.
533	VpcSettings *DirectoryVpcSettings
534}
535
536// Provides information about the Regions that are configured for multi-Region
537// replication.
538type RegionsInfo struct {
539
540	// Lists the Regions where the directory has been replicated, excluding the primary
541	// Region.
542	AdditionalRegions []string
543
544	// The Region where the AWS Managed Microsoft AD directory was originally created.
545	PrimaryRegion *string
546}
547
548// Information about a schema extension.
549type SchemaExtensionInfo struct {
550
551	// A description of the schema extension.
552	Description *string
553
554	// The identifier of the directory to which the schema extension is applied.
555	DirectoryId *string
556
557	// The date and time that the schema extension was completed.
558	EndDateTime *time.Time
559
560	// The identifier of the schema extension.
561	SchemaExtensionId *string
562
563	// The current status of the schema extension.
564	SchemaExtensionStatus SchemaExtensionStatus
565
566	// The reason for the SchemaExtensionStatus.
567	SchemaExtensionStatusReason *string
568
569	// The date and time that the schema extension started being applied to the
570	// directory.
571	StartDateTime *time.Time
572}
573
574// Details about the shared directory in the directory owner account for which the
575// share request in the directory consumer account has been accepted.
576type SharedDirectory struct {
577
578	// The date and time that the shared directory was created.
579	CreatedDateTime *time.Time
580
581	// The date and time that the shared directory was last updated.
582	LastUpdatedDateTime *time.Time
583
584	// Identifier of the directory owner account, which contains the directory that has
585	// been shared to the consumer account.
586	OwnerAccountId *string
587
588	// Identifier of the directory in the directory owner account.
589	OwnerDirectoryId *string
590
591	// The method used when sharing a directory to determine whether the directory
592	// should be shared within your AWS organization (ORGANIZATIONS) or with any AWS
593	// account by sending a shared directory request (HANDSHAKE).
594	ShareMethod ShareMethod
595
596	// A directory share request that is sent by the directory owner to the directory
597	// consumer. The request includes a typed message to help the directory consumer
598	// administrator determine whether to approve or reject the share invitation.
599	ShareNotes *string
600
601	// Current directory status of the shared AWS Managed Microsoft AD directory.
602	ShareStatus ShareStatus
603
604	// Identifier of the directory consumer account that has access to the shared
605	// directory (OwnerDirectoryId) in the directory owner account.
606	SharedAccountId *string
607
608	// Identifier of the shared directory in the directory consumer account. This
609	// identifier is different for each directory owner account.
610	SharedDirectoryId *string
611}
612
613// Identifier that contains details about the directory consumer account.
614type ShareTarget struct {
615
616	// Identifier of the directory consumer account.
617	//
618	// This member is required.
619	Id *string
620
621	// Type of identifier to be used in the Id field.
622	//
623	// This member is required.
624	Type TargetType
625}
626
627// Describes a directory snapshot.
628type Snapshot struct {
629
630	// The directory identifier.
631	DirectoryId *string
632
633	// The descriptive name of the snapshot.
634	Name *string
635
636	// The snapshot identifier.
637	SnapshotId *string
638
639	// The date and time that the snapshot was taken.
640	StartTime *time.Time
641
642	// The snapshot status.
643	Status SnapshotStatus
644
645	// The snapshot type.
646	Type SnapshotType
647}
648
649// Contains manual snapshot limit information for a directory.
650type SnapshotLimits struct {
651
652	// The current number of manual snapshots of the directory.
653	ManualSnapshotsCurrentCount *int32
654
655	// The maximum number of manual snapshots allowed.
656	ManualSnapshotsLimit *int32
657
658	// Indicates if the manual snapshot limit has been reached.
659	ManualSnapshotsLimitReached bool
660}
661
662// Metadata assigned to a directory consisting of a key-value pair.
663type Tag struct {
664
665	// Required name of the tag. The string value can be Unicode characters and cannot
666	// be prefixed with "aws:". The string can contain only the set of Unicode letters,
667	// digits, white-space, '_', '.', '/', '=', '+', '-' (Java regex:
668	// "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)$").
669	//
670	// This member is required.
671	Key *string
672
673	// The optional value of the tag. The string value can be Unicode characters. The
674	// string can contain only the set of Unicode letters, digits, white-space, '_',
675	// '.', '/', '=', '+', '-' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)$").
676	//
677	// This member is required.
678	Value *string
679}
680
681// Describes a trust relationship between an AWS Managed Microsoft AD directory and
682// an external domain.
683type Trust struct {
684
685	// The date and time that the trust relationship was created.
686	CreatedDateTime *time.Time
687
688	// The Directory ID of the AWS directory involved in the trust relationship.
689	DirectoryId *string
690
691	// The date and time that the trust relationship was last updated.
692	LastUpdatedDateTime *time.Time
693
694	// The Fully Qualified Domain Name (FQDN) of the external domain involved in the
695	// trust relationship.
696	RemoteDomainName *string
697
698	// Current state of selective authentication for the trust.
699	SelectiveAuth SelectiveAuth
700
701	// The date and time that the TrustState was last updated.
702	StateLastUpdatedDateTime *time.Time
703
704	// The trust relationship direction.
705	TrustDirection TrustDirection
706
707	// The unique ID of the trust relationship.
708	TrustId *string
709
710	// The trust relationship state.
711	TrustState TrustState
712
713	// The reason for the TrustState.
714	TrustStateReason *string
715
716	// The trust relationship type. Forest is the default.
717	TrustType TrustType
718}
719
720// Identifier that contains details about the directory consumer account with whom
721// the directory is being unshared.
722type UnshareTarget struct {
723
724	// Identifier of the directory consumer account.
725	//
726	// This member is required.
727	Id *string
728
729	// Type of identifier to be used in the Id field.
730	//
731	// This member is required.
732	Type TargetType
733}
734