Class CfnConfig


  • public final class CfnConfig
    extends software.amazon.smithy.jsonschema.JsonSchemaConfig
    "cloudformation" smithy-build plugin configuration settings.
    • Nested Class Summary

      • Nested classes/interfaces inherited from class software.amazon.smithy.jsonschema.JsonSchemaConfig

        software.amazon.smithy.jsonschema.JsonSchemaConfig.MapStrategy, software.amazon.smithy.jsonschema.JsonSchemaConfig.UnionStrategy
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String SCHEMA_COMPONENTS_POINTER
      The JSON pointer to where CloudFormation schema shared resource properties should be written.
    • Constructor Summary

      Constructors 
      Constructor Description
      CfnConfig()  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static CfnConfig fromNode​(software.amazon.smithy.model.node.Node settings)
      Creates a CfnConfig from a Node value.
      boolean getDisableCapitalizedProperties()  
      boolean getDisableDeprecatedPropertyGeneration()  
      boolean getDisableHandlerPermissionGeneration()  
      boolean getDisableRequiredPropertyGeneration()  
      java.util.List<java.lang.String> getExternalDocs()  
      java.util.Map<software.amazon.smithy.model.shapes.ShapeId,​java.util.Map<java.lang.String,​software.amazon.smithy.model.node.Node>> getJsonAdd()  
      java.lang.String getOrganizationName()  
      java.lang.String getServiceName()  
      java.util.List<java.lang.String> getSourceDocs()  
      void setAlphanumericOnlyRefs​(boolean alphanumericOnlyRefs)  
      void setDisableCapitalizedProperties​(boolean disableCapitalizedProperties)
      Set to true to disable automatically capitalizing names of properties of Resource Schemas.
      void setDisableDeprecatedPropertyGeneration​(boolean disableDeprecatedPropertyGeneration)
      Set to true to disable generating deprecatedProperties for Resource Schemas.
      void setDisableHandlerPermissionGeneration​(boolean disableHandlerPermissionGeneration)
      Set to true to disable generating handler property's permissions lists for Resource Schemas.
      void setDisableRequiredPropertyGeneration​(boolean disableRequiredPropertyGeneration)
      Set to true to disable generating required for Resource Schemas.
      void setExternalDocs​(java.util.List<java.lang.String> externalDocs)
      Limits the source of converted "externalDocs" fields to the specified priority ordered list of names in an externalDocumentation trait.
      void setJsonAdd​(java.util.Map<software.amazon.smithy.model.shapes.ShapeId,​java.util.Map<java.lang.String,​software.amazon.smithy.model.node.Node>> jsonAdd)
      Adds or replaces the JSON value in the generated resource schema document at the given JSON pointer locations with a different JSON value.
      void setMapStrategy​(software.amazon.smithy.jsonschema.JsonSchemaConfig.MapStrategy mapStrategy)  
      void setOrganizationName​(java.lang.String organizationName)
      Sets the "Organization" component for each of the generated resource's type name.
      void setServiceName​(java.lang.String serviceName)
      Sets the "Service" component for each of the generated resource's type name.
      void setSourceDocs​(java.util.List<java.lang.String> sourceDocs)
      Limits the source of converted "sourceDocs" fields to the specified priority ordered list of names in an externalDocumentation trait.
      void setUnionStrategy​(software.amazon.smithy.jsonschema.JsonSchemaConfig.UnionStrategy unionStrategy)  
      void setUseJsonName​(boolean useJsonName)  
      • Methods inherited from class software.amazon.smithy.jsonschema.JsonSchemaConfig

        detectJsonTimestampFormat, getAlphanumericOnlyRefs, getDefaultTimestampFormat, getDefinitionPointer, getDisableFeatures, getExtensions, getExtensions, getMapStrategy, getSchemaDocumentExtensions, getService, getSupportNonNumericFloats, getUnionStrategy, getUseJsonName, isEnableOutOfServiceReferences, putExtension, putExtension, putExtension, putExtensions, setDefaultTimestampFormat, setDefinitionPointer, setDisableFeatures, setEnableOutOfServiceReferences, setExtensions, setSchemaDocumentExtensions, setService, setSupportNonNumericFloats
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • SCHEMA_COMPONENTS_POINTER

        public static final java.lang.String SCHEMA_COMPONENTS_POINTER
        The JSON pointer to where CloudFormation schema shared resource properties should be written.
        See Also:
        Constant Field Values
    • Constructor Detail

      • CfnConfig

        public CfnConfig()
    • Method Detail

      • setAlphanumericOnlyRefs

        public void setAlphanumericOnlyRefs​(boolean alphanumericOnlyRefs)
        Overrides:
        setAlphanumericOnlyRefs in class software.amazon.smithy.jsonschema.JsonSchemaConfig
      • getDisableHandlerPermissionGeneration

        public boolean getDisableHandlerPermissionGeneration()
      • setDisableHandlerPermissionGeneration

        public void setDisableHandlerPermissionGeneration​(boolean disableHandlerPermissionGeneration)
        Set to true to disable generating handler property's permissions lists for Resource Schemas.

        By default, handler permissions are automatically added to the handler property's permissions list. This includes the lifecycle operation used and any permissions listed in the aws.iam#requiredActions trait.

        Parameters:
        disableHandlerPermissionGeneration - True to disable handler permissions generation
      • getDisableDeprecatedPropertyGeneration

        public boolean getDisableDeprecatedPropertyGeneration()
      • setDisableDeprecatedPropertyGeneration

        public void setDisableDeprecatedPropertyGeneration​(boolean disableDeprecatedPropertyGeneration)
        Set to true to disable generating deprecatedProperties for Resource Schemas.

        By default, deprecated members are automatically added to the deprecatedProperties schema property.

        Parameters:
        disableDeprecatedPropertyGeneration - True to disable deprecatedProperties generation, false otherwise.
      • getDisableRequiredPropertyGeneration

        public boolean getDisableRequiredPropertyGeneration()
      • setDisableRequiredPropertyGeneration

        public void setDisableRequiredPropertyGeneration​(boolean disableRequiredPropertyGeneration)
        Set to true to disable generating required for Resource Schemas.

        By default, required members are automatically added to the required schema property.

        Parameters:
        disableRequiredPropertyGeneration - True to disable required generation, false otherwise.
      • getDisableCapitalizedProperties

        public boolean getDisableCapitalizedProperties()
      • setDisableCapitalizedProperties

        public void setDisableCapitalizedProperties​(boolean disableCapitalizedProperties)
        Set to true to disable automatically capitalizing names of properties of Resource Schemas.

        By default, property names of Resource Schemas are capitalized if no cfnName trait is applied.

        Parameters:
        disableCapitalizedProperties - True to disable capitalizing property names, false otherwise.
      • getExternalDocs

        public java.util.List<java.lang.String> getExternalDocs()
      • setExternalDocs

        public void setExternalDocs​(java.util.List<java.lang.String> externalDocs)
        Limits the source of converted "externalDocs" fields to the specified priority ordered list of names in an externalDocumentation trait.

        This list is case insensitive. By default, this is a list of the following values: "Documentation Url", "DocumentationUrl", "API Reference", "User Guide", "Developer Guide", "Reference", and "Guide".

        Parameters:
        externalDocs - External docs to look for and convert, in order.
      • getJsonAdd

        public java.util.Map<software.amazon.smithy.model.shapes.ShapeId,​java.util.Map<java.lang.String,​software.amazon.smithy.model.node.Node>> getJsonAdd()
      • setJsonAdd

        public void setJsonAdd​(java.util.Map<software.amazon.smithy.model.shapes.ShapeId,​java.util.Map<java.lang.String,​software.amazon.smithy.model.node.Node>> jsonAdd)
        Adds or replaces the JSON value in the generated resource schema document at the given JSON pointer locations with a different JSON value.

        The value must be a map where each key is a resource shape ID. The value is a map where each key is a valid JSON pointer string as defined in RFC 6901. Each value in the nested map is the JSON value to add or replace at the given target.

        Values are added using similar semantics of the "add" operation of JSON Patch, as specified in RFC 6902, with the exception that adding properties to an undefined object will create nested objects in the result as needed.

        Parameters:
        jsonAdd - Map of JSON path to values to patch in.
      • setUseJsonName

        public void setUseJsonName​(boolean useJsonName)
        Overrides:
        setUseJsonName in class software.amazon.smithy.jsonschema.JsonSchemaConfig
      • setMapStrategy

        public void setMapStrategy​(software.amazon.smithy.jsonschema.JsonSchemaConfig.MapStrategy mapStrategy)
        Overrides:
        setMapStrategy in class software.amazon.smithy.jsonschema.JsonSchemaConfig
      • getOrganizationName

        public java.lang.String getOrganizationName()
      • setOrganizationName

        public void setOrganizationName​(java.lang.String organizationName)
        Sets the "Organization" component for each of the generated resource's type name.

        This value defaults to "AWS" if the aws.api#service trait is present. Otherwise, the value is required configuration.

        Parameters:
        organizationName - Name to use for the "Organization" component of resource type names.
        See Also:
        Type Name
      • getServiceName

        public java.lang.String getServiceName()
      • setServiceName

        public void setServiceName​(java.lang.String serviceName)
        Sets the "Service" component for each of the generated resource's type name.

        This value defaults to the value of the aws.api#service/cloudFormationName if the trait is present. Otherwise, the value defaults to the shape name of the specified service shape.

        Parameters:
        serviceName - Name to use for the "Service" component of resource type names.
        See Also:
        Type Name
      • getSourceDocs

        public java.util.List<java.lang.String> getSourceDocs()
      • setSourceDocs

        public void setSourceDocs​(java.util.List<java.lang.String> sourceDocs)
        Limits the source of converted "sourceDocs" fields to the specified priority ordered list of names in an externalDocumentation trait.

        This list is case insensitive. By default, this is a list of the following values: "Source Url", "SourceUrl", "Source", and "Source Code".

        Parameters:
        sourceDocs - Source docs to look for and convert, in order.
      • setUnionStrategy

        public void setUnionStrategy​(software.amazon.smithy.jsonschema.JsonSchemaConfig.UnionStrategy unionStrategy)
        Overrides:
        setUnionStrategy in class software.amazon.smithy.jsonschema.JsonSchemaConfig
      • fromNode

        public static CfnConfig fromNode​(software.amazon.smithy.model.node.Node settings)
        Creates a CfnConfig from a Node value.

        This method uses the NodeMapper on the converted input object. Note that this class can be deserialized using a NodeMapper too since the NodeMapper will look for a static, public, fromNode method.

        This method also serializes unknown properties into the "extensions" map so that they are accessible to CfnMapper implementations.

        Parameters:
        settings - Input to deserialize.
        Returns:
        Returns the deserialized