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