U a#@stdZddlZddlZddlZddlZddlZddlZddlZddlZddl TGdddej ddZ ej d gd d id Gd ddZ ejddGdddejZej dgdddd GdddZejddGdddejZGdddZejddGdd d ejZGd!d"d"Zejd#dGd$d%d%ejZGd&d'd'Zejd(dGd)d*d*ejZGd+d,d,Zejd-dGd.d/d/ejZGd0d1d1Zej d2gd3d4d5d6d Gd7d8d8ZGd9d:d:ej d;dZej dd?d@d GdAdBdBZej dCgdDddEd GdFdGdGZ e!eGdHdIdIej dJdZ"dIdddddd d%d*d/d8d:dBdGgZ#e$dS)Ka] # Constructs Programming Model > Software-defined state ![Release](https://github.com/aws/constructs/workflows/Release/badge.svg) [![npm version](https://badge.fury.io/js/constructs.svg)](https://badge.fury.io/js/constructs) [![PyPI version](https://badge.fury.io/py/constructs.svg)](https://badge.fury.io/py/constructs) [![NuGet version](https://badge.fury.io/nu/Constructs.svg)](https://badge.fury.io/nu/Constructs) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/software.constructs/constructs/badge.svg?style=plastic)](https://maven-badges.herokuapp.com/maven-central/software.constructs/constructs) ## What are constructs? Constructs are classes which define a "piece of system state". Constructs can be composed together to form higher-level building blocks which represent more complex state. Constructs are often used to represent the *desired state* of cloud applications. For example, in the AWS CDK, which is used to define the desired state for AWS infrastructure using CloudFormation, the lowest-level construct represents a *resource definition* in a CloudFormation template. These resources are composed to represent higher-level logical units of a cloud application, etc. ## Contributing This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct). We welcome community contributions and pull requests. See our [contribution guide](./CONTRIBUTING.md) for more information on how to report issues, set up a development environment and submit code. ## License This project is distributed under the [Apache License, Version 2.0](./LICENSE). N)*c@seZdZdZejjejddej dddZ ejjejddej ddd Z ejjejd dej dd d Z ejjejd dej dddZ dS)ConstructMetadataz!Metadata keys used by constructs.DISABLE_STACK_TRACE_IN_METADATAZ jsii_namereturncCsttjt|dS)zLIf set in the construct's context, omits stack traces from metadata entries.rtypingcastbuiltinsstrjsiisgetclsr/Users/jalaguru/Documents/Proserv/artifacts/aws_dms_cdk_automation/aws-dms-cdk-automation/venv/lib/python3.8/site-packages/constructs/__init__.pyr2sz1ConstructMetadata.DISABLE_STACK_TRACE_IN_METADATAERROR_METADATA_KEYcCsttjt|dS)z&Context type for error level messages.rr rrrrr8sz$ConstructMetadata.ERROR_METADATA_KEYINFO_METADATA_KEYcCsttjt|dS)z%Context type for info level messages.rr rrrrr>sz#ConstructMetadata.INFO_METADATA_KEYWARNING_METADATA_KEYcCsttjt|dS)z(Context type for warning level messages.rr rrrrrDsz&ConstructMetadata.WARNING_METADATA_KEYN)__name__ __module__ __qualname____doc__rpython classpropertymemberr r rrrrrrrrr,s    rzconstructs.ConstructMetadata) metaclass jsii_typezconstructs.ConstructOptions node_factoryZ nodeFactory)rZjsii_struct_basesZ name_mappingc@sxeZdZddejdddddZejejdddd Zej ej d d d Z ej ej d d dZ e dddZdS)ConstructOptionsNr INodeFactory)r rcCsi|_|dk r||jd<dS)zOptions for creating constructs. :param node_factory: A factory for attaching ``Node``s to the construct. Default: - the default ``Node`` is associated Nr _values)selfr rrr__init__QszConstructOptions.__init__rcCs|jd}ttjd|S)ztA factory for attaching ``Node``s to the construct. :default: - the default ``Node`` is associated r r#)r%getr r Optionalr&resultrrrr Zs zConstructOptions.node_factoryrhsrcCst||jo|j|jkSN isinstance __class__r%r&r-rrr__eq__cszConstructOptions.__eq__cCs ||k Sr.rr2rrr__ne__fszConstructOptions.__ne__cCsdddd|jDS)NzConstructOptions(%s), css"|]\}}|dt|VqdS=Nrepr.0kvrrr jsz,ConstructOptions.__repr__..joinr%itemsr&rrr__repr__is zConstructOptions.__repr__)rrrr r)r'r propertyr Anyboolr3r4r rCrrrrr!Ks  r!zconstructs.ConstructOrder)rc@seZdZdZdZdZdS)ConstructOrderz#In what order to return constructs.PREORDER POSTORDERN)rrrrrHrIrrrrrGosrGzconstructs.DependencysourcetargetrJrKc@s|eZdZddddddZejddddZejddd d Zej ej d d d Z ej ej d ddZ e dddZdS) Dependency IConstructN)rJrKrcCs||d|_dS)z}A single dependency. :param source: Source the dependency. :param target: Target of the dependency. rLNr$)r&rJrKrrrr'szDependency.__init__rcCs(|jd}|dk stdtd|S)zSource the dependency.rJN%Required property 'source' is missingrNr%r(AssertionErrorr r r*rrrrJs zDependency.sourcecCs(|jd}|dk stdtd|S)zTarget of the dependency.rKNz%Required property 'target' is missingrNrPr*rrrrKs zDependency.targetr,cCst||jo|j|jkSr.r/r2rrrr3szDependency.__eq__cCs ||k Sr.rr2rrrr4szDependency.__ne__cCsdddd|jDS)NzDependency(%s)r5css"|]\}}|dt|VqdSr6r8r:rrrr>sz&Dependency.__repr__..r?rBrrrrCs zDependency.__repr__)rrrr'r rDrJrKr rErFr3r4r rCrrrrrMys rMconstructs.IAspectc@sFeZdZdZejejddddZe j dddd d d d Z d S) IAspectRepresents an Aspect. _IAspectProxyrcCstSr.)rUrrrr__jsii_proxy_class__szIAspect.__jsii_proxy_class__visitrrNNnodercCsdS)EAll aspects can visit an IConstruct. :param node: - Nrr&rYrrrrWsz IAspect.visit) rrrrr staticmethodr TyperVrrrWrrrrrSs  rSc@s@eZdZUdZdZejeed<e j dddddd d Z dS) rUrTrR __jsii_type__rWrrNNrXcCstdt|d|gS)rZNrWr r rinvoker[rrrrWsz_IAspectProxy.visit) rrrrr^r ClassVarr __annotations__rrrWrrrrrUs  rUconstructs.IConstructc@s*eZdZdZejejddddZdS)rNRepresents a construct._IConstructProxyrcCstSr.)rerrrrrVszIConstruct.__jsii_proxy_class__N) rrrrr r\r r]rVrrrrrNsrNc@s$eZdZUdZdZejeed<dS)rerdrcr^N) rrrrr^r rar rbrrrrres reconstructs.INodeFactoryc@sLeZdZdZejejddddZe j ddde ej d d d d Z d S)r#3A factory for attaching ``Node``s to the construct._INodeFactoryProxyrcCstSr.)rhrrrrrVsz!INodeFactory.__jsii_proxy_class__ createNoder ConstructNodehostscopeidrcCsdS)Returns a new ``Node`` associated with ``host``. :param host: the associated construct. :param scope: the construct's scope (parent). :param id: the construct id. Nrr&rmrnrorrr create_nodes zINodeFactory.create_nodeN)rrrrr r\r r]rVrrrNr rrrrrrr#s r#c@sFeZdZUdZdZejeed<e j ddde e jddd d Z d S) rhrgrfr^rirrjrkrlc Cstdt|d|||gS)rprkrir_rqrrrrrs z_INodeFactoryProxy.create_nodeN)rrrrr^r rar rbrrrNr rrrrrrrhs  rhconstructs.ISynthesisSessionc@sLeZdZdZejejddddZej e j ddej ddd Z d S) ISynthesisSessioneRepresents a single session of synthesis. Passed into ``construct.onSynthesize()`` methods. _ISynthesisSessionProxyrcCstSr.)rvrrrrrVsz&ISynthesisSession.__jsii_proxy_class__outdirrcCsdS)0The output directory for this synthesis session.NrrBrrrrw szISynthesisSession.outdirN)rrrrr r\r r]rVrDrrr rwrrrrrts  rtc@sFeZdZUdZdZejeed<e j e j dde jdddZ d S) rvrursr^rwrrcCsttjt|dS)rxrwr r r r rr(rBrrrrwsz_ISynthesisSessionProxy.outdirN)rrrrr^r rar rbr rDrrrwrrrrrvs  rvconstructs.IValidationc@sLeZdZdZejejddddZe j ddej ej ddd Z d S) IValidationRImplement this interface in order for the construct to be able to validate itself._IValidationProxyrcCstSr.)r}rrrrrV%sz IValidation.__jsii_proxy_class__validatercCsdS)1Validate the current construct. This method can be implemented by derived constructs in order to perform validation logic. It is called on all constructs before synthesis. :return: An array of validation error messages, or an empty array if there the construct is valid. NrrBrrrr~)s zIValidation.validateN)rrrrr r\r r]rVrrListr r~rrrrr{!s  r{c@sFeZdZUdZdZejeed<e j ddej e jdddZ d S) r}r|rzr^r~rrcCsttjtjt|dgS)rr~r r rr r rr`rBrrrr~:s z_IValidationProxy.validateN)rrrrr^r rar rbrrrr r~rrrrr}5s  r}zconstructs.MetadataEntrydatatypetrace)rrrc@seZdZddejejejejejddddZ ej ejdddZ ej ejdd d Z ej ejej ejdd d Zejejd ddZejejd ddZedddZdS) MetadataEntryN)r)rrrrcCs"||d|_|dk r||jd<dS)a)An entry in the construct metadata table. :param data: The data. :param type: The metadata entry type. :param trace: Stack trace. Can be omitted by setting the context key ``ConstructMetadata.DISABLE_STACK_TRACE_IN_METADATA`` to 1. Default: - no trace information )rrNrr$)r&rrrrrrr'Ls zMetadataEntry.__init__rcCs*|jd}|dk stdttj|S)z The data.rNz#Required property 'data' is missing)r%r(rQr r rEr*rrrr`s zMetadataEntry.datacCs*|jd}|dk stdttj|S)zThe metadata entry type.rNz#Required property 'type' is missingr%r(rQr r r r r*rrrrgs zMetadataEntry.typecCs&|jd}ttjtjtj|S)zStack trace. Can be omitted by setting the context key ``ConstructMetadata.DISABLE_STACK_TRACE_IN_METADATA`` to 1. :default: - no trace information r)r%r(r r r)rr r r*rrrrns zMetadataEntry.tracer,cCst||jo|j|jkSr.r/r2rrrr3zszMetadataEntry.__eq__cCs ||k Sr.rr2rrrr4}szMetadataEntry.__ne__cCsdddd|jDS)NzMetadataEntry(%s)r5css"|]\}}|dt|VqdSr6r8r:rrrr>sz)MetadataEntry.__repr__..r?rBrrrrCs zMetadataEntry.__repr__)rrrr rEr r r)Sequencer'rDrrrrrFr3r4rCrrrrrFs    rc@sZeZdZdZdeejddddZej ddej edd d d Z ej d dedd ddZ ej ddejddddZ ej ddejddddZej dddsejejejddddZej ddeddddZej ddejddd d!Zej d"dedd#d$d%Zej d&ddtejeejed'd(d)Zej d*dejed+d,d-Zej d.ddd/d0d1Zej d2dejejdd3d4d5Zej d6dddd7ejejejejejfejejdd8d9d:Z ej d;dejejed+ddejejd?d@dAZ"ej dBdejejdCdDdEZ#ej dFdejdGd/dHdIZ$ej%j&ej dJdejd/dKdLZ'ej(ej dMdejd/dNdOZ)ej(ej dPdejed/dQdRZ*ej(ej dSdeje+d/dTdUZ,ej(ej dVdejd/dWdXZ-ej(ej dYdejd/dZd[Z.ej(ej d\deje/d/d]d^Z0ej(ej d_dejd/d`daZ1ej(ej dbded/dcddZ2ej(ej dedejed/dfdgZ3ej(ej dhdejd/didjZ4ej(ej dkdejed/dldmZ5ej(ej dndejed/dodpZ6e6j7ejeddqdrdpZ6dS)urkz0Represents the construct node in the scope tree.rjNrlcCstt||||gdS)zM :param host: - :param scope: - :param id: - N)rcreaterkrqrrrr'sz Node.__init__ofr) constructrcCstdt|d|gS)z`Returns the node associated with a construct. :param construct: the construct. rkr)r r rZsinvoke)rrrrrrszNode.of addDependency) dependenciesrcGstdt|d|S)zAdd an ordering dependency on another Construct. All constructs in the dependency's scope will be deployed before any construct in this construct's scope. :param dependencies: - Nrr_)r&rrrradd_dependencys zNode.add_dependencyaddError)messagercCstdt|d|gS)zAdds an { "error": } metadata entry to this construct. The toolkit will fail synthesis when errors are reported. :param message: The error message. Nrr_r&rrrr add_errorszNode.add_erroraddInfocCstdt|d|gS)zAdds a { "info": } metadata entry to this construct. The toolkit will display the info message when apps are synthesized. :param message: The info message. Nrr_rrrradd_infosz Node.add_info addMetadata)rr from_functionrc Cstdt|d|||gS)aoAdds a metadata entry to this construct. Entries are arbitrary values and will also include a stack trace to allow tracing back to the code location for when the entry was added. It can be used, for example, to include source mapping in CloudFormation templates to improve diagnostics. :param type: a string denoting the type of metadata. :param data: the value of the metadata (can be a Token). If null/undefined, metadata will not be added. :param from_function: a function under which to restrict the metadata entry's stack trace (defaults to this.addMetadata). Nrr_)r&rrrrrr add_metadataszNode.add_metadata addValidation) validationrcCstdt|d|gS)zAdds a validation to this construct. When ``node.validate()`` is called, the ``validate()`` method will be called on all validations and all errors will be returned. :param validation: - Nrr_)r&rrrradd_validations zNode.add_validation addWarningcCstdt|d|gS)zAdds a { "warning": } metadata entry to this construct. The toolkit will display the warning when an app is synthesized, or fail if run in --strict mode. :param message: The warning message. Nrr_rrrr add_warnings zNode.add_warning applyAspect)aspectrcCstdt|d|gS)zNApplies the aspect to this Constructs node. :param aspect: - Nrr_)r&rrrr apply_aspectszNode.apply_aspectfindAll)orderrcCsttjtt|d|gS)zcReturn this construct and all of its children in the given order. :param order: - r)r r rrNrr`)r&rrrrfind_alls z Node.find_all findChild)rorcCsttt|d|gS)zReturn a direct child by id. Throws an error if the child is not found. :param id: Identifier of direct child. :return: Child with the given id. r)r r rNrr`r&rorrr find_childs zNode.find_childpreparercCstdt|dgS)zYInvokes "prepare" on all constructs (depth-first, post-order) in the tree under ``node``.Nrr_rBrrrrsz Node.prepare setContext)keyvaluerc Cstdt|d||gS)a5This can be used to set contextual values. Context must be set before any children are added, since children may consult context info during construction. If the key already exists, it will be overridden. :param key: The context key. :param value: The context value. Nrr_)r&rrrrr set_contexts zNode.set_context synthesizesession_contextskip_validationrwrrrcCs&t|||d}tdt|d|gS)aSynthesizes a CloudAssembly from a construct tree. :param outdir: The output directory into which to synthesize the cloud assembly. Default: - creates a temporary directory :param session_context: Additional context passed into the synthesis session object when ``construct.synth`` is called. Default: - no additional context is passed to ``onSynthesize`` :param skip_validation: Whether synthesis should skip the validation phase. Default: false rwrrNr)SynthesisOptionsr r rr`)r&rwrroptionsrrrrs zNode.synthesize tryFindChildcCsttjtt|d|gS)zReturn a direct child by id, or undefined. :param id: Identifier of direct child. :return: the child if found, or undefined r)r r r)rNrr`rrrrtry_find_child(szNode.try_find_child tryGetContext)rrcCsttjt|d|gS)aRetrieves a value from tree context. Context is usually initialized at the root, but can be overridden at any point in the tree. :param key: The context key. :return: The context value or ``undefined`` if there is no context value for thie key. r)r r rErr`)r&rrrrtry_get_context2s zNode.try_get_contexttryRemoveChild) child_namercCsttjt|d|gS)z(experimental) Remove the child with the given name, if present. :param child_name: - :return: Whether a child with the given name was deleted. :stability: experimental r)r r r rFrr`)r&rrrrtry_remove_child>s zNode.try_remove_childr~ValidationErrorcCsttjdt|dgS)zValidates tree (depth-first, pre-order) and returns the list of all errors. An empty list indicates that there are no errors. rr~)r r rrr`rBrrrr~Jsz Node.validatePATH_SEPcCsttjt|dS)z4Separator used to delimit construct path components.rr rrrrrRsz Node.PATH_SEPaddrcCsttjt|dS)aReturns an opaque tree-unique address for this construct. Addresses are 42 characters hexadecimal strings. They begin with "c8" followed by 40 lowercase hexadecimal characters (0-9a-f). Addresses are calculated using a SHA-1 of the components of the construct path. To enable refactorings of construct trees, constructs with the ID ``Default`` will be excluded from the calculation. In those cases constructs in the same tree may have the same addreess. Example:: # Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826 c83a2846e506bcc5f10682b564084bca2d275709ee rryrBrrrrXsz Node.addrchildrencCsttjtt|dS)z&All direct children of this construct.rr r rrNrr(rBrrrrnsz Node.childrenrcCsttjtt|dS)zGReturn all dependencies registered on this node or any of its children.r)r r rrMrr(rBrrrrtszNode.dependenciesrocCsttjt|dS)zThe id of this construct within the current scope. This is a a scope-unique id. To obtain an app-unique id for this construct, use ``uniqueId``. roryrBrrrrozszNode.idlockedcCsttjt|dS)zOReturns true if this construct or the scopes in which it is defined are locked.r)r r r rFrr(rBrrrrsz Node.lockedmetadatacCsttjtt|dS)zAn immutable array of metadata objects associated with this construct. This can be used, for example, to implement support for deprecation notices, source mapping, etc. r)r r rrrr(rBrrrrsz Node.metadatapathcCsttjt|dS)ziThe full, absolute path of this construct in the tree. Components are separated by '/'. rryrBrrrrsz Node.pathrootcCsttt|dS)zbReturns the root of the construct tree. :return: The root of the construct tree. r)r r rNrr(rBrrrrsz Node.rootscopescCsttjtt|dS)zAll parent scopes of this construct. :return: a list of parent scopes. The last element in the list will always be the current construct and the first element will be the root of the tree. rrrBrrrrs z Node.scopesuniqueIdcCsttjt|dS)a(deprecated) A tree-global unique alphanumeric identifier for this construct. Includes all components of the tree. :deprecated: please avoid using this property and use ``addr`` to form unique names. This algorithm uses MD5, which is not FIPS-complient and also excludes the identity of the root construct from the calculation. :stability: deprecated rryrBrrr unique_idszNode.unique_idrncCsttjtt|dS)zReturns the scope in which this construct is defined. The value is ``undefined`` at the root of the construct scope tree. rnr r r)rNrr(rBrrrrnsz Node.scope defaultChildcCsttjtt|dS)aReturns the child construct that has the id ``Default`` or ``Resource"``. This is usually the construct that provides the bulk of the underlying functionality. Useful for modifications of the underlying construct that are not available at the higher levels. Override the defaultChild property. This should only be used in the cases where the correct default child is not named 'Resource' or 'Default' as it should be. If you set this to undefined, the default behavior of finding the child named 'Resource' or 'Default' will be used. :return: a construct or undefined if there is no default child :throws: if there is more than one child rrrBrrr default_childszNode.default_child)rrcCst|d|dS)Nr)rset)r&rrrrrs)N)N)8rrrrrNr r r'rr classmethodrrrrr rErr{rrrSrr)rGrrrrrMappingrFrrrrr~rrrrDrrrMrrorrrrrrrrnrsetterrrrrrks                                rkzconstructs.Nodezconstructs.SynthesisOptionsrwZsessionContextZskipValidationrc@seZdZdddejejejejejfejej ddddZ ej ejdddZ ej ejejejejfdd d Z ej ejej dd d Zejej d ddZejej d ddZedddZdS)rNrrcCs2d|i|_|dk r||jd<|dk r.||jd<dS)aOptions for synthesis. :param outdir: The output directory into which to synthesize the cloud assembly. Default: - creates a temporary directory :param session_context: Additional context passed into the synthesis session object when ``construct.synth`` is called. Default: - no additional context is passed to ``onSynthesize`` :param skip_validation: Whether synthesis should skip the validation phase. Default: false rwNrrr$)r&rwrrrrrr's zSynthesisOptions.__init__rcCs*|jd}|dk stdttj|S)z}The output directory into which to synthesize the cloud assembly. :default: - creates a temporary directory rwNz%Required property 'outdir' is missingrr*rrrrws zSynthesisOptions.outdircCs,|jd}ttjtjtjtjf|S)zAdditional context passed into the synthesis session object when ``construct.synth`` is called. :default: - no additional context is passed to ``onSynthesize`` r) r%r(r r r)rr r rEr*rrrrs z SynthesisOptions.session_contextcCs |jd}ttjtj|S)zUWhether synthesis should skip the validation phase. :default: false r)r%r(r r r)r rFr*rrrrs z SynthesisOptions.skip_validationr,cCst||jo|j|jkSr.r/r2rrrr3$szSynthesisOptions.__eq__cCs ||k Sr.rr2rrrr4'szSynthesisOptions.__ne__cCsdddd|jDS)NzSynthesisOptions(%s)r5css"|]\}}|dt|VqdSr6r8r:rrrr>+sz,SynthesisOptions.__repr__..r?rBrrrrC*s zSynthesisOptions.__repr__)rrrr r r r)rrErFr'rDrwrrr3r4rCrrrrrs$    rzconstructs.ValidationErrorrrrJc@seZdZejdddddZejejdddZejddd d Ze j ej d d d Z e j ej d ddZ edddZdS)rrjN)rrJrcCs||d|_dS)zAn error returned during the validation phase. :param message: The error message. :param source: The construct which emitted the error. rNr$)r&rrJrrrr'6szValidationError.__init__rcCs*|jd}|dk stdttj|S)zThe error message.rNz&Required property 'message' is missingrr*rrrrAs zValidationError.messagecCs(|jd}|dk stdtd|S)z&The construct which emitted the error.rJNrOrjrPr*rrrrJHs zValidationError.sourcer,cCst||jo|j|jkSr.r/r2rrrr3OszValidationError.__eq__cCs ||k Sr.rr2rrrr4RszValidationError.__ne__cCsdddd|jDS)NzValidationError(%s)r5css"|]\}}|dt|VqdSr6r8r:rrrr>Vsz+ValidationError.__repr__..r?rBrrrrCUs zValidationError.__repr__)rrrr r r'rDrrJr rErFr3r4rCrrrrr0s rc@seZdZdZdddejejeddddZ e j dddd d d Z e j d de dd ddZe j ddejejd ddZe j ddejd ddZdS)rjzRepresents the building block of the construct graph. All constructs besides the root construct must be created within the scope of another construct. Nr")rnror rcCs"t|d}tt||||gdS)aCreates a new construct node. :param scope: The scope in which to define this construct. :param id: The scoped construct ID. Must be unique amongst siblings. If the ID includes a path separator (``/``), then it will be replaced by double dash ``--``. :param node_factory: A factory for attaching ``Node``s to the construct. Default: - the default ``Node`` is associated r"N)r!rrrj)r&rnror rrrrr'cs zConstruct.__init__ onPreparerrcCstdt|dgS)afPerform final modifications before synthesis. This method can be implemented by derived constructs in order to perform final changes before synthesis. prepare() will be called after child constructs have been prepared. This is an advanced framework feature. Only use this if you understand the implications. Nrr_rBrrr _on_preparets zConstruct._on_prepare onSynthesize)sessionrcCstdt|d|gS)a4Allows this construct to emit artifacts into the cloud assembly during synthesis. This method is usually implemented by framework-level constructs such as ``Stack`` and ``Asset`` as they participate in synthesizing the cloud assembly. :param session: The synthesis session. Nrr_)r&rrrr_on_synthesizes zConstruct._on_synthesize onValidatecCsttjtjt|dgS)a(deprecated) Validate the current construct. This method can be implemented by derived constructs in order to perform validation logic. It is called on all constructs before synthesis. :return: An array of validation error messages, or an empty array if there the construct is valid. :deprecated: use ``Node.addValidation()`` to subscribe validation functions on this construct instead of overriding this method. :stability: deprecated rrrBrrr _on_validateszConstruct._on_validatetoStringcCsttjt|dgS)z2Returns a string representation of this construct.r)r r r r rr`rBrrr to_stringszConstruct.to_string)rrrrr r r r)r#r'rrrrtrrrrrrrrrj[s       rjzconstructs.Construct)%rabcr datetimeenumr rZ publicationZtyping_extensionsZ_jsiiZJSIIMetarZ data_typer!EnumrGrMZ interfaceProtocolrSrUrNrer#rhrtrvr{r}rrkrrZ implementsrj__all__publishrrrrs   &      ;c @&I