├── .gitignore ├── README.md ├── appveyor.yml ├── codegen.ps1 ├── img ├── humidifier.png └── humidifier.svg ├── install-templates.ps1 ├── license.txt ├── new-solution-test.ps1 ├── publish-template-nuget.ps1 ├── src ├── Humidifier.CodeGen │ ├── Humidifier.CodeGen.csproj │ ├── Humidifier.CodeGen.csproj.DotSettings │ ├── Program.cs │ ├── Properties │ │ └── launchSettings.json │ ├── Specification.cs │ └── Specification.json ├── Humidifier.ConsoleTest │ ├── Humidifier.ConsoleTest.csproj │ └── Program.cs ├── Humidifier.Json │ ├── ConditionConverter.cs │ ├── FnAndConverter.cs │ ├── FnBase64Converter.cs │ ├── FnCidrConvertor.cs │ ├── FnEqualsConverter.cs │ ├── FnFindInMapConverter.cs │ ├── FnGetAZsConverter.cs │ ├── FnGetAttConverter.cs │ ├── FnIfConverter.cs │ ├── FnImportValueConverter.cs │ ├── FnJoinConverter.cs │ ├── FnNotConverter.cs │ ├── FnOrConverter.cs │ ├── FnRefConverter.cs │ ├── FnSelectConverter.cs │ ├── FnSplitConverter.cs │ ├── FnSubConverter.cs │ ├── Humidifier.Json.csproj │ └── JsonStackSerializer.cs ├── Humidifier.sln ├── Humidifier │ ├── ACMPCA │ │ ├── Certificate.cs │ │ ├── CertificateAuthority.cs │ │ └── CertificateAuthorityActivation.cs │ ├── ASK │ │ └── Skill.cs │ ├── AccessAnalyzer │ │ └── Analyzer.cs │ ├── AmazonMQ │ │ ├── Broker.cs │ │ ├── Configuration.cs │ │ └── ConfigurationAssociation.cs │ ├── Amplify │ │ ├── App.cs │ │ ├── Branch.cs │ │ └── Domain.cs │ ├── ApiGateway │ │ ├── Account.cs │ │ ├── ApiKey.cs │ │ ├── Authorizer.cs │ │ ├── BasePathMapping.cs │ │ ├── ClientCertificate.cs │ │ ├── Deployment.cs │ │ ├── DocumentationPart.cs │ │ ├── DocumentationVersion.cs │ │ ├── DomainName.cs │ │ ├── GatewayResponse.cs │ │ ├── Method.cs │ │ ├── Model.cs │ │ ├── RequestValidator.cs │ │ ├── Resource.cs │ │ ├── RestApi.cs │ │ ├── Stage.cs │ │ ├── UsagePlan.cs │ │ ├── UsagePlanKey.cs │ │ └── VpcLink.cs │ ├── ApiGatewayV2 │ │ ├── Api.cs │ │ ├── ApiMapping.cs │ │ ├── Authorizer.cs │ │ ├── Deployment.cs │ │ ├── DomainName.cs │ │ ├── Integration.cs │ │ ├── IntegrationResponse.cs │ │ ├── Model.cs │ │ ├── Route.cs │ │ ├── RouteResponse.cs │ │ └── Stage.cs │ ├── AppConfig │ │ ├── Application.cs │ │ ├── ConfigurationProfile.cs │ │ ├── Deployment.cs │ │ ├── DeploymentStrategy.cs │ │ └── Environment.cs │ ├── AppMesh │ │ ├── Mesh.cs │ │ ├── Route.cs │ │ ├── VirtualNode.cs │ │ ├── VirtualRouter.cs │ │ └── VirtualService.cs │ ├── AppStream │ │ ├── DirectoryConfig.cs │ │ ├── Fleet.cs │ │ ├── ImageBuilder.cs │ │ ├── Stack.cs │ │ ├── StackFleetAssociation.cs │ │ ├── StackUserAssociation.cs │ │ └── User.cs │ ├── AppSync │ │ ├── ApiCache.cs │ │ ├── ApiKey.cs │ │ ├── DataSource.cs │ │ ├── FunctionConfiguration.cs │ │ ├── GraphQLApi.cs │ │ ├── GraphQLSchema.cs │ │ └── Resolver.cs │ ├── ApplicationAutoScaling │ │ ├── ScalableTarget.cs │ │ └── ScalingPolicy.cs │ ├── Athena │ │ ├── NamedQuery.cs │ │ └── WorkGroup.cs │ ├── AutoScaling │ │ ├── AutoScalingGroup.cs │ │ ├── LaunchConfiguration.cs │ │ ├── LifecycleHook.cs │ │ ├── ScalingPolicy.cs │ │ └── ScheduledAction.cs │ ├── AutoScalingPlans │ │ └── ScalingPlan.cs │ ├── Backup │ │ ├── BackupPlan.cs │ │ ├── BackupSelection.cs │ │ └── BackupVault.cs │ ├── Batch │ │ ├── ComputeEnvironment.cs │ │ ├── JobDefinition.cs │ │ └── JobQueue.cs │ ├── Budgets │ │ └── Budget.cs │ ├── Cassandra │ │ ├── Keyspace.cs │ │ └── Table.cs │ ├── CertificateManager │ │ └── Certificate.cs │ ├── Chatbot │ │ └── SlackChannelConfiguration.cs │ ├── Cloud9 │ │ └── EnvironmentEC2.cs │ ├── CloudFormation │ │ ├── CustomResource.cs │ │ ├── Macro.cs │ │ ├── Stack.cs │ │ ├── WaitCondition.cs │ │ └── WaitConditionHandle.cs │ ├── CloudFront │ │ ├── CloudFrontOriginAccessIdentity.cs │ │ ├── Distribution.cs │ │ └── StreamingDistribution.cs │ ├── CloudTrail │ │ └── Trail.cs │ ├── CloudWatch │ │ ├── Alarm.cs │ │ ├── AnomalyDetector.cs │ │ ├── CompositeAlarm.cs │ │ ├── Dashboard.cs │ │ └── InsightRule.cs │ ├── CodeBuild │ │ ├── Project.cs │ │ ├── ReportGroup.cs │ │ └── SourceCredential.cs │ ├── CodeCommit │ │ └── Repository.cs │ ├── CodeDeploy │ │ ├── Application.cs │ │ ├── DeploymentConfig.cs │ │ └── DeploymentGroup.cs │ ├── CodePipeline │ │ ├── CustomActionType.cs │ │ ├── Pipeline.cs │ │ └── Webhook.cs │ ├── CodeStar │ │ └── GitHubRepository.cs │ ├── CodeStarConnections │ │ └── Connection.cs │ ├── CodeStarNotifications │ │ └── NotificationRule.cs │ ├── Cognito │ │ ├── IdentityPool.cs │ │ ├── IdentityPoolRoleAttachment.cs │ │ ├── UserPool.cs │ │ ├── UserPoolClient.cs │ │ ├── UserPoolDomain.cs │ │ ├── UserPoolGroup.cs │ │ ├── UserPoolIdentityProvider.cs │ │ ├── UserPoolResourceServer.cs │ │ ├── UserPoolRiskConfigurationAttachment.cs │ │ ├── UserPoolUICustomizationAttachment.cs │ │ ├── UserPoolUser.cs │ │ └── UserPoolUserToGroupAttachment.cs │ ├── Condition.cs │ ├── Config │ │ ├── AggregationAuthorization.cs │ │ ├── ConfigRule.cs │ │ ├── ConfigurationAggregator.cs │ │ ├── ConfigurationRecorder.cs │ │ ├── ConformancePack.cs │ │ ├── DeliveryChannel.cs │ │ ├── OrganizationConfigRule.cs │ │ ├── OrganizationConformancePack.cs │ │ └── RemediationConfiguration.cs │ ├── CreationPolicy.cs │ ├── DAX │ │ ├── Cluster.cs │ │ ├── ParameterGroup.cs │ │ └── SubnetGroup.cs │ ├── DLM │ │ └── LifecyclePolicy.cs │ ├── DMS │ │ ├── Certificate.cs │ │ ├── Endpoint.cs │ │ ├── EventSubscription.cs │ │ ├── ReplicationInstance.cs │ │ ├── ReplicationSubnetGroup.cs │ │ └── ReplicationTask.cs │ ├── DataPipeline │ │ └── Pipeline.cs │ ├── DeletionPolicy.cs │ ├── DirectoryService │ │ ├── MicrosoftAD.cs │ │ └── SimpleAD.cs │ ├── DocDB │ │ ├── DBCluster.cs │ │ ├── DBClusterParameterGroup.cs │ │ ├── DBInstance.cs │ │ └── DBSubnetGroup.cs │ ├── DynamoDB │ │ └── Table.cs │ ├── EC2 │ │ ├── CapacityReservation.cs │ │ ├── ClientVpnAuthorizationRule.cs │ │ ├── ClientVpnEndpoint.cs │ │ ├── ClientVpnRoute.cs │ │ ├── ClientVpnTargetNetworkAssociation.cs │ │ ├── CustomerGateway.cs │ │ ├── DHCPOptions.cs │ │ ├── EC2Fleet.cs │ │ ├── EIP.cs │ │ ├── EIPAssociation.cs │ │ ├── EgressOnlyInternetGateway.cs │ │ ├── FlowLog.cs │ │ ├── GatewayRouteTableAssociation.cs │ │ ├── Host.cs │ │ ├── Instance.cs │ │ ├── InternetGateway.cs │ │ ├── LaunchTemplate.cs │ │ ├── LocalGatewayRoute.cs │ │ ├── LocalGatewayRouteTableVPCAssociation.cs │ │ ├── NatGateway.cs │ │ ├── NetworkAcl.cs │ │ ├── NetworkAclEntry.cs │ │ ├── NetworkInterface.cs │ │ ├── NetworkInterfaceAttachment.cs │ │ ├── NetworkInterfacePermission.cs │ │ ├── PlacementGroup.cs │ │ ├── Route.cs │ │ ├── RouteTable.cs │ │ ├── SecurityGroup.cs │ │ ├── SecurityGroupEgress.cs │ │ ├── SecurityGroupIngress.cs │ │ ├── SpotFleet.cs │ │ ├── Subnet.cs │ │ ├── SubnetCidrBlock.cs │ │ ├── SubnetNetworkAclAssociation.cs │ │ ├── SubnetRouteTableAssociation.cs │ │ ├── TrafficMirrorFilter.cs │ │ ├── TrafficMirrorFilterRule.cs │ │ ├── TrafficMirrorSession.cs │ │ ├── TrafficMirrorTarget.cs │ │ ├── TransitGateway.cs │ │ ├── TransitGatewayAttachment.cs │ │ ├── TransitGatewayRoute.cs │ │ ├── TransitGatewayRouteTable.cs │ │ ├── TransitGatewayRouteTableAssociation.cs │ │ ├── TransitGatewayRouteTablePropagation.cs │ │ ├── VPC.cs │ │ ├── VPCCidrBlock.cs │ │ ├── VPCDHCPOptionsAssociation.cs │ │ ├── VPCEndpoint.cs │ │ ├── VPCEndpointConnectionNotification.cs │ │ ├── VPCEndpointService.cs │ │ ├── VPCEndpointServicePermissions.cs │ │ ├── VPCGatewayAttachment.cs │ │ ├── VPCPeeringConnection.cs │ │ ├── VPNConnection.cs │ │ ├── VPNConnectionRoute.cs │ │ ├── VPNGateway.cs │ │ ├── VPNGatewayRoutePropagation.cs │ │ ├── Volume.cs │ │ └── VolumeAttachment.cs │ ├── ECR │ │ └── Repository.cs │ ├── ECS │ │ ├── Cluster.cs │ │ ├── PrimaryTaskSet.cs │ │ ├── Service.cs │ │ ├── TaskDefinition.cs │ │ └── TaskSet.cs │ ├── EFS │ │ ├── FileSystem.cs │ │ └── MountTarget.cs │ ├── EKS │ │ ├── Cluster.cs │ │ └── Nodegroup.cs │ ├── EMR │ │ ├── Cluster.cs │ │ ├── InstanceFleetConfig.cs │ │ ├── InstanceGroupConfig.cs │ │ ├── SecurityConfiguration.cs │ │ └── Step.cs │ ├── ElastiCache │ │ ├── CacheCluster.cs │ │ ├── ParameterGroup.cs │ │ ├── ReplicationGroup.cs │ │ ├── SecurityGroup.cs │ │ ├── SecurityGroupIngress.cs │ │ └── SubnetGroup.cs │ ├── ElasticBeanstalk │ │ ├── Application.cs │ │ ├── ApplicationVersion.cs │ │ ├── ConfigurationTemplate.cs │ │ └── Environment.cs │ ├── ElasticLoadBalancing │ │ └── LoadBalancer.cs │ ├── ElasticLoadBalancingV2 │ │ ├── Listener.cs │ │ ├── ListenerCertificate.cs │ │ ├── ListenerRule.cs │ │ ├── LoadBalancer.cs │ │ └── TargetGroup.cs │ ├── Elasticsearch │ │ └── Domain.cs │ ├── EventSchemas │ │ ├── Discoverer.cs │ │ ├── Registry.cs │ │ └── Schema.cs │ ├── Events │ │ ├── EventBus.cs │ │ ├── EventBusPolicy.cs │ │ └── Rule.cs │ ├── FMS │ │ ├── NotificationChannel.cs │ │ └── Policy.cs │ ├── FSx │ │ └── FileSystem.cs │ ├── Fn.cs │ ├── GameLift │ │ ├── Alias.cs │ │ ├── Build.cs │ │ ├── Fleet.cs │ │ ├── GameSessionQueue.cs │ │ ├── MatchmakingConfiguration.cs │ │ ├── MatchmakingRuleSet.cs │ │ └── Script.cs │ ├── Glue │ │ ├── Classifier.cs │ │ ├── Connection.cs │ │ ├── Crawler.cs │ │ ├── DataCatalogEncryptionSettings.cs │ │ ├── Database.cs │ │ ├── DevEndpoint.cs │ │ ├── Job.cs │ │ ├── MLTransform.cs │ │ ├── Partition.cs │ │ ├── SecurityConfiguration.cs │ │ ├── Table.cs │ │ ├── Trigger.cs │ │ └── Workflow.cs │ ├── Greengrass │ │ ├── ConnectorDefinition.cs │ │ ├── ConnectorDefinitionVersion.cs │ │ ├── CoreDefinition.cs │ │ ├── CoreDefinitionVersion.cs │ │ ├── DeviceDefinition.cs │ │ ├── DeviceDefinitionVersion.cs │ │ ├── FunctionDefinition.cs │ │ ├── FunctionDefinitionVersion.cs │ │ ├── Group.cs │ │ ├── GroupVersion.cs │ │ ├── LoggerDefinition.cs │ │ ├── LoggerDefinitionVersion.cs │ │ ├── ResourceDefinition.cs │ │ ├── ResourceDefinitionVersion.cs │ │ ├── SubscriptionDefinition.cs │ │ └── SubscriptionDefinitionVersion.cs │ ├── GuardDuty │ │ ├── Detector.cs │ │ ├── Filter.cs │ │ ├── IPSet.cs │ │ ├── Master.cs │ │ ├── Member.cs │ │ └── ThreatIntelSet.cs │ ├── Humidifier.csproj │ ├── IAM │ │ ├── AccessKey.cs │ │ ├── Group.cs │ │ ├── InstanceProfile.cs │ │ ├── ManagedPolicy.cs │ │ ├── Policy.cs │ │ ├── Role.cs │ │ ├── ServiceLinkedRole.cs │ │ ├── User.cs │ │ └── UserToGroupAddition.cs │ ├── IStackSerializer.cs │ ├── Inspector │ │ ├── AssessmentTarget.cs │ │ ├── AssessmentTemplate.cs │ │ └── ResourceGroup.cs │ ├── IoT │ │ ├── Certificate.cs │ │ ├── Policy.cs │ │ ├── PolicyPrincipalAttachment.cs │ │ ├── Thing.cs │ │ ├── ThingPrincipalAttachment.cs │ │ └── TopicRule.cs │ ├── IoT1Click │ │ ├── Device.cs │ │ ├── Placement.cs │ │ └── Project.cs │ ├── IoTAnalytics │ │ ├── Channel.cs │ │ ├── Dataset.cs │ │ ├── Datastore.cs │ │ └── Pipeline.cs │ ├── IoTEvents │ │ ├── DetectorModel.cs │ │ └── Input.cs │ ├── IoTThingsGraph │ │ └── FlowTemplate.cs │ ├── KMS │ │ ├── Alias.cs │ │ └── Key.cs │ ├── Kinesis │ │ ├── Stream.cs │ │ └── StreamConsumer.cs │ ├── KinesisAnalytics │ │ ├── Application.cs │ │ ├── ApplicationOutput.cs │ │ └── ApplicationReferenceDataSource.cs │ ├── KinesisAnalyticsV2 │ │ ├── Application.cs │ │ ├── ApplicationCloudWatchLoggingOption.cs │ │ ├── ApplicationOutput.cs │ │ └── ApplicationReferenceDataSource.cs │ ├── KinesisFirehose │ │ └── DeliveryStream.cs │ ├── LakeFormation │ │ ├── DataLakeSettings.cs │ │ ├── Permissions.cs │ │ └── Resource.cs │ ├── Lambda │ │ ├── Alias.cs │ │ ├── EventInvokeConfig.cs │ │ ├── EventSourceMapping.cs │ │ ├── Function.cs │ │ ├── LayerVersion.cs │ │ ├── LayerVersionPermission.cs │ │ ├── Permission.cs │ │ └── Version.cs │ ├── Logs │ │ ├── Destination.cs │ │ ├── LogGroup.cs │ │ ├── LogStream.cs │ │ ├── MetricFilter.cs │ │ └── SubscriptionFilter.cs │ ├── MSK │ │ └── Cluster.cs │ ├── ManagedBlockchain │ │ ├── Member.cs │ │ └── Node.cs │ ├── Mapping.cs │ ├── MediaConvert │ │ ├── JobTemplate.cs │ │ ├── Preset.cs │ │ └── Queue.cs │ ├── MediaLive │ │ ├── Channel.cs │ │ ├── Input.cs │ │ └── InputSecurityGroup.cs │ ├── MediaStore │ │ └── Container.cs │ ├── Neptune │ │ ├── DBCluster.cs │ │ ├── DBClusterParameterGroup.cs │ │ ├── DBInstance.cs │ │ ├── DBParameterGroup.cs │ │ └── DBSubnetGroup.cs │ ├── OpsWorks │ │ ├── App.cs │ │ ├── ElasticLoadBalancerAttachment.cs │ │ ├── Instance.cs │ │ ├── Layer.cs │ │ ├── Stack.cs │ │ ├── UserProfile.cs │ │ └── Volume.cs │ ├── OpsWorksCM │ │ └── Server.cs │ ├── Output.cs │ ├── Parameter.cs │ ├── Pinpoint │ │ ├── ADMChannel.cs │ │ ├── APNSChannel.cs │ │ ├── APNSSandboxChannel.cs │ │ ├── APNSVoipChannel.cs │ │ ├── APNSVoipSandboxChannel.cs │ │ ├── App.cs │ │ ├── ApplicationSettings.cs │ │ ├── BaiduChannel.cs │ │ ├── Campaign.cs │ │ ├── EmailChannel.cs │ │ ├── EmailTemplate.cs │ │ ├── EventStream.cs │ │ ├── GCMChannel.cs │ │ ├── PushTemplate.cs │ │ ├── SMSChannel.cs │ │ ├── Segment.cs │ │ ├── SmsTemplate.cs │ │ └── VoiceChannel.cs │ ├── PinpointEmail │ │ ├── ConfigurationSet.cs │ │ ├── ConfigurationSetEventDestination.cs │ │ ├── DedicatedIpPool.cs │ │ └── Identity.cs │ ├── PolicyDocument.cs │ ├── QLDB │ │ └── Ledger.cs │ ├── RAM │ │ └── ResourceShare.cs │ ├── RDS │ │ ├── DBCluster.cs │ │ ├── DBClusterParameterGroup.cs │ │ ├── DBInstance.cs │ │ ├── DBParameterGroup.cs │ │ ├── DBSecurityGroup.cs │ │ ├── DBSecurityGroupIngress.cs │ │ ├── DBSubnetGroup.cs │ │ ├── EventSubscription.cs │ │ └── OptionGroup.cs │ ├── Redshift │ │ ├── Cluster.cs │ │ ├── ClusterParameterGroup.cs │ │ ├── ClusterSecurityGroup.cs │ │ ├── ClusterSecurityGroupIngress.cs │ │ └── ClusterSubnetGroup.cs │ ├── Resource.cs │ ├── RoboMaker │ │ ├── Fleet.cs │ │ ├── Robot.cs │ │ ├── RobotApplication.cs │ │ ├── RobotApplicationVersion.cs │ │ ├── SimulationApplication.cs │ │ └── SimulationApplicationVersion.cs │ ├── Route53 │ │ ├── HealthCheck.cs │ │ ├── HostedZone.cs │ │ ├── RecordSet.cs │ │ └── RecordSetGroup.cs │ ├── Route53Resolver │ │ ├── ResolverEndpoint.cs │ │ ├── ResolverRule.cs │ │ └── ResolverRuleAssociation.cs │ ├── S3 │ │ ├── AccessPoint.cs │ │ ├── Bucket.cs │ │ └── BucketPolicy.cs │ ├── SDB │ │ └── Domain.cs │ ├── SES │ │ ├── ConfigurationSet.cs │ │ ├── ConfigurationSetEventDestination.cs │ │ ├── ReceiptFilter.cs │ │ ├── ReceiptRule.cs │ │ ├── ReceiptRuleSet.cs │ │ └── Template.cs │ ├── SNS │ │ ├── Subscription.cs │ │ ├── Topic.cs │ │ └── TopicPolicy.cs │ ├── SQS │ │ ├── Queue.cs │ │ └── QueuePolicy.cs │ ├── SSM │ │ ├── Association.cs │ │ ├── Document.cs │ │ ├── MaintenanceWindow.cs │ │ ├── MaintenanceWindowTarget.cs │ │ ├── MaintenanceWindowTask.cs │ │ ├── Parameter.cs │ │ ├── PatchBaseline.cs │ │ └── ResourceDataSync.cs │ ├── SageMaker │ │ ├── CodeRepository.cs │ │ ├── Endpoint.cs │ │ ├── EndpointConfig.cs │ │ ├── Model.cs │ │ ├── NotebookInstance.cs │ │ ├── NotebookInstanceLifecycleConfig.cs │ │ └── Workteam.cs │ ├── SecretsManager │ │ ├── ResourcePolicy.cs │ │ ├── RotationSchedule.cs │ │ ├── Secret.cs │ │ └── SecretTargetAttachment.cs │ ├── SecurityHub │ │ └── Hub.cs │ ├── Serverless │ │ ├── Api.cs │ │ ├── Function.cs │ │ └── SimpleTable.cs │ ├── ServiceCatalog │ │ ├── AcceptedPortfolioShare.cs │ │ ├── CloudFormationProduct.cs │ │ ├── CloudFormationProvisionedProduct.cs │ │ ├── LaunchNotificationConstraint.cs │ │ ├── LaunchRoleConstraint.cs │ │ ├── LaunchTemplateConstraint.cs │ │ ├── Portfolio.cs │ │ ├── PortfolioPrincipalAssociation.cs │ │ ├── PortfolioProductAssociation.cs │ │ ├── PortfolioShare.cs │ │ ├── ResourceUpdateConstraint.cs │ │ ├── StackSetConstraint.cs │ │ ├── TagOption.cs │ │ └── TagOptionAssociation.cs │ ├── ServiceDiscovery │ │ ├── HttpNamespace.cs │ │ ├── Instance.cs │ │ ├── PrivateDnsNamespace.cs │ │ ├── PublicDnsNamespace.cs │ │ └── Service.cs │ ├── Stack.cs │ ├── StepFunctions │ │ ├── Activity.cs │ │ └── StateMachine.cs │ ├── Tag.cs │ ├── Transfer │ │ ├── Server.cs │ │ └── User.cs │ ├── UpdatePolicy.cs │ ├── WAF │ │ ├── ByteMatchSet.cs │ │ ├── IPSet.cs │ │ ├── Rule.cs │ │ ├── SizeConstraintSet.cs │ │ ├── SqlInjectionMatchSet.cs │ │ ├── WebACL.cs │ │ └── XssMatchSet.cs │ ├── WAFRegional │ │ ├── ByteMatchSet.cs │ │ ├── GeoMatchSet.cs │ │ ├── IPSet.cs │ │ ├── RateBasedRule.cs │ │ ├── RegexPatternSet.cs │ │ ├── Rule.cs │ │ ├── SizeConstraintSet.cs │ │ ├── SqlInjectionMatchSet.cs │ │ ├── WebACL.cs │ │ ├── WebACLAssociation.cs │ │ └── XssMatchSet.cs │ ├── WAFv2 │ │ ├── IPSet.cs │ │ ├── RegexPatternSet.cs │ │ ├── RuleGroup.cs │ │ ├── WebACL.cs │ │ └── WebACLAssociation.cs │ └── WorkSpaces │ │ └── Workspace.cs ├── Nuget.Config └── global.json ├── templates ├── .gitignore ├── Humidifier.Solution.Template │ ├── .$env$.env │ ├── .template.config │ │ └── template.json │ ├── Nuget.Config │ ├── ProjectBaseName.sln │ ├── README.md │ ├── src │ │ ├── ProjectBaseName.DeployTool │ │ │ ├── Config.cs │ │ │ ├── Context.cs │ │ │ ├── Program.cs │ │ │ ├── ProjectBaseName.DeployTool.csproj │ │ │ ├── Properties │ │ │ │ └── launchSettings.json │ │ │ ├── Secrets.cs │ │ │ ├── Stacks │ │ │ │ ├── BaseStack.cs │ │ │ │ └── SimpleStack.cs │ │ │ └── Util │ │ │ │ ├── Cloudformation.cs │ │ │ │ ├── Crypto.cs │ │ │ │ ├── LambdaDeployer.cs │ │ │ │ └── LambdaInvoker.cs │ │ ├── ProjectBaseName.Lambda.Common │ │ │ ├── CloudwatchMetrics.cs │ │ │ ├── ProjectBaseName.Lambda.Common.csproj │ │ │ ├── SerilogLambdaSink.cs │ │ │ ├── SimpleFunctionArgs.cs │ │ │ └── SimpleFunctionResult.cs │ │ ├── ProjectBaseName.Lambda.Simple │ │ │ ├── Function.cs │ │ │ └── ProjectBaseName.Lambda.Simple.csproj │ │ └── ProjectBaseName.Tests │ │ │ ├── ProjectBaseName.Tests.csproj │ │ │ └── SimpleLambdaTests.cs │ └── tasks.ps1 └── Humidifier.Templates.nuspec └── tools └── nuget.exe /.gitignore: -------------------------------------------------------------------------------- 1 | [Oo]bj/ 2 | [Bb]in/ 3 | TestResults/ 4 | .nuget/ 5 | _ReSharper.*/ 6 | packages/ 7 | artifacts/ 8 | PublishProfiles/ 9 | *.user 10 | *.suo 11 | *.cache 12 | *.docstates 13 | _ReSharper.* 14 | nuget.exe 15 | *net45.csproj 16 | *net451.csproj 17 | *k10.csproj 18 | *.psess 19 | *.vsp 20 | *.pidb 21 | *.userprefs 22 | *DS_Store 23 | *.ncrunchsolution 24 | *.*sdf 25 | *.ipch 26 | *.sln.ide 27 | project.lock.json 28 | .vs 29 | .build/ 30 | .testPublish/ 31 | *.env 32 | .DS_Store* 33 | ehthumbs.db 34 | Icon? 35 | Thumbs.db 36 | *.7z 37 | *.dmg 38 | *.gz 39 | *.iso 40 | *.jar 41 | *.rar 42 | *.tar 43 | *.zip 44 | *.log 45 | 46 | /ExampleProject -------------------------------------------------------------------------------- /appveyor.yml: -------------------------------------------------------------------------------- 1 | version: 10.0.{build} 2 | image: Visual Studio 2017 3 | configuration: Release 4 | install: 5 | - ps: >- 6 | cd src 7 | 8 | nuget restore Humidifier.sln 9 | 10 | $env:HUMIDIFIER_BUILD_NUMBER = ([int]$env:APPVEYOR_BUILD_NUMBER).ToString("000") 11 | 12 | $env:HUMIDIFIER_VERSION_SUFFIX = "pre$env:HUMIDIFIER_BUILD_NUMBER" 13 | 14 | $env:appveyor_nuget_push = 'false' 15 | 16 | if(-Not $env:APPVEYOR_PULL_REQUEST_NUMBER) { 17 | if($env:appveyor_repo_tag -eq 'True') { 18 | if($env:appveyor_repo_tag_name -match '^v[0-9]') { 19 | $env:appveyor_nuget_push = 'true' 20 | $env:HUMIDIFIER_VERSION_SUFFIX = "" 21 | } 22 | if($env:appveyor_repo_tag_name -eq 'latest') { 23 | $env:appveyor_nuget_push = 'true' 24 | } 25 | } 26 | } 27 | build: 28 | project: src/Humidifier.sln 29 | verbosity: minimal 30 | before_package: 31 | - cmd: >- 32 | msbuild /t:pack /p:VersionSuffix="%HUMIDIFIER_VERSION_SUFFIX%" /p:Configuration=Release Humidifier/Humidifier.csproj 33 | 34 | msbuild /t:pack /p:VersionSuffix="%HUMIDIFIER_VERSION_SUFFIX%" /p:Configuration=Release Humidifier.Json/Humidifier.Json.csproj 35 | artifacts: 36 | - path: src\Humidifier\Bin\Release\*.nupkg 37 | - path: src\Humidifier.Json\Bin\Release\*.nupkg 38 | 39 | deploy: 40 | - provider: NuGet 41 | api_key: 42 | secure: nr25s44o52anjrtcBL7L34AIgH5VixWUqi2l1GawzufnVmPs4KE1qpezO63OloqP 43 | on: 44 | appveyor_nuget_push: true -------------------------------------------------------------------------------- /codegen.ps1: -------------------------------------------------------------------------------- 1 | dotnet restore "src/Humidifier.sln" 2 | dotnet build "src/Humidifier.sln" 3 | $env:BUILD_PATH = $PWD 4 | dotnet ./src/Humidifier.CodeGen/bin/Debug/netcoreapp2.0/Humidifier.CodeGen.dll -------------------------------------------------------------------------------- /img/humidifier.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakejscott/Humidifier/7efffcf70a992d0447c04a8bda7be80976d98020/img/humidifier.png -------------------------------------------------------------------------------- /install-templates.ps1: -------------------------------------------------------------------------------- 1 | # To clear out custom templates you can run 2 | # dotnet new --debug:reinit 3 | 4 | Write-Host "Packaging templates..." 5 | tools\nuget pack .\templates\Humidifier.Templates.nuspec -OutputDirectory .\templatepackages 6 | 7 | Write-Host "Uninstalling templates..." 8 | dotnet new -u .\templatepackages 9 | 10 | Write-Host "Installing templates..." 11 | dotnet new -i .\templatepackages 12 | 13 | -------------------------------------------------------------------------------- /license.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2017, Jake Scott 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification 5 | , are permitted provided that the following conditions are met: 6 | 7 | 1. Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | 10 | 2. Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation 12 | and/or other materials provided with the distribution. 13 | 14 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 15 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 16 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 18 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 20 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 21 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 22 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /new-solution-test.ps1: -------------------------------------------------------------------------------- 1 | $projectName = "ExampleProject" 2 | $stack = "example" 3 | $env = "test" 4 | $region = "us-west-2" 5 | $profile = "example" 6 | $build_config = "Debug" 7 | $team = "example" 8 | $email = "example@example.com" 9 | 10 | Remove-Item $projectName -ErrorAction Ignore -Force -Recurse 11 | 12 | dotnet new humidifier.sln --name $projectName --output $projectName --env $env --region $region --stack $stack --profile $profile --build_config $build_config --team $team --email $email 13 | # dotnet new humidifier.sln --name $projectName --output $projectName 14 | 15 | 16 | -------------------------------------------------------------------------------- /publish-template-nuget.ps1: -------------------------------------------------------------------------------- 1 | 2 | $key = "$env:HUMIDIFIER_NUGET_API_KEY" 3 | 4 | .\tools\nuget pack .\templates\Humidifier.Templates.nuspec -OutputDirectory .\templatepackages 5 | .\tools\nuget push .\templatepackages\Humidifier.Templates.1.0.6.nupkg $key -src https://nuget.org -------------------------------------------------------------------------------- /src/Humidifier.CodeGen/Humidifier.CodeGen.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Exe 5 | netcoreapp2.0 6 | 7 | 8 | 9 | latest 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | Always 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/Humidifier.CodeGen/Humidifier.CodeGen.csproj.DotSettings: -------------------------------------------------------------------------------- 1 |  2 | CSharp71 -------------------------------------------------------------------------------- /src/Humidifier.CodeGen/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Humidifier.CodeGen": { 4 | "commandName": "Project", 5 | "environmentVariables": { 6 | "BUILD_PATH": "C:\\dev\\Humidifier" 7 | } 8 | } 9 | } 10 | } -------------------------------------------------------------------------------- /src/Humidifier.ConsoleTest/Humidifier.ConsoleTest.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Exe 5 | netcoreapp2.0 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/Humidifier.Json/ConditionConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Newtonsoft.Json; 3 | 4 | namespace Humidifier.Json 5 | { 6 | public class ConditionConverter : JsonConverter 7 | { 8 | public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) => throw new NotImplementedException(); 9 | public override bool CanConvert(Type objectType) => objectType == typeof(Condition); 10 | 11 | public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) 12 | { 13 | var condition = (Condition)value; 14 | serializer.Serialize(writer, condition.Fn); 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /src/Humidifier.Json/FnAndConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Newtonsoft.Json; 3 | 4 | namespace Humidifier.Json 5 | { 6 | internal class FnAndConverter : JsonConverter 7 | { 8 | public override bool CanConvert(Type objectType) => objectType == typeof(FnAnd); 9 | public override bool CanRead => false; 10 | public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) => throw new NotImplementedException(); 11 | public override bool CanWrite => true; 12 | public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) 13 | { 14 | // { "Fn::And": [{condition}, {...}] } 15 | 16 | var fn = (FnAnd)value; 17 | writer.WriteStartObject(); 18 | writer.WritePropertyName("Fn::And"); 19 | writer.WriteStartArray(); 20 | foreach (var condition in fn.Conditions) 21 | { 22 | serializer.Serialize(writer, condition); 23 | } 24 | writer.WriteEndArray(); 25 | writer.WriteEndObject(); 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /src/Humidifier.Json/FnBase64Converter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using System.Text; 4 | using Newtonsoft.Json; 5 | 6 | namespace Humidifier.Json 7 | { 8 | internal class FnBase64Converter : JsonConverter 9 | { 10 | public override bool CanConvert(Type objectType) => objectType == typeof(FnBase64); 11 | 12 | public override bool CanRead => false; 13 | public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) => throw new NotImplementedException(); 14 | 15 | public override bool CanWrite => true; 16 | public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) 17 | { 18 | // { "Fn::Base64" : "AWS Cloudformation" } 19 | 20 | var fn = (FnBase64)value; 21 | 22 | var valueToEncode = fn.ValueToEncode; 23 | 24 | if (valueToEncode is string) 25 | { 26 | var builder = new StringBuilder(); 27 | var reader = new StringReader(valueToEncode); 28 | 29 | var line = reader.ReadLine(); 30 | while (line != null) 31 | { 32 | line = line.TrimStart(' '); 33 | builder.AppendLine(line); 34 | line = reader.ReadLine(); 35 | } 36 | 37 | valueToEncode = builder.ToString(); 38 | } 39 | 40 | writer.WriteStartObject(); 41 | writer.WritePropertyName("Fn::Base64"); 42 | serializer.Serialize(writer, valueToEncode); 43 | writer.WriteEndObject(); 44 | } 45 | } 46 | } -------------------------------------------------------------------------------- /src/Humidifier.Json/FnCidrConvertor.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Newtonsoft.Json; 3 | 4 | namespace Humidifier.Json 5 | { 6 | internal class FnCidrConvertor : JsonConverter 7 | { 8 | public override bool CanConvert(Type objectType) => objectType == typeof(FnCidr); 9 | public override bool CanRead => false; 10 | public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) => throw new NotImplementedException(); 11 | public override bool CanWrite => true; 12 | public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) 13 | { 14 | // { "Fn::Cidr": [ "ipBlock", "count", "sizeMask"] } 15 | 16 | var fn = (FnCidr)value; 17 | writer.WriteStartObject(); 18 | writer.WritePropertyName("Fn::Cidr"); 19 | writer.WriteStartArray(); 20 | writer.WriteToken(JsonToken.String, fn.IpBlock); 21 | writer.WriteToken(JsonToken.String, fn.Count); 22 | writer.WriteToken(JsonToken.String, fn.SizeMask); 23 | writer.WriteEndArray(); 24 | writer.WriteEndObject(); 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /src/Humidifier.Json/FnEqualsConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Newtonsoft.Json; 3 | 4 | namespace Humidifier.Json 5 | { 6 | internal class FnEqualsConverter : JsonConverter 7 | { 8 | public override bool CanConvert(Type objectType) => objectType == typeof(FnEquals); 9 | 10 | public override bool CanRead => false; 11 | public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) => throw new NotImplementedException(); 12 | 13 | public override bool CanWrite => true; 14 | public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) 15 | { 16 | // { "Fn::Equals" : ["value_1", "value_2"] } 17 | 18 | var fn = (FnEquals)value; 19 | 20 | writer.WriteStartObject(); 21 | writer.WritePropertyName("Fn::Equals"); 22 | writer.WriteStartArray(); 23 | 24 | serializer.Serialize(writer, fn.Value1); 25 | serializer.Serialize(writer, fn.Value2); 26 | 27 | writer.WriteEndArray(); 28 | writer.WriteEndObject(); 29 | } 30 | } 31 | } -------------------------------------------------------------------------------- /src/Humidifier.Json/FnFindInMapConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Newtonsoft.Json; 3 | 4 | namespace Humidifier.Json 5 | { 6 | internal class FnFindInMapConverter : JsonConverter 7 | { 8 | public override bool CanConvert(Type objectType) => objectType == typeof(FnFindInMap); 9 | 10 | public override bool CanRead => false; 11 | public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) => throw new NotImplementedException(); 12 | 13 | public override bool CanWrite => true; 14 | public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) 15 | { 16 | // { "Fn::FindInMap" : [ "RegionMap", { "Ref" : "AWS::Region" }, "32"]} 17 | 18 | var fn = (FnFindInMap)value; 19 | writer.WriteStartObject(); 20 | writer.WritePropertyName("Fn::FindInMap"); 21 | writer.WriteStartArray(); 22 | writer.WriteToken(JsonToken.String, fn.MapName); 23 | serializer.Serialize(writer, fn.TopLevelKey); 24 | serializer.Serialize(writer, fn.SecondLevelKey); 25 | writer.WriteEndArray(); 26 | writer.WriteEndObject(); 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /src/Humidifier.Json/FnGetAZsConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Newtonsoft.Json; 3 | 4 | namespace Humidifier.Json 5 | { 6 | internal class FnGetAZsConverter : JsonConverter 7 | { 8 | public override bool CanConvert(Type objectType) => objectType == typeof(FnGetAZs); 9 | 10 | public override bool CanRead => false; 11 | public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) => throw new NotImplementedException(); 12 | 13 | public override bool CanWrite => true; 14 | public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) 15 | { 16 | // { "Fn::GetAZs" : "" } 17 | // { "Fn::GetAZs" : { "Ref" : "AWS::Region" } } 18 | // { "Fn::GetAZs" : "us-east-2" } 19 | 20 | var fn = (FnGetAZs)value; 21 | writer.WriteStartObject(); 22 | writer.WritePropertyName("Fn::GetAZs"); 23 | serializer.Serialize(writer, fn.Region); 24 | writer.WriteEndObject(); 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /src/Humidifier.Json/FnGetAttConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Newtonsoft.Json; 3 | 4 | namespace Humidifier.Json 5 | { 6 | internal class FnGetAttConverter : JsonConverter 7 | { 8 | public override bool CanConvert(Type objectType) => objectType == typeof(FnGetAtt); 9 | 10 | public override bool CanRead => false; 11 | public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) => throw new NotImplementedException(); 12 | 13 | public override bool CanWrite => true; 14 | public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) 15 | { 16 | // { "Fn::GetAtt" : [ "logicalNameOfResource", "attributeName" ] } 17 | 18 | var fn = (FnGetAtt)value; 19 | writer.WriteStartObject(); 20 | writer.WritePropertyName("Fn::GetAtt"); 21 | writer.WriteStartArray(); 22 | writer.WriteToken(JsonToken.String, fn.LogicalNameOfResource); 23 | writer.WriteToken(JsonToken.String, fn.AttributeName); 24 | writer.WriteEndArray(); 25 | writer.WriteEndObject(); 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /src/Humidifier.Json/FnIfConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Newtonsoft.Json; 3 | 4 | namespace Humidifier.Json 5 | { 6 | internal class FnIfConverter : JsonConverter 7 | { 8 | public override bool CanConvert(Type objectType) => objectType == typeof(FnIf); 9 | 10 | public override bool CanRead => false; 11 | public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) => throw new NotImplementedException(); 12 | 13 | public override bool CanWrite => true; 14 | public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) 15 | { 16 | // { "Fn::If": [ condition_name, value_if_true, value_if_false ] } 17 | 18 | var fn = (FnIf)value; 19 | 20 | writer.WriteStartObject(); 21 | writer.WritePropertyName("Fn::If"); 22 | writer.WriteStartArray(); 23 | writer.WriteToken(JsonToken.String, fn.ConditionName); 24 | serializer.Serialize(writer, fn.ValueIfTrue); 25 | serializer.Serialize(writer, fn.ValueIfFalse); 26 | writer.WriteEndArray(); 27 | writer.WriteEndObject(); 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /src/Humidifier.Json/FnImportValueConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Newtonsoft.Json; 3 | 4 | namespace Humidifier.Json 5 | { 6 | internal class FnImportValueConverter : JsonConverter 7 | { 8 | public override bool CanConvert(Type objectType) => objectType == typeof(FnImportValue); 9 | 10 | public override bool CanRead => false; 11 | public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) => throw new NotImplementedException(); 12 | 13 | public override bool CanWrite => true; 14 | public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) 15 | { 16 | // { 'Fn::ImportValue' : { 'Fn::Sub': '${AutomationStack}-DeploymentBucket' } } 17 | 18 | var fn = (FnImportValue)value; 19 | writer.WriteStartObject(); 20 | writer.WritePropertyName("Fn::ImportValue"); 21 | serializer.Serialize(writer, fn.SharedValueToImport); 22 | writer.WriteEndObject(); 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /src/Humidifier.Json/FnJoinConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Newtonsoft.Json; 3 | 4 | namespace Humidifier.Json 5 | { 6 | internal class FnJoinConverter : JsonConverter 7 | { 8 | public override bool CanConvert(Type objectType) => objectType == typeof(FnJoin); 9 | 10 | public override bool CanRead => false; 11 | public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) => throw new NotImplementedException(); 12 | 13 | public override bool CanWrite => true; 14 | public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) 15 | { 16 | // { "Fn::Join" : [ "", ["arn:aws:s3:::", { "Ref" : "DeploymentBucket" } ] ] } 17 | 18 | var fn = (FnJoin)value; 19 | writer.WriteStartObject(); 20 | writer.WritePropertyName("Fn::Join"); 21 | writer.WriteStartArray(); 22 | writer.WriteToken(JsonToken.String, fn.Seperator); 23 | serializer.Serialize(writer, fn.Parameters); 24 | writer.WriteEndArray(); 25 | writer.WriteEndObject(); 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /src/Humidifier.Json/FnNotConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Newtonsoft.Json; 3 | 4 | namespace Humidifier.Json 5 | { 6 | internal class FnNotConverter : JsonConverter 7 | { 8 | public override bool CanConvert(Type objectType) => objectType == typeof(FnNot); 9 | public override bool CanRead => false; 10 | public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) => throw new NotImplementedException(); 11 | public override bool CanWrite => true; 12 | public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) 13 | { 14 | // { "Fn::Not": [{condition}] } 15 | 16 | var fn = (FnNot)value; 17 | 18 | writer.WriteStartObject(); 19 | writer.WritePropertyName("Fn::Not"); 20 | writer.WriteStartArray(); 21 | serializer.Serialize(writer, fn.Condition); 22 | writer.WriteEndArray(); 23 | writer.WriteEndObject(); 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /src/Humidifier.Json/FnOrConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Newtonsoft.Json; 3 | 4 | namespace Humidifier.Json 5 | { 6 | internal class FnOrConverter : JsonConverter 7 | { 8 | public override bool CanConvert(Type objectType) => objectType == typeof(FnOr); 9 | public override bool CanRead => false; 10 | public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) => throw new NotImplementedException(); 11 | public override bool CanWrite => true; 12 | public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) 13 | { 14 | // { "Fn::Or": [{condition}, {...}] } 15 | 16 | var fn = (FnOr)value; 17 | writer.WriteStartObject(); 18 | writer.WritePropertyName("Fn::Or"); 19 | writer.WriteStartArray(); 20 | foreach (var condition in fn.Conditions) 21 | { 22 | serializer.Serialize(writer, condition); 23 | } 24 | writer.WriteEndArray(); 25 | writer.WriteEndObject(); 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /src/Humidifier.Json/FnRefConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Newtonsoft.Json; 3 | 4 | namespace Humidifier.Json 5 | { 6 | internal class FnRefConverter : JsonConverter 7 | { 8 | public override bool CanConvert(Type objectType) => objectType == typeof(FnRef); 9 | 10 | public override bool CanRead => false; 11 | public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) => throw new NotImplementedException(); 12 | 13 | public override bool CanWrite => true; 14 | public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) 15 | { 16 | // { "Ref" : "AWS::StackName } 17 | 18 | var fn = (FnRef)value; 19 | writer.WriteStartObject(); 20 | writer.WritePropertyName("Ref"); 21 | writer.WriteToken(JsonToken.String, fn.Reference); 22 | writer.WriteEndObject(); 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /src/Humidifier.Json/FnSelectConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Newtonsoft.Json; 3 | 4 | namespace Humidifier.Json 5 | { 6 | internal class FnSelectConverter : JsonConverter 7 | { 8 | public override bool CanConvert(Type objectType) => objectType == typeof(FnSelect); 9 | 10 | public override bool CanRead => false; 11 | public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) => throw new NotImplementedException(); 12 | 13 | public override bool CanWrite => true; 14 | public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) 15 | { 16 | // { "Fn::Select" : [ "1", [ "apples", "grapes", "oranges", "mangoes" ] ] } 17 | 18 | var fn = (FnSelect)value; 19 | writer.WriteStartObject(); 20 | writer.WritePropertyName("Fn::Select"); 21 | writer.WriteStartArray(); 22 | writer.WriteToken(JsonToken.String, fn.Index); 23 | serializer.Serialize(writer, fn.ListOfObjects); 24 | writer.WriteEndArray(); 25 | writer.WriteEndObject(); 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /src/Humidifier.Json/FnSplitConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Newtonsoft.Json; 3 | 4 | namespace Humidifier.Json 5 | { 6 | internal class FnSplitConverter : JsonConverter 7 | { 8 | public override bool CanConvert(Type objectType) => objectType == typeof(FnSplit); 9 | 10 | public override bool CanRead => false; 11 | public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) => throw new NotImplementedException(); 12 | 13 | public override bool CanWrite => true; 14 | public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) 15 | { 16 | // { "Fn::Split": [ "," , { "Fn::ImportValue": "AccountSubnetIDs"} ] } 17 | 18 | var fn = (FnSplit)value; 19 | writer.WriteStartObject(); 20 | writer.WritePropertyName("Fn::Split"); 21 | writer.WriteStartArray(); 22 | writer.WriteToken(JsonToken.String, fn.Delimiter); 23 | serializer.Serialize(writer, fn.SourceString); 24 | writer.WriteEndArray(); 25 | writer.WriteEndObject(); 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /src/Humidifier.Json/FnSubConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Linq; 3 | using Newtonsoft.Json; 4 | 5 | namespace Humidifier.Json 6 | { 7 | internal class FnSubConverter : JsonConverter 8 | { 9 | public override bool CanConvert(Type objectType) => objectType == typeof(FnSub); 10 | 11 | public override bool CanRead => false; 12 | public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) => throw new NotImplementedException(); 13 | 14 | public override bool CanWrite => true; 15 | public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) 16 | { 17 | var fn = (FnSub)value; 18 | writer.WriteStartObject(); 19 | writer.WritePropertyName("Fn::Sub"); 20 | 21 | if (fn.Variables != null && fn.Variables.Any()) 22 | { 23 | // { "Fn::Sub" : [ String, { Var1Name: Var1Value, Var2Name: Var2Value } ] } 24 | writer.WriteStartArray(); 25 | writer.WriteToken(JsonToken.String, fn.String); 26 | serializer.Serialize(writer, fn.Variables); 27 | writer.WriteEndArray(); 28 | } 29 | else 30 | { 31 | // { "Fn::Sub" : String } 32 | writer.WriteToken(JsonToken.String, fn.String); 33 | } 34 | 35 | writer.WriteEndObject(); 36 | } 37 | } 38 | } -------------------------------------------------------------------------------- /src/Humidifier.Json/Humidifier.Json.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Json Serialization support for Humidifier. 5 | Jake Scott 6 | Humidifier.Json 7 | en-US 8 | 0.3.1 9 | Jake Scott 10 | net45;netstandard1.3;netstandard2.0 11 | Humidifier.Json 12 | Humidifier.Json 13 | aws;cloudformation; 14 | https://raw.githubusercontent.com/jakejscott/humidifier/master/img/humidifier.png 15 | https://github.com/jakejscott/humidifier 16 | https://github.com/jakejscott/humidifier/blob/master/license.txt 17 | Full 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | true 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/Humidifier/ApiGateway/Account.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.ApiGateway 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class Account : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::ApiGateway::Account"; 12 | } 13 | } 14 | 15 | /// 16 | /// CloudWatchRoleArn 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-account.html#cfn-apigateway-account-cloudwatchrolearn 18 | /// Required: False 19 | /// UpdateType: Mutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic CloudWatchRoleArn 23 | { 24 | get; 25 | set; 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /src/Humidifier/ApiGateway/ClientCertificate.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.ApiGateway 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class ClientCertificate : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::ApiGateway::ClientCertificate"; 12 | } 13 | } 14 | 15 | /// 16 | /// Description 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-clientcertificate.html#cfn-apigateway-clientcertificate-description 18 | /// Required: False 19 | /// UpdateType: Mutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic Description 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// Tags 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-clientcertificate.html#cfn-apigateway-clientcertificate-tags 31 | /// Required: False 32 | /// UpdateType: Mutable 33 | /// Type: List 34 | /// ItemType: Tag 35 | /// 36 | public List Tags 37 | { 38 | get; 39 | set; 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /src/Humidifier/ApiGateway/DocumentationVersion.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.ApiGateway 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class DocumentationVersion : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::ApiGateway::DocumentationVersion"; 12 | } 13 | } 14 | 15 | /// 16 | /// Description 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationversion.html#cfn-apigateway-documentationversion-description 18 | /// Required: False 19 | /// UpdateType: Mutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic Description 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// DocumentationVersion 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationversion.html#cfn-apigateway-documentationversion-documentationversion 31 | /// Required: True 32 | /// UpdateType: Immutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic DocumentationVersion_ 36 | { 37 | get; 38 | set; 39 | } 40 | 41 | /// 42 | /// RestApiId 43 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationversion.html#cfn-apigateway-documentationversion-restapiid 44 | /// Required: True 45 | /// UpdateType: Immutable 46 | /// PrimitiveType: String 47 | /// 48 | public dynamic RestApiId 49 | { 50 | get; 51 | set; 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /src/Humidifier/ApiGateway/Resource.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.ApiGateway 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class Resource : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::ApiGateway::Resource"; 12 | } 13 | } 14 | 15 | /// 16 | /// ParentId 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-resource.html#cfn-apigateway-resource-parentid 18 | /// Required: True 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic ParentId 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// PathPart 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-resource.html#cfn-apigateway-resource-pathpart 31 | /// Required: True 32 | /// UpdateType: Immutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic PathPart 36 | { 37 | get; 38 | set; 39 | } 40 | 41 | /// 42 | /// RestApiId 43 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-resource.html#cfn-apigateway-resource-restapiid 44 | /// Required: True 45 | /// UpdateType: Immutable 46 | /// PrimitiveType: String 47 | /// 48 | public dynamic RestApiId 49 | { 50 | get; 51 | set; 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /src/Humidifier/ApiGateway/UsagePlanKey.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.ApiGateway 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class UsagePlanKey : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::ApiGateway::UsagePlanKey"; 12 | } 13 | } 14 | 15 | /// 16 | /// KeyId 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html#cfn-apigateway-usageplankey-keyid 18 | /// Required: True 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic KeyId 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// KeyType 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html#cfn-apigateway-usageplankey-keytype 31 | /// Required: True 32 | /// UpdateType: Immutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic KeyType 36 | { 37 | get; 38 | set; 39 | } 40 | 41 | /// 42 | /// UsagePlanId 43 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html#cfn-apigateway-usageplankey-usageplanid 44 | /// Required: True 45 | /// UpdateType: Immutable 46 | /// PrimitiveType: String 47 | /// 48 | public dynamic UsagePlanId 49 | { 50 | get; 51 | set; 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /src/Humidifier/ApiGateway/VpcLink.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.ApiGateway 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class VpcLink : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::ApiGateway::VpcLink"; 12 | } 13 | } 14 | 15 | /// 16 | /// Description 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-vpclink.html#cfn-apigateway-vpclink-description 18 | /// Required: False 19 | /// UpdateType: Mutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic Description 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// TargetArns 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-vpclink.html#cfn-apigateway-vpclink-targetarns 31 | /// Required: True 32 | /// UpdateType: Immutable 33 | /// Type: List 34 | /// PrimitiveItemType: String 35 | /// 36 | public dynamic TargetArns 37 | { 38 | get; 39 | set; 40 | } 41 | 42 | /// 43 | /// Name 44 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-vpclink.html#cfn-apigateway-vpclink-name 45 | /// Required: True 46 | /// UpdateType: Mutable 47 | /// PrimitiveType: String 48 | /// 49 | public dynamic Name 50 | { 51 | get; 52 | set; 53 | } 54 | } 55 | } -------------------------------------------------------------------------------- /src/Humidifier/ApiGatewayV2/Deployment.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.ApiGatewayV2 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class Deployment : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::ApiGatewayV2::Deployment"; 12 | } 13 | } 14 | 15 | /// 16 | /// Description 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-deployment.html#cfn-apigatewayv2-deployment-description 18 | /// Required: False 19 | /// UpdateType: Mutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic Description 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// StageName 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-deployment.html#cfn-apigatewayv2-deployment-stagename 31 | /// Required: False 32 | /// UpdateType: Mutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic StageName 36 | { 37 | get; 38 | set; 39 | } 40 | 41 | /// 42 | /// ApiId 43 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-deployment.html#cfn-apigatewayv2-deployment-apiid 44 | /// Required: True 45 | /// UpdateType: Immutable 46 | /// PrimitiveType: String 47 | /// 48 | public dynamic ApiId 49 | { 50 | get; 51 | set; 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /src/Humidifier/AppStream/StackFleetAssociation.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.AppStream 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class StackFleetAssociation : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::AppStream::StackFleetAssociation"; 12 | } 13 | } 14 | 15 | /// 16 | /// FleetName 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stackfleetassociation.html#cfn-appstream-stackfleetassociation-fleetname 18 | /// Required: True 19 | /// UpdateType: Mutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic FleetName 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// StackName 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stackfleetassociation.html#cfn-appstream-stackfleetassociation-stackname 31 | /// Required: True 32 | /// UpdateType: Mutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic StackName 36 | { 37 | get; 38 | set; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /src/Humidifier/AppSync/ApiKey.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.AppSync 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class ApiKey : Humidifier.Resource 6 | { 7 | public static class Attributes 8 | { 9 | public static string ApiKey = "ApiKey" ; 10 | public static string Arn = "Arn" ; 11 | } 12 | 13 | public override string AWSTypeName 14 | { 15 | get 16 | { 17 | return @"AWS::AppSync::ApiKey"; 18 | } 19 | } 20 | 21 | /// 22 | /// Description 23 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-description 24 | /// Required: False 25 | /// UpdateType: Mutable 26 | /// PrimitiveType: String 27 | /// 28 | public dynamic Description 29 | { 30 | get; 31 | set; 32 | } 33 | 34 | /// 35 | /// Expires 36 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-expires 37 | /// Required: False 38 | /// UpdateType: Mutable 39 | /// PrimitiveType: Double 40 | /// 41 | public dynamic Expires 42 | { 43 | get; 44 | set; 45 | } 46 | 47 | /// 48 | /// ApiId 49 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-apiid 50 | /// Required: True 51 | /// UpdateType: Immutable 52 | /// PrimitiveType: String 53 | /// 54 | public dynamic ApiId 55 | { 56 | get; 57 | set; 58 | } 59 | } 60 | } -------------------------------------------------------------------------------- /src/Humidifier/AppSync/GraphQLSchema.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.AppSync 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class GraphQLSchema : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::AppSync::GraphQLSchema"; 12 | } 13 | } 14 | 15 | /// 16 | /// Definition 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlschema.html#cfn-appsync-graphqlschema-definition 18 | /// Required: False 19 | /// UpdateType: Mutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic Definition 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// DefinitionS3Location 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlschema.html#cfn-appsync-graphqlschema-definitions3location 31 | /// Required: False 32 | /// UpdateType: Mutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic DefinitionS3Location 36 | { 37 | get; 38 | set; 39 | } 40 | 41 | /// 42 | /// ApiId 43 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlschema.html#cfn-appsync-graphqlschema-apiid 44 | /// Required: True 45 | /// UpdateType: Immutable 46 | /// PrimitiveType: String 47 | /// 48 | public dynamic ApiId 49 | { 50 | get; 51 | set; 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /src/Humidifier/Cassandra/Keyspace.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.Cassandra 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class Keyspace : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::Cassandra::Keyspace"; 12 | } 13 | } 14 | 15 | /// 16 | /// KeyspaceName 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-keyspace.html#cfn-cassandra-keyspace-keyspacename 18 | /// Required: False 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic KeyspaceName 23 | { 24 | get; 25 | set; 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /src/Humidifier/CloudFormation/CustomResource.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.CloudFormation 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class CustomResource : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::CloudFormation::CustomResource"; 12 | } 13 | } 14 | 15 | /// 16 | /// ServiceToken 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cfn-customresource.html#cfn-customresource-servicetoken 18 | /// Required: True 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic ServiceToken 23 | { 24 | get; 25 | set; 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /src/Humidifier/CloudFormation/WaitCondition.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.CloudFormation 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class WaitCondition : Humidifier.Resource 6 | { 7 | public static class Attributes 8 | { 9 | public static string Data = "Data" ; 10 | } 11 | 12 | public override string AWSTypeName 13 | { 14 | get 15 | { 16 | return @"AWS::CloudFormation::WaitCondition"; 17 | } 18 | } 19 | 20 | /// 21 | /// Count 22 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html#cfn-waitcondition-count 23 | /// Required: False 24 | /// UpdateType: Mutable 25 | /// PrimitiveType: Integer 26 | /// 27 | public dynamic Count 28 | { 29 | get; 30 | set; 31 | } 32 | 33 | /// 34 | /// Handle 35 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html#cfn-waitcondition-handle 36 | /// Required: False 37 | /// UpdateType: Mutable 38 | /// PrimitiveType: String 39 | /// 40 | public dynamic Handle 41 | { 42 | get; 43 | set; 44 | } 45 | 46 | /// 47 | /// Timeout 48 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html#cfn-waitcondition-timeout 49 | /// Required: False 50 | /// UpdateType: Mutable 51 | /// PrimitiveType: String 52 | /// 53 | public dynamic Timeout 54 | { 55 | get; 56 | set; 57 | } 58 | } 59 | } -------------------------------------------------------------------------------- /src/Humidifier/CloudFormation/WaitConditionHandle.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.CloudFormation 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class WaitConditionHandle : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::CloudFormation::WaitConditionHandle"; 12 | } 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /src/Humidifier/CloudFront/CloudFrontOriginAccessIdentity.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.CloudFront 2 | { 3 | using System.Collections.Generic; 4 | using CloudFrontOriginAccessIdentityTypes; 5 | 6 | public class CloudFrontOriginAccessIdentity : Humidifier.Resource 7 | { 8 | public static class Attributes 9 | { 10 | public static string S3CanonicalUserId = "S3CanonicalUserId" ; 11 | } 12 | 13 | public override string AWSTypeName 14 | { 15 | get 16 | { 17 | return @"AWS::CloudFront::CloudFrontOriginAccessIdentity"; 18 | } 19 | } 20 | 21 | /// 22 | /// CloudFrontOriginAccessIdentityConfig 23 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-cloudfrontoriginaccessidentity.html#cfn-cloudfront-cloudfrontoriginaccessidentity-cloudfrontoriginaccessidentityconfig 24 | /// Required: True 25 | /// UpdateType: Mutable 26 | /// Type: CloudFrontOriginAccessIdentityConfig 27 | /// 28 | public CloudFrontOriginAccessIdentityConfig CloudFrontOriginAccessIdentityConfig 29 | { 30 | get; 31 | set; 32 | } 33 | } 34 | 35 | namespace CloudFrontOriginAccessIdentityTypes 36 | { 37 | public class CloudFrontOriginAccessIdentityConfig 38 | { 39 | /// 40 | /// Comment 41 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cloudfrontoriginaccessidentity-cloudfrontoriginaccessidentityconfig.html#cfn-cloudfront-cloudfrontoriginaccessidentity-cloudfrontoriginaccessidentityconfig-comment 42 | /// Required: True 43 | /// UpdateType: Mutable 44 | /// PrimitiveType: String 45 | /// 46 | public dynamic Comment 47 | { 48 | get; 49 | set; 50 | } 51 | } 52 | } 53 | } -------------------------------------------------------------------------------- /src/Humidifier/CloudWatch/Dashboard.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.CloudWatch 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class Dashboard : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::CloudWatch::Dashboard"; 12 | } 13 | } 14 | 15 | /// 16 | /// DashboardName 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-dashboard.html#cfn-cloudwatch-dashboard-dashboardname 18 | /// Required: False 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic DashboardName 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// DashboardBody 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-dashboard.html#cfn-cloudwatch-dashboard-dashboardbody 31 | /// Required: True 32 | /// UpdateType: Mutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic DashboardBody 36 | { 37 | get; 38 | set; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /src/Humidifier/CloudWatch/InsightRule.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.CloudWatch 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class InsightRule : Humidifier.Resource 6 | { 7 | public static class Attributes 8 | { 9 | public static string Arn = "Arn" ; 10 | public static string RuleName = "RuleName" ; 11 | } 12 | 13 | public override string AWSTypeName 14 | { 15 | get 16 | { 17 | return @"AWS::CloudWatch::InsightRule"; 18 | } 19 | } 20 | 21 | /// 22 | /// RuleState 23 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-insightrule.html#cfn-cloudwatch-insightrule-rulestate 24 | /// Required: True 25 | /// UpdateType: Mutable 26 | /// PrimitiveType: String 27 | /// 28 | public dynamic RuleState 29 | { 30 | get; 31 | set; 32 | } 33 | 34 | /// 35 | /// RuleBody 36 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-insightrule.html#cfn-cloudwatch-insightrule-rulebody 37 | /// Required: True 38 | /// UpdateType: Mutable 39 | /// PrimitiveType: String 40 | /// 41 | public dynamic RuleBody 42 | { 43 | get; 44 | set; 45 | } 46 | 47 | /// 48 | /// RuleName 49 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-insightrule.html#cfn-cloudwatch-insightrule-rulename 50 | /// Required: True 51 | /// UpdateType: Immutable 52 | /// PrimitiveType: String 53 | /// 54 | public dynamic RuleName 55 | { 56 | get; 57 | set; 58 | } 59 | } 60 | } -------------------------------------------------------------------------------- /src/Humidifier/CodeDeploy/Application.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.CodeDeploy 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class Application : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::CodeDeploy::Application"; 12 | } 13 | } 14 | 15 | /// 16 | /// ApplicationName 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html#cfn-codedeploy-application-applicationname 18 | /// Required: False 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic ApplicationName 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// ComputePlatform 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html#cfn-codedeploy-application-computeplatform 31 | /// Required: False 32 | /// UpdateType: Immutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic ComputePlatform 36 | { 37 | get; 38 | set; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /src/Humidifier/CodeStarConnections/Connection.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.CodeStarConnections 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class Connection : Humidifier.Resource 6 | { 7 | public static class Attributes 8 | { 9 | public static string ConnectionArn = "ConnectionArn" ; 10 | public static string ConnectionStatus = "ConnectionStatus" ; 11 | public static string OwnerAccountId = "OwnerAccountId" ; 12 | } 13 | 14 | public override string AWSTypeName 15 | { 16 | get 17 | { 18 | return @"AWS::CodeStarConnections::Connection"; 19 | } 20 | } 21 | 22 | /// 23 | /// ConnectionName 24 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-connection.html#cfn-codestarconnections-connection-connectionname 25 | /// Required: True 26 | /// UpdateType: Immutable 27 | /// PrimitiveType: String 28 | /// 29 | public dynamic ConnectionName 30 | { 31 | get; 32 | set; 33 | } 34 | 35 | /// 36 | /// ProviderType 37 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-connection.html#cfn-codestarconnections-connection-providertype 38 | /// Required: True 39 | /// UpdateType: Immutable 40 | /// PrimitiveType: String 41 | /// 42 | public dynamic ProviderType 43 | { 44 | get; 45 | set; 46 | } 47 | } 48 | } -------------------------------------------------------------------------------- /src/Humidifier/Cognito/UserPoolUICustomizationAttachment.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.Cognito 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class UserPoolUICustomizationAttachment : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::Cognito::UserPoolUICustomizationAttachment"; 12 | } 13 | } 14 | 15 | /// 16 | /// CSS 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluicustomizationattachment.html#cfn-cognito-userpooluicustomizationattachment-css 18 | /// Required: False 19 | /// UpdateType: Mutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic CSS 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// UserPoolId 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluicustomizationattachment.html#cfn-cognito-userpooluicustomizationattachment-userpoolid 31 | /// Required: True 32 | /// UpdateType: Immutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic UserPoolId 36 | { 37 | get; 38 | set; 39 | } 40 | 41 | /// 42 | /// ClientId 43 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluicustomizationattachment.html#cfn-cognito-userpooluicustomizationattachment-clientid 44 | /// Required: True 45 | /// UpdateType: Immutable 46 | /// PrimitiveType: String 47 | /// 48 | public dynamic ClientId 49 | { 50 | get; 51 | set; 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /src/Humidifier/Cognito/UserPoolUserToGroupAttachment.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.Cognito 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class UserPoolUserToGroupAttachment : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::Cognito::UserPoolUserToGroupAttachment"; 12 | } 13 | } 14 | 15 | /// 16 | /// GroupName 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolusertogroupattachment.html#cfn-cognito-userpoolusertogroupattachment-groupname 18 | /// Required: True 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic GroupName 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// UserPoolId 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolusertogroupattachment.html#cfn-cognito-userpoolusertogroupattachment-userpoolid 31 | /// Required: True 32 | /// UpdateType: Immutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic UserPoolId 36 | { 37 | get; 38 | set; 39 | } 40 | 41 | /// 42 | /// Username 43 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolusertogroupattachment.html#cfn-cognito-userpoolusertogroupattachment-username 44 | /// Required: True 45 | /// UpdateType: Immutable 46 | /// PrimitiveType: String 47 | /// 48 | public dynamic Username 49 | { 50 | get; 51 | set; 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /src/Humidifier/Condition.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Humidifier 4 | { 5 | public class Condition 6 | { 7 | public dynamic Fn { get; } 8 | 9 | public Condition(dynamic fn) 10 | { 11 | if (fn == null) throw new ArgumentNullException(nameof(fn)); 12 | Fn = fn; 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /src/Humidifier/Config/AggregationAuthorization.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.Config 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class AggregationAuthorization : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::Config::AggregationAuthorization"; 12 | } 13 | } 14 | 15 | /// 16 | /// AuthorizedAccountId 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-aggregationauthorization.html#cfn-config-aggregationauthorization-authorizedaccountid 18 | /// Required: True 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic AuthorizedAccountId 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// AuthorizedAwsRegion 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-aggregationauthorization.html#cfn-config-aggregationauthorization-authorizedawsregion 31 | /// Required: True 32 | /// UpdateType: Immutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic AuthorizedAwsRegion 36 | { 37 | get; 38 | set; 39 | } 40 | 41 | /// 42 | /// Tags 43 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-aggregationauthorization.html#cfn-config-aggregationauthorization-tags 44 | /// Required: False 45 | /// UpdateType: Mutable 46 | /// Type: List 47 | /// ItemType: Tag 48 | /// 49 | public List Tags 50 | { 51 | get; 52 | set; 53 | } 54 | } 55 | } -------------------------------------------------------------------------------- /src/Humidifier/CreationPolicy.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier 2 | { 3 | public class CreationPolicy 4 | { 5 | public AutoScalingCreationPolicy AutoScalingCreationPolicy { get; set; } 6 | public ResourceSignal ResourceSignal { get; set; } 7 | } 8 | 9 | public class AutoScalingCreationPolicy 10 | { 11 | /// 12 | /// PrimitiveType: Integer 13 | /// 14 | public dynamic MinSuccessfulInstancesPercent { get; set; } 15 | } 16 | 17 | public class ResourceSignal 18 | { 19 | /// 20 | /// PrimitiveType: Integer 21 | /// 22 | public dynamic Count { get; set; } 23 | 24 | /// 25 | /// PrimitiveType: String 26 | /// 27 | public dynamic Timeout { get; set; } 28 | } 29 | } -------------------------------------------------------------------------------- /src/Humidifier/DAX/ParameterGroup.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.DAX 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class ParameterGroup : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::DAX::ParameterGroup"; 12 | } 13 | } 14 | 15 | /// 16 | /// ParameterNameValues 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-parametergroup.html#cfn-dax-parametergroup-parameternamevalues 18 | /// Required: False 19 | /// UpdateType: Mutable 20 | /// PrimitiveType: Json 21 | /// 22 | public dynamic ParameterNameValues 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// Description 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-parametergroup.html#cfn-dax-parametergroup-description 31 | /// Required: False 32 | /// UpdateType: Mutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic Description 36 | { 37 | get; 38 | set; 39 | } 40 | 41 | /// 42 | /// ParameterGroupName 43 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-parametergroup.html#cfn-dax-parametergroup-parametergroupname 44 | /// Required: False 45 | /// UpdateType: Immutable 46 | /// PrimitiveType: String 47 | /// 48 | public dynamic ParameterGroupName 49 | { 50 | get; 51 | set; 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /src/Humidifier/DAX/SubnetGroup.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.DAX 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class SubnetGroup : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::DAX::SubnetGroup"; 12 | } 13 | } 14 | 15 | /// 16 | /// Description 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-subnetgroup.html#cfn-dax-subnetgroup-description 18 | /// Required: False 19 | /// UpdateType: Mutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic Description 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// SubnetGroupName 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-subnetgroup.html#cfn-dax-subnetgroup-subnetgroupname 31 | /// Required: False 32 | /// UpdateType: Immutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic SubnetGroupName 36 | { 37 | get; 38 | set; 39 | } 40 | 41 | /// 42 | /// SubnetIds 43 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-subnetgroup.html#cfn-dax-subnetgroup-subnetids 44 | /// Required: True 45 | /// UpdateType: Mutable 46 | /// Type: List 47 | /// PrimitiveItemType: String 48 | /// 49 | public dynamic SubnetIds 50 | { 51 | get; 52 | set; 53 | } 54 | } 55 | } -------------------------------------------------------------------------------- /src/Humidifier/DMS/Certificate.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.DMS 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class Certificate : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::DMS::Certificate"; 12 | } 13 | } 14 | 15 | /// 16 | /// CertificateIdentifier 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-certificate.html#cfn-dms-certificate-certificateidentifier 18 | /// Required: False 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic CertificateIdentifier 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// CertificatePem 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-certificate.html#cfn-dms-certificate-certificatepem 31 | /// Required: False 32 | /// UpdateType: Immutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic CertificatePem 36 | { 37 | get; 38 | set; 39 | } 40 | 41 | /// 42 | /// CertificateWallet 43 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-certificate.html#cfn-dms-certificate-certificatewallet 44 | /// Required: False 45 | /// UpdateType: Immutable 46 | /// PrimitiveType: String 47 | /// 48 | public dynamic CertificateWallet 49 | { 50 | get; 51 | set; 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /src/Humidifier/DeletionPolicy.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier 2 | { 3 | public enum DeletionPolicy 4 | { 5 | Retain, 6 | Snapshot 7 | } 8 | } -------------------------------------------------------------------------------- /src/Humidifier/EC2/ClientVpnTargetNetworkAssociation.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.EC2 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class ClientVpnTargetNetworkAssociation : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::EC2::ClientVpnTargetNetworkAssociation"; 12 | } 13 | } 14 | 15 | /// 16 | /// ClientVpnEndpointId 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpntargetnetworkassociation.html#cfn-ec2-clientvpntargetnetworkassociation-clientvpnendpointid 18 | /// Required: True 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic ClientVpnEndpointId 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// SubnetId 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpntargetnetworkassociation.html#cfn-ec2-clientvpntargetnetworkassociation-subnetid 31 | /// Required: True 32 | /// UpdateType: Immutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic SubnetId 36 | { 37 | get; 38 | set; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /src/Humidifier/EC2/EgressOnlyInternetGateway.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.EC2 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class EgressOnlyInternetGateway : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::EC2::EgressOnlyInternetGateway"; 12 | } 13 | } 14 | 15 | /// 16 | /// VpcId 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-egressonlyinternetgateway.html#cfn-ec2-egressonlyinternetgateway-vpcid 18 | /// Required: True 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic VpcId 23 | { 24 | get; 25 | set; 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /src/Humidifier/EC2/GatewayRouteTableAssociation.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.EC2 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class GatewayRouteTableAssociation : Humidifier.Resource 6 | { 7 | public static class Attributes 8 | { 9 | public static string AssociationId = "AssociationId" ; 10 | } 11 | 12 | public override string AWSTypeName 13 | { 14 | get 15 | { 16 | return @"AWS::EC2::GatewayRouteTableAssociation"; 17 | } 18 | } 19 | 20 | /// 21 | /// RouteTableId 22 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-gatewayroutetableassociation.html#cfn-ec2-gatewayroutetableassociation-routetableid 23 | /// Required: True 24 | /// UpdateType: Mutable 25 | /// PrimitiveType: String 26 | /// 27 | public dynamic RouteTableId 28 | { 29 | get; 30 | set; 31 | } 32 | 33 | /// 34 | /// GatewayId 35 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-gatewayroutetableassociation.html#cfn-ec2-gatewayroutetableassociation-gatewayid 36 | /// Required: True 37 | /// UpdateType: Immutable 38 | /// PrimitiveType: String 39 | /// 40 | public dynamic GatewayId 41 | { 42 | get; 43 | set; 44 | } 45 | } 46 | } -------------------------------------------------------------------------------- /src/Humidifier/EC2/InternetGateway.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.EC2 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class InternetGateway : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::EC2::InternetGateway"; 12 | } 13 | } 14 | 15 | /// 16 | /// Tags 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-internetgateway.html#cfn-ec2-internetgateway-tags 18 | /// Required: False 19 | /// UpdateType: Mutable 20 | /// Type: List 21 | /// ItemType: Tag 22 | /// 23 | public List Tags 24 | { 25 | get; 26 | set; 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /src/Humidifier/EC2/NatGateway.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.EC2 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class NatGateway : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::EC2::NatGateway"; 12 | } 13 | } 14 | 15 | /// 16 | /// AllocationId 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-natgateway.html#cfn-ec2-natgateway-allocationid 18 | /// Required: True 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic AllocationId 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// SubnetId 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-natgateway.html#cfn-ec2-natgateway-subnetid 31 | /// Required: True 32 | /// UpdateType: Immutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic SubnetId 36 | { 37 | get; 38 | set; 39 | } 40 | 41 | /// 42 | /// Tags 43 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-natgateway.html#cfn-ec2-natgateway-tags 44 | /// Required: False 45 | /// UpdateType: Mutable 46 | /// Type: List 47 | /// ItemType: Tag 48 | /// 49 | public List Tags 50 | { 51 | get; 52 | set; 53 | } 54 | } 55 | } -------------------------------------------------------------------------------- /src/Humidifier/EC2/NetworkAcl.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.EC2 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class NetworkAcl : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::EC2::NetworkAcl"; 12 | } 13 | } 14 | 15 | /// 16 | /// Tags 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-acl.html#cfn-ec2-networkacl-tags 18 | /// Required: False 19 | /// UpdateType: Mutable 20 | /// Type: List 21 | /// ItemType: Tag 22 | /// 23 | public List Tags 24 | { 25 | get; 26 | set; 27 | } 28 | 29 | /// 30 | /// VpcId 31 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-acl.html#cfn-ec2-networkacl-vpcid 32 | /// Required: True 33 | /// UpdateType: Immutable 34 | /// PrimitiveType: String 35 | /// 36 | public dynamic VpcId 37 | { 38 | get; 39 | set; 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /src/Humidifier/EC2/NetworkInterfacePermission.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.EC2 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class NetworkInterfacePermission : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::EC2::NetworkInterfacePermission"; 12 | } 13 | } 14 | 15 | /// 16 | /// AwsAccountId 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterfacepermission.html#cfn-ec2-networkinterfacepermission-awsaccountid 18 | /// Required: True 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic AwsAccountId 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// NetworkInterfaceId 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterfacepermission.html#cfn-ec2-networkinterfacepermission-networkinterfaceid 31 | /// Required: True 32 | /// UpdateType: Immutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic NetworkInterfaceId 36 | { 37 | get; 38 | set; 39 | } 40 | 41 | /// 42 | /// Permission 43 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterfacepermission.html#cfn-ec2-networkinterfacepermission-permission 44 | /// Required: True 45 | /// UpdateType: Immutable 46 | /// PrimitiveType: String 47 | /// 48 | public dynamic Permission 49 | { 50 | get; 51 | set; 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /src/Humidifier/EC2/PlacementGroup.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.EC2 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class PlacementGroup : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::EC2::PlacementGroup"; 12 | } 13 | } 14 | 15 | /// 16 | /// Strategy 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-placementgroup.html#cfn-ec2-placementgroup-strategy 18 | /// Required: False 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic Strategy 23 | { 24 | get; 25 | set; 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /src/Humidifier/EC2/RouteTable.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.EC2 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class RouteTable : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::EC2::RouteTable"; 12 | } 13 | } 14 | 15 | /// 16 | /// Tags 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route-table.html#cfn-ec2-routetable-tags 18 | /// Required: False 19 | /// UpdateType: Mutable 20 | /// Type: List 21 | /// ItemType: Tag 22 | /// 23 | public List Tags 24 | { 25 | get; 26 | set; 27 | } 28 | 29 | /// 30 | /// VpcId 31 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route-table.html#cfn-ec2-routetable-vpcid 32 | /// Required: True 33 | /// UpdateType: Immutable 34 | /// PrimitiveType: String 35 | /// 36 | public dynamic VpcId 37 | { 38 | get; 39 | set; 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /src/Humidifier/EC2/SubnetCidrBlock.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.EC2 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class SubnetCidrBlock : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::EC2::SubnetCidrBlock"; 12 | } 13 | } 14 | 15 | /// 16 | /// Ipv6CidrBlock 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnetcidrblock.html#cfn-ec2-subnetcidrblock-ipv6cidrblock 18 | /// Required: True 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic Ipv6CidrBlock 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// SubnetId 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnetcidrblock.html#cfn-ec2-subnetcidrblock-subnetid 31 | /// Required: True 32 | /// UpdateType: Immutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic SubnetId 36 | { 37 | get; 38 | set; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /src/Humidifier/EC2/SubnetNetworkAclAssociation.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.EC2 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class SubnetNetworkAclAssociation : Humidifier.Resource 6 | { 7 | public static class Attributes 8 | { 9 | public static string AssociationId = "AssociationId" ; 10 | } 11 | 12 | public override string AWSTypeName 13 | { 14 | get 15 | { 16 | return @"AWS::EC2::SubnetNetworkAclAssociation"; 17 | } 18 | } 19 | 20 | /// 21 | /// NetworkAclId 22 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet-network-acl-assoc.html#cfn-ec2-subnetnetworkaclassociation-networkaclid 23 | /// Required: True 24 | /// UpdateType: Immutable 25 | /// PrimitiveType: String 26 | /// 27 | public dynamic NetworkAclId 28 | { 29 | get; 30 | set; 31 | } 32 | 33 | /// 34 | /// SubnetId 35 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet-network-acl-assoc.html#cfn-ec2-subnetnetworkaclassociation-associationid 36 | /// Required: True 37 | /// UpdateType: Immutable 38 | /// PrimitiveType: String 39 | /// 40 | public dynamic SubnetId 41 | { 42 | get; 43 | set; 44 | } 45 | } 46 | } -------------------------------------------------------------------------------- /src/Humidifier/EC2/SubnetRouteTableAssociation.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.EC2 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class SubnetRouteTableAssociation : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::EC2::SubnetRouteTableAssociation"; 12 | } 13 | } 14 | 15 | /// 16 | /// RouteTableId 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet-route-table-assoc.html#cfn-ec2-subnetroutetableassociation-routetableid 18 | /// Required: True 19 | /// UpdateType: Mutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic RouteTableId 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// SubnetId 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet-route-table-assoc.html#cfn-ec2-subnetroutetableassociation-subnetid 31 | /// Required: True 32 | /// UpdateType: Immutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic SubnetId 36 | { 37 | get; 38 | set; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /src/Humidifier/EC2/TrafficMirrorFilter.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.EC2 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class TrafficMirrorFilter : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::EC2::TrafficMirrorFilter"; 12 | } 13 | } 14 | 15 | /// 16 | /// Description 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorfilter.html#cfn-ec2-trafficmirrorfilter-description 18 | /// Required: False 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic Description 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// NetworkServices 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorfilter.html#cfn-ec2-trafficmirrorfilter-networkservices 31 | /// Required: False 32 | /// UpdateType: Mutable 33 | /// Type: List 34 | /// PrimitiveItemType: String 35 | /// 36 | public dynamic NetworkServices 37 | { 38 | get; 39 | set; 40 | } 41 | 42 | /// 43 | /// Tags 44 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorfilter.html#cfn-ec2-trafficmirrorfilter-tags 45 | /// Required: False 46 | /// UpdateType: Mutable 47 | /// Type: List 48 | /// ItemType: Tag 49 | /// 50 | public List Tags 51 | { 52 | get; 53 | set; 54 | } 55 | } 56 | } -------------------------------------------------------------------------------- /src/Humidifier/EC2/TransitGatewayRouteTable.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.EC2 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class TransitGatewayRouteTable : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::EC2::TransitGatewayRouteTable"; 12 | } 13 | } 14 | 15 | /// 16 | /// TransitGatewayId 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetable.html#cfn-ec2-transitgatewayroutetable-transitgatewayid 18 | /// Required: True 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic TransitGatewayId 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// Tags 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetable.html#cfn-ec2-transitgatewayroutetable-tags 31 | /// Required: False 32 | /// UpdateType: Immutable 33 | /// Type: List 34 | /// ItemType: Tag 35 | /// 36 | public List Tags 37 | { 38 | get; 39 | set; 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /src/Humidifier/EC2/TransitGatewayRouteTableAssociation.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.EC2 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class TransitGatewayRouteTableAssociation : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::EC2::TransitGatewayRouteTableAssociation"; 12 | } 13 | } 14 | 15 | /// 16 | /// TransitGatewayRouteTableId 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetableassociation.html#cfn-ec2-transitgatewayroutetableassociation-transitgatewayroutetableid 18 | /// Required: True 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic TransitGatewayRouteTableId 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// TransitGatewayAttachmentId 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetableassociation.html#cfn-ec2-transitgatewayroutetableassociation-transitgatewayattachmentid 31 | /// Required: True 32 | /// UpdateType: Immutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic TransitGatewayAttachmentId 36 | { 37 | get; 38 | set; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /src/Humidifier/EC2/TransitGatewayRouteTablePropagation.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.EC2 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class TransitGatewayRouteTablePropagation : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::EC2::TransitGatewayRouteTablePropagation"; 12 | } 13 | } 14 | 15 | /// 16 | /// TransitGatewayRouteTableId 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetablepropagation.html#cfn-ec2-transitgatewayroutetablepropagation-transitgatewayroutetableid 18 | /// Required: True 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic TransitGatewayRouteTableId 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// TransitGatewayAttachmentId 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetablepropagation.html#cfn-ec2-transitgatewayroutetablepropagation-transitgatewayattachmentid 31 | /// Required: True 32 | /// UpdateType: Immutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic TransitGatewayAttachmentId 36 | { 37 | get; 38 | set; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /src/Humidifier/EC2/VPCCidrBlock.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.EC2 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class VPCCidrBlock : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::EC2::VPCCidrBlock"; 12 | } 13 | } 14 | 15 | /// 16 | /// AmazonProvidedIpv6CidrBlock 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html#cfn-ec2-vpccidrblock-amazonprovidedipv6cidrblock 18 | /// Required: False 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: Boolean 21 | /// 22 | public dynamic AmazonProvidedIpv6CidrBlock 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// CidrBlock 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html#cfn-ec2-vpccidrblock-cidrblock 31 | /// Required: False 32 | /// UpdateType: Immutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic CidrBlock 36 | { 37 | get; 38 | set; 39 | } 40 | 41 | /// 42 | /// VpcId 43 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html#cfn-ec2-vpccidrblock-vpcid 44 | /// Required: True 45 | /// UpdateType: Immutable 46 | /// PrimitiveType: String 47 | /// 48 | public dynamic VpcId 49 | { 50 | get; 51 | set; 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /src/Humidifier/EC2/VPCDHCPOptionsAssociation.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.EC2 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class VPCDHCPOptionsAssociation : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::EC2::VPCDHCPOptionsAssociation"; 12 | } 13 | } 14 | 15 | /// 16 | /// DhcpOptionsId 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc-dhcp-options-assoc.html#cfn-ec2-vpcdhcpoptionsassociation-dhcpoptionsid 18 | /// Required: True 19 | /// UpdateType: Mutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic DhcpOptionsId 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// VpcId 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc-dhcp-options-assoc.html#cfn-ec2-vpcdhcpoptionsassociation-vpcid 31 | /// Required: True 32 | /// UpdateType: Immutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic VpcId 36 | { 37 | get; 38 | set; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /src/Humidifier/EC2/VPCEndpointService.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.EC2 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class VPCEndpointService : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::EC2::VPCEndpointService"; 12 | } 13 | } 14 | 15 | /// 16 | /// NetworkLoadBalancerArns 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservice.html#cfn-ec2-vpcendpointservice-networkloadbalancerarns 18 | /// Required: True 19 | /// UpdateType: Mutable 20 | /// Type: List 21 | /// PrimitiveItemType: String 22 | /// 23 | public dynamic NetworkLoadBalancerArns 24 | { 25 | get; 26 | set; 27 | } 28 | 29 | /// 30 | /// AcceptanceRequired 31 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservice.html#cfn-ec2-vpcendpointservice-acceptancerequired 32 | /// Required: False 33 | /// UpdateType: Mutable 34 | /// PrimitiveType: Boolean 35 | /// 36 | public dynamic AcceptanceRequired 37 | { 38 | get; 39 | set; 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /src/Humidifier/EC2/VPCEndpointServicePermissions.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.EC2 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class VPCEndpointServicePermissions : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::EC2::VPCEndpointServicePermissions"; 12 | } 13 | } 14 | 15 | /// 16 | /// AllowedPrincipals 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservicepermissions.html#cfn-ec2-vpcendpointservicepermissions-allowedprincipals 18 | /// Required: False 19 | /// UpdateType: Mutable 20 | /// Type: List 21 | /// PrimitiveItemType: String 22 | /// 23 | public dynamic AllowedPrincipals 24 | { 25 | get; 26 | set; 27 | } 28 | 29 | /// 30 | /// ServiceId 31 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservicepermissions.html#cfn-ec2-vpcendpointservicepermissions-serviceid 32 | /// Required: True 33 | /// UpdateType: Immutable 34 | /// PrimitiveType: String 35 | /// 36 | public dynamic ServiceId 37 | { 38 | get; 39 | set; 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /src/Humidifier/EC2/VPCGatewayAttachment.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.EC2 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class VPCGatewayAttachment : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::EC2::VPCGatewayAttachment"; 12 | } 13 | } 14 | 15 | /// 16 | /// InternetGatewayId 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc-gateway-attachment.html#cfn-ec2-vpcgatewayattachment-internetgatewayid 18 | /// Required: False 19 | /// UpdateType: Mutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic InternetGatewayId 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// VpcId 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc-gateway-attachment.html#cfn-ec2-vpcgatewayattachment-vpcid 31 | /// Required: True 32 | /// UpdateType: Mutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic VpcId 36 | { 37 | get; 38 | set; 39 | } 40 | 41 | /// 42 | /// VpnGatewayId 43 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc-gateway-attachment.html#cfn-ec2-vpcgatewayattachment-vpngatewayid 44 | /// Required: False 45 | /// UpdateType: Mutable 46 | /// PrimitiveType: String 47 | /// 48 | public dynamic VpnGatewayId 49 | { 50 | get; 51 | set; 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /src/Humidifier/EC2/VPNConnectionRoute.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.EC2 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class VPNConnectionRoute : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::EC2::VPNConnectionRoute"; 12 | } 13 | } 14 | 15 | /// 16 | /// DestinationCidrBlock 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-connection-route.html#cfn-ec2-vpnconnectionroute-cidrblock 18 | /// Required: True 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic DestinationCidrBlock 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// VpnConnectionId 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-connection-route.html#cfn-ec2-vpnconnectionroute-connectionid 31 | /// Required: True 32 | /// UpdateType: Immutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic VpnConnectionId 36 | { 37 | get; 38 | set; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /src/Humidifier/EC2/VPNGateway.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.EC2 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class VPNGateway : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::EC2::VPNGateway"; 12 | } 13 | } 14 | 15 | /// 16 | /// AmazonSideAsn 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-gateway.html#cfn-ec2-vpngateway-amazonsideasn 18 | /// Required: False 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: Long 21 | /// 22 | public dynamic AmazonSideAsn 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// Tags 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-gateway.html#cfn-ec2-vpngateway-tags 31 | /// Required: False 32 | /// UpdateType: Mutable 33 | /// Type: List 34 | /// ItemType: Tag 35 | /// 36 | public List Tags 37 | { 38 | get; 39 | set; 40 | } 41 | 42 | /// 43 | /// Type 44 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-gateway.html#cfn-ec2-vpngateway-type 45 | /// Required: True 46 | /// UpdateType: Immutable 47 | /// PrimitiveType: String 48 | /// 49 | public dynamic Type 50 | { 51 | get; 52 | set; 53 | } 54 | } 55 | } -------------------------------------------------------------------------------- /src/Humidifier/EC2/VPNGatewayRoutePropagation.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.EC2 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class VPNGatewayRoutePropagation : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::EC2::VPNGatewayRoutePropagation"; 12 | } 13 | } 14 | 15 | /// 16 | /// RouteTableIds 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-gatewayrouteprop.html#cfn-ec2-vpngatewayrouteprop-routetableids 18 | /// Required: True 19 | /// UpdateType: Mutable 20 | /// Type: List 21 | /// PrimitiveItemType: String 22 | /// 23 | public dynamic RouteTableIds 24 | { 25 | get; 26 | set; 27 | } 28 | 29 | /// 30 | /// VpnGatewayId 31 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-gatewayrouteprop.html#cfn-ec2-vpngatewayrouteprop-vpngatewayid 32 | /// Required: True 33 | /// UpdateType: Mutable 34 | /// PrimitiveType: String 35 | /// 36 | public dynamic VpnGatewayId 37 | { 38 | get; 39 | set; 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /src/Humidifier/EC2/VolumeAttachment.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.EC2 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class VolumeAttachment : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::EC2::VolumeAttachment"; 12 | } 13 | } 14 | 15 | /// 16 | /// Device 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volumeattachment.html#cfn-ec2-ebs-volumeattachment-device 18 | /// Required: True 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic Device 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// InstanceId 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volumeattachment.html#cfn-ec2-ebs-volumeattachment-instanceid 31 | /// Required: True 32 | /// UpdateType: Immutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic InstanceId 36 | { 37 | get; 38 | set; 39 | } 40 | 41 | /// 42 | /// VolumeId 43 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volumeattachment.html#cfn-ec2-ebs-volumeattachment-volumeid 44 | /// Required: True 45 | /// UpdateType: Immutable 46 | /// PrimitiveType: String 47 | /// 48 | public dynamic VolumeId 49 | { 50 | get; 51 | set; 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /src/Humidifier/ECS/PrimaryTaskSet.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.ECS 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class PrimaryTaskSet : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::ECS::PrimaryTaskSet"; 12 | } 13 | } 14 | 15 | /// 16 | /// Cluster 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-primarytaskset.html#cfn-ecs-primarytaskset-cluster 18 | /// Required: True 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic Cluster 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// TaskSetId 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-primarytaskset.html#cfn-ecs-primarytaskset-tasksetid 31 | /// Required: True 32 | /// UpdateType: Mutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic TaskSetId 36 | { 37 | get; 38 | set; 39 | } 40 | 41 | /// 42 | /// Service 43 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-primarytaskset.html#cfn-ecs-primarytaskset-service 44 | /// Required: True 45 | /// UpdateType: Immutable 46 | /// PrimitiveType: String 47 | /// 48 | public dynamic Service 49 | { 50 | get; 51 | set; 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /src/Humidifier/EMR/SecurityConfiguration.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.EMR 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class SecurityConfiguration : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::EMR::SecurityConfiguration"; 12 | } 13 | } 14 | 15 | /// 16 | /// Name 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-securityconfiguration.html#cfn-emr-securityconfiguration-name 18 | /// Required: False 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic Name 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// SecurityConfiguration 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-securityconfiguration.html#cfn-emr-securityconfiguration-securityconfiguration 31 | /// Required: True 32 | /// UpdateType: Immutable 33 | /// PrimitiveType: Json 34 | /// 35 | public dynamic SecurityConfiguration_ 36 | { 37 | get; 38 | set; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /src/Humidifier/ElastiCache/ParameterGroup.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.ElastiCache 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class ParameterGroup : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::ElastiCache::ParameterGroup"; 12 | } 13 | } 14 | 15 | /// 16 | /// CacheParameterGroupFamily 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-parameter-group.html#cfn-elasticache-parametergroup-cacheparametergroupfamily 18 | /// Required: True 19 | /// UpdateType: Mutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic CacheParameterGroupFamily 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// Description 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-parameter-group.html#cfn-elasticache-parametergroup-description 31 | /// Required: True 32 | /// UpdateType: Mutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic Description 36 | { 37 | get; 38 | set; 39 | } 40 | 41 | /// 42 | /// Properties 43 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-parameter-group.html#cfn-elasticache-parametergroup-properties 44 | /// Required: False 45 | /// UpdateType: Mutable 46 | /// Type: Map 47 | /// PrimitiveItemType: String 48 | /// 49 | public Dictionary Properties 50 | { 51 | get; 52 | set; 53 | } 54 | } 55 | } -------------------------------------------------------------------------------- /src/Humidifier/ElastiCache/SecurityGroup.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.ElastiCache 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class SecurityGroup : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::ElastiCache::SecurityGroup"; 12 | } 13 | } 14 | 15 | /// 16 | /// Description 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-security-group.html#cfn-elasticache-securitygroup-description 18 | /// Required: True 19 | /// UpdateType: Mutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic Description 23 | { 24 | get; 25 | set; 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /src/Humidifier/ElastiCache/SecurityGroupIngress.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.ElastiCache 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class SecurityGroupIngress : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::ElastiCache::SecurityGroupIngress"; 12 | } 13 | } 14 | 15 | /// 16 | /// CacheSecurityGroupName 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-security-group-ingress.html#cfn-elasticache-securitygroupingress-cachesecuritygroupname 18 | /// Required: True 19 | /// UpdateType: Mutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic CacheSecurityGroupName 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// EC2SecurityGroupName 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-security-group-ingress.html#cfn-elasticache-securitygroupingress-ec2securitygroupname 31 | /// Required: True 32 | /// UpdateType: Mutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic EC2SecurityGroupName 36 | { 37 | get; 38 | set; 39 | } 40 | 41 | /// 42 | /// EC2SecurityGroupOwnerId 43 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-security-group-ingress.html#cfn-elasticache-securitygroupingress-ec2securitygroupownerid 44 | /// Required: False 45 | /// UpdateType: Mutable 46 | /// PrimitiveType: String 47 | /// 48 | public dynamic EC2SecurityGroupOwnerId 49 | { 50 | get; 51 | set; 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /src/Humidifier/ElastiCache/SubnetGroup.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.ElastiCache 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class SubnetGroup : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::ElastiCache::SubnetGroup"; 12 | } 13 | } 14 | 15 | /// 16 | /// CacheSubnetGroupName 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-subnetgroup.html#cfn-elasticache-subnetgroup-cachesubnetgroupname 18 | /// Required: False 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic CacheSubnetGroupName 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// Description 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-subnetgroup.html#cfn-elasticache-subnetgroup-description 31 | /// Required: True 32 | /// UpdateType: Mutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic Description 36 | { 37 | get; 38 | set; 39 | } 40 | 41 | /// 42 | /// SubnetIds 43 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-subnetgroup.html#cfn-elasticache-subnetgroup-subnetids 44 | /// Required: True 45 | /// UpdateType: Mutable 46 | /// Type: List 47 | /// PrimitiveItemType: String 48 | /// 49 | public dynamic SubnetIds 50 | { 51 | get; 52 | set; 53 | } 54 | } 55 | } -------------------------------------------------------------------------------- /src/Humidifier/Events/EventBus.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.Events 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class EventBus : Humidifier.Resource 6 | { 7 | public static class Attributes 8 | { 9 | public static string Policy = "Policy" ; 10 | public static string Arn = "Arn" ; 11 | public static string Name = "Name" ; 12 | } 13 | 14 | public override string AWSTypeName 15 | { 16 | get 17 | { 18 | return @"AWS::Events::EventBus"; 19 | } 20 | } 21 | 22 | /// 23 | /// EventSourceName 24 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbus.html#cfn-events-eventbus-eventsourcename 25 | /// Required: False 26 | /// UpdateType: Immutable 27 | /// PrimitiveType: String 28 | /// 29 | public dynamic EventSourceName 30 | { 31 | get; 32 | set; 33 | } 34 | 35 | /// 36 | /// Name 37 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbus.html#cfn-events-eventbus-name 38 | /// Required: True 39 | /// UpdateType: Immutable 40 | /// PrimitiveType: String 41 | /// 42 | public dynamic Name 43 | { 44 | get; 45 | set; 46 | } 47 | } 48 | } -------------------------------------------------------------------------------- /src/Humidifier/FMS/NotificationChannel.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.FMS 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class NotificationChannel : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::FMS::NotificationChannel"; 12 | } 13 | } 14 | 15 | /// 16 | /// SnsRoleName 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fms-notificationchannel.html#cfn-fms-notificationchannel-snsrolename 18 | /// Required: True 19 | /// UpdateType: Mutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic SnsRoleName 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// SnsTopicArn 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fms-notificationchannel.html#cfn-fms-notificationchannel-snstopicarn 31 | /// Required: True 32 | /// UpdateType: Mutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic SnsTopicArn 36 | { 37 | get; 38 | set; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /src/Humidifier/GameLift/MatchmakingRuleSet.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.GameLift 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class MatchmakingRuleSet : Humidifier.Resource 6 | { 7 | public static class Attributes 8 | { 9 | public static string Arn = "Arn" ; 10 | public static string Name = "Name" ; 11 | } 12 | 13 | public override string AWSTypeName 14 | { 15 | get 16 | { 17 | return @"AWS::GameLift::MatchmakingRuleSet"; 18 | } 19 | } 20 | 21 | /// 22 | /// RuleSetBody 23 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingruleset.html#cfn-gamelift-matchmakingruleset-rulesetbody 24 | /// Required: True 25 | /// UpdateType: Immutable 26 | /// PrimitiveType: String 27 | /// 28 | public dynamic RuleSetBody 29 | { 30 | get; 31 | set; 32 | } 33 | 34 | /// 35 | /// Name 36 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingruleset.html#cfn-gamelift-matchmakingruleset-name 37 | /// Required: True 38 | /// UpdateType: Immutable 39 | /// PrimitiveType: String 40 | /// 41 | public dynamic Name 42 | { 43 | get; 44 | set; 45 | } 46 | } 47 | } -------------------------------------------------------------------------------- /src/Humidifier/GuardDuty/Detector.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.GuardDuty 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class Detector : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::GuardDuty::Detector"; 12 | } 13 | } 14 | 15 | /// 16 | /// FindingPublishingFrequency 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-detector.html#cfn-guardduty-detector-findingpublishingfrequency 18 | /// Required: False 19 | /// UpdateType: Mutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic FindingPublishingFrequency 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// Enable 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-detector.html#cfn-guardduty-detector-enable 31 | /// Required: True 32 | /// UpdateType: Mutable 33 | /// PrimitiveType: Boolean 34 | /// 35 | public dynamic Enable 36 | { 37 | get; 38 | set; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /src/Humidifier/GuardDuty/Master.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.GuardDuty 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class Master : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::GuardDuty::Master"; 12 | } 13 | } 14 | 15 | /// 16 | /// DetectorId 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-master.html#cfn-guardduty-master-detectorid 18 | /// Required: True 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic DetectorId 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// MasterId 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-master.html#cfn-guardduty-master-masterid 31 | /// Required: True 32 | /// UpdateType: Immutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic MasterId 36 | { 37 | get; 38 | set; 39 | } 40 | 41 | /// 42 | /// InvitationId 43 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-master.html#cfn-guardduty-master-invitationid 44 | /// Required: False 45 | /// UpdateType: Immutable 46 | /// PrimitiveType: String 47 | /// 48 | public dynamic InvitationId 49 | { 50 | get; 51 | set; 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /src/Humidifier/Humidifier.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Humidifier allows you to build AWS CloudFormation templates programmatically. 5 | Jake Scott 6 | Humidifier 7 | en-US 8 | 0.3.1 9 | Jake Scott 10 | net45;netstandard1.3;netstandard2.0 11 | Humidifier 12 | Humidifier 13 | aws;cloudformation; 14 | https://raw.githubusercontent.com/jakejscott/humidifier/master/img/humidifier.png 15 | https://github.com/jakejscott/humidifier 16 | https://github.com/jakejscott/humidifier/blob/master/license.txt 17 | Full 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | true 26 | 27 | 28 | -------------------------------------------------------------------------------- /src/Humidifier/IAM/AccessKey.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.IAM 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class AccessKey : Humidifier.Resource 6 | { 7 | public static class Attributes 8 | { 9 | public static string SecretAccessKey = "SecretAccessKey" ; 10 | } 11 | 12 | public override string AWSTypeName 13 | { 14 | get 15 | { 16 | return @"AWS::IAM::AccessKey"; 17 | } 18 | } 19 | 20 | /// 21 | /// Serial 22 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html#cfn-iam-accesskey-serial 23 | /// Required: False 24 | /// UpdateType: Immutable 25 | /// PrimitiveType: Integer 26 | /// 27 | public dynamic Serial 28 | { 29 | get; 30 | set; 31 | } 32 | 33 | /// 34 | /// Status 35 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html#cfn-iam-accesskey-status 36 | /// Required: False 37 | /// UpdateType: Mutable 38 | /// PrimitiveType: String 39 | /// 40 | public dynamic Status 41 | { 42 | get; 43 | set; 44 | } 45 | 46 | /// 47 | /// UserName 48 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html#cfn-iam-accesskey-username 49 | /// Required: True 50 | /// UpdateType: Immutable 51 | /// PrimitiveType: String 52 | /// 53 | public dynamic UserName 54 | { 55 | get; 56 | set; 57 | } 58 | } 59 | } -------------------------------------------------------------------------------- /src/Humidifier/IAM/InstanceProfile.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.IAM 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class InstanceProfile : Humidifier.Resource 6 | { 7 | public static class Attributes 8 | { 9 | public static string Arn = "Arn" ; 10 | } 11 | 12 | public override string AWSTypeName 13 | { 14 | get 15 | { 16 | return @"AWS::IAM::InstanceProfile"; 17 | } 18 | } 19 | 20 | /// 21 | /// InstanceProfileName 22 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html#cfn-iam-instanceprofile-instanceprofilename 23 | /// Required: False 24 | /// UpdateType: Immutable 25 | /// PrimitiveType: String 26 | /// 27 | public dynamic InstanceProfileName 28 | { 29 | get; 30 | set; 31 | } 32 | 33 | /// 34 | /// Path 35 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html#cfn-iam-instanceprofile-path 36 | /// Required: False 37 | /// UpdateType: Immutable 38 | /// PrimitiveType: String 39 | /// 40 | public dynamic Path 41 | { 42 | get; 43 | set; 44 | } 45 | 46 | /// 47 | /// Roles 48 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html#cfn-iam-instanceprofile-roles 49 | /// Required: True 50 | /// UpdateType: Mutable 51 | /// Type: List 52 | /// PrimitiveItemType: String 53 | /// 54 | public dynamic Roles 55 | { 56 | get; 57 | set; 58 | } 59 | } 60 | } -------------------------------------------------------------------------------- /src/Humidifier/IAM/ServiceLinkedRole.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.IAM 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class ServiceLinkedRole : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::IAM::ServiceLinkedRole"; 12 | } 13 | } 14 | 15 | /// 16 | /// CustomSuffix 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servicelinkedrole.html#cfn-iam-servicelinkedrole-customsuffix 18 | /// Required: False 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic CustomSuffix 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// Description 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servicelinkedrole.html#cfn-iam-servicelinkedrole-description 31 | /// Required: False 32 | /// UpdateType: Mutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic Description 36 | { 37 | get; 38 | set; 39 | } 40 | 41 | /// 42 | /// AWSServiceName 43 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servicelinkedrole.html#cfn-iam-servicelinkedrole-awsservicename 44 | /// Required: True 45 | /// UpdateType: Immutable 46 | /// PrimitiveType: String 47 | /// 48 | public dynamic AWSServiceName 49 | { 50 | get; 51 | set; 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /src/Humidifier/IAM/UserToGroupAddition.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.IAM 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class UserToGroupAddition : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::IAM::UserToGroupAddition"; 12 | } 13 | } 14 | 15 | /// 16 | /// GroupName 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html#cfn-iam-addusertogroup-groupname 18 | /// Required: True 19 | /// UpdateType: Mutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic GroupName 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// Users 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html#cfn-iam-addusertogroup-users 31 | /// Required: True 32 | /// UpdateType: Mutable 33 | /// Type: List 34 | /// PrimitiveItemType: String 35 | /// 36 | public dynamic Users 37 | { 38 | get; 39 | set; 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /src/Humidifier/IStackSerializer.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier 2 | { 3 | public interface IStackSerializer 4 | { 5 | string Serialize(Stack stack); 6 | } 7 | } -------------------------------------------------------------------------------- /src/Humidifier/Inspector/AssessmentTarget.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.Inspector 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class AssessmentTarget : Humidifier.Resource 6 | { 7 | public static class Attributes 8 | { 9 | public static string Arn = "Arn" ; 10 | } 11 | 12 | public override string AWSTypeName 13 | { 14 | get 15 | { 16 | return @"AWS::Inspector::AssessmentTarget"; 17 | } 18 | } 19 | 20 | /// 21 | /// AssessmentTargetName 22 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttarget.html#cfn-inspector-assessmenttarget-assessmenttargetname 23 | /// Required: False 24 | /// UpdateType: Immutable 25 | /// PrimitiveType: String 26 | /// 27 | public dynamic AssessmentTargetName 28 | { 29 | get; 30 | set; 31 | } 32 | 33 | /// 34 | /// ResourceGroupArn 35 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttarget.html#cfn-inspector-assessmenttarget-resourcegrouparn 36 | /// Required: False 37 | /// UpdateType: Mutable 38 | /// PrimitiveType: String 39 | /// 40 | public dynamic ResourceGroupArn 41 | { 42 | get; 43 | set; 44 | } 45 | } 46 | } -------------------------------------------------------------------------------- /src/Humidifier/Inspector/ResourceGroup.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.Inspector 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class ResourceGroup : Humidifier.Resource 6 | { 7 | public static class Attributes 8 | { 9 | public static string Arn = "Arn" ; 10 | } 11 | 12 | public override string AWSTypeName 13 | { 14 | get 15 | { 16 | return @"AWS::Inspector::ResourceGroup"; 17 | } 18 | } 19 | 20 | /// 21 | /// ResourceGroupTags 22 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-resourcegroup.html#cfn-inspector-resourcegroup-resourcegrouptags 23 | /// Required: True 24 | /// UpdateType: Immutable 25 | /// Type: List 26 | /// ItemType: Tag 27 | /// 28 | public List ResourceGroupTags 29 | { 30 | get; 31 | set; 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /src/Humidifier/IoT/Certificate.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.IoT 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class Certificate : Humidifier.Resource 6 | { 7 | public static class Attributes 8 | { 9 | public static string Arn = "Arn" ; 10 | } 11 | 12 | public override string AWSTypeName 13 | { 14 | get 15 | { 16 | return @"AWS::IoT::Certificate"; 17 | } 18 | } 19 | 20 | /// 21 | /// CertificateSigningRequest 22 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-certificate.html#cfn-iot-certificate-certificatesigningrequest 23 | /// Required: True 24 | /// UpdateType: Immutable 25 | /// PrimitiveType: String 26 | /// 27 | public dynamic CertificateSigningRequest 28 | { 29 | get; 30 | set; 31 | } 32 | 33 | /// 34 | /// Status 35 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-certificate.html#cfn-iot-certificate-status 36 | /// Required: True 37 | /// UpdateType: Mutable 38 | /// PrimitiveType: String 39 | /// 40 | public dynamic Status 41 | { 42 | get; 43 | set; 44 | } 45 | } 46 | } -------------------------------------------------------------------------------- /src/Humidifier/IoT/Policy.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.IoT 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class Policy : Humidifier.Resource 6 | { 7 | public static class Attributes 8 | { 9 | public static string Arn = "Arn" ; 10 | } 11 | 12 | public override string AWSTypeName 13 | { 14 | get 15 | { 16 | return @"AWS::IoT::Policy"; 17 | } 18 | } 19 | 20 | /// 21 | /// PolicyDocument 22 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-policy.html#cfn-iot-policy-policydocument 23 | /// Required: True 24 | /// UpdateType: Immutable 25 | /// PrimitiveType: Json 26 | /// 27 | public dynamic PolicyDocument 28 | { 29 | get; 30 | set; 31 | } 32 | 33 | /// 34 | /// PolicyName 35 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-policy.html#cfn-iot-policy-policyname 36 | /// Required: False 37 | /// UpdateType: Immutable 38 | /// PrimitiveType: String 39 | /// 40 | public dynamic PolicyName 41 | { 42 | get; 43 | set; 44 | } 45 | } 46 | } -------------------------------------------------------------------------------- /src/Humidifier/IoT/PolicyPrincipalAttachment.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.IoT 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class PolicyPrincipalAttachment : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::IoT::PolicyPrincipalAttachment"; 12 | } 13 | } 14 | 15 | /// 16 | /// PolicyName 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-policyprincipalattachment.html#cfn-iot-policyprincipalattachment-policyname 18 | /// Required: True 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic PolicyName 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// Principal 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-policyprincipalattachment.html#cfn-iot-policyprincipalattachment-principal 31 | /// Required: True 32 | /// UpdateType: Immutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic Principal 36 | { 37 | get; 38 | set; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /src/Humidifier/IoT/Thing.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.IoT 2 | { 3 | using System.Collections.Generic; 4 | using ThingTypes; 5 | 6 | public class Thing : Humidifier.Resource 7 | { 8 | public override string AWSTypeName 9 | { 10 | get 11 | { 12 | return @"AWS::IoT::Thing"; 13 | } 14 | } 15 | 16 | /// 17 | /// AttributePayload 18 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thing.html#cfn-iot-thing-attributepayload 19 | /// Required: False 20 | /// UpdateType: Mutable 21 | /// Type: AttributePayload 22 | /// 23 | public AttributePayload AttributePayload 24 | { 25 | get; 26 | set; 27 | } 28 | 29 | /// 30 | /// ThingName 31 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thing.html#cfn-iot-thing-thingname 32 | /// Required: False 33 | /// UpdateType: Immutable 34 | /// PrimitiveType: String 35 | /// 36 | public dynamic ThingName 37 | { 38 | get; 39 | set; 40 | } 41 | } 42 | 43 | namespace ThingTypes 44 | { 45 | public class AttributePayload 46 | { 47 | /// 48 | /// Attributes 49 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-thing-attributepayload.html#cfn-iot-thing-attributepayload-attributes 50 | /// Required: False 51 | /// UpdateType: Mutable 52 | /// Type: Map 53 | /// PrimitiveItemType: String 54 | /// 55 | public Dictionary Attributes_ 56 | { 57 | get; 58 | set; 59 | } 60 | } 61 | } 62 | } -------------------------------------------------------------------------------- /src/Humidifier/IoT/ThingPrincipalAttachment.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.IoT 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class ThingPrincipalAttachment : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::IoT::ThingPrincipalAttachment"; 12 | } 13 | } 14 | 15 | /// 16 | /// Principal 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thingprincipalattachment.html#cfn-iot-thingprincipalattachment-principal 18 | /// Required: True 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic Principal 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// ThingName 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thingprincipalattachment.html#cfn-iot-thingprincipalattachment-thingname 31 | /// Required: True 32 | /// UpdateType: Immutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic ThingName 36 | { 37 | get; 38 | set; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /src/Humidifier/IoT1Click/Device.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.IoT1Click 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class Device : Humidifier.Resource 6 | { 7 | public static class Attributes 8 | { 9 | public static string DeviceId = "DeviceId" ; 10 | public static string Enabled = "Enabled" ; 11 | public static string Arn = "Arn" ; 12 | } 13 | 14 | public override string AWSTypeName 15 | { 16 | get 17 | { 18 | return @"AWS::IoT1Click::Device"; 19 | } 20 | } 21 | 22 | /// 23 | /// DeviceId 24 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot1click-device.html#cfn-iot1click-device-deviceid 25 | /// Required: True 26 | /// UpdateType: Immutable 27 | /// PrimitiveType: String 28 | /// 29 | public dynamic DeviceId 30 | { 31 | get; 32 | set; 33 | } 34 | 35 | /// 36 | /// Enabled 37 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot1click-device.html#cfn-iot1click-device-enabled 38 | /// Required: True 39 | /// UpdateType: Mutable 40 | /// PrimitiveType: Boolean 41 | /// 42 | public dynamic Enabled 43 | { 44 | get; 45 | set; 46 | } 47 | } 48 | } -------------------------------------------------------------------------------- /src/Humidifier/KMS/Alias.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.KMS 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class Alias : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::KMS::Alias"; 12 | } 13 | } 14 | 15 | /// 16 | /// AliasName 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-alias.html#cfn-kms-alias-aliasname 18 | /// Required: True 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic AliasName 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// TargetKeyId 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-alias.html#cfn-kms-alias-targetkeyid 31 | /// Required: True 32 | /// UpdateType: Mutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic TargetKeyId 36 | { 37 | get; 38 | set; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /src/Humidifier/Kinesis/StreamConsumer.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.Kinesis 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class StreamConsumer : Humidifier.Resource 6 | { 7 | public static class Attributes 8 | { 9 | public static string ConsumerCreationTimestamp = "ConsumerCreationTimestamp" ; 10 | public static string ConsumerName = "ConsumerName" ; 11 | public static string ConsumerARN = "ConsumerARN" ; 12 | public static string ConsumerStatus = "ConsumerStatus" ; 13 | public static string StreamARN = "StreamARN" ; 14 | } 15 | 16 | public override string AWSTypeName 17 | { 18 | get 19 | { 20 | return @"AWS::Kinesis::StreamConsumer"; 21 | } 22 | } 23 | 24 | /// 25 | /// ConsumerName 26 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-streamconsumer.html#cfn-kinesis-streamconsumer-consumername 27 | /// Required: True 28 | /// UpdateType: Immutable 29 | /// PrimitiveType: String 30 | /// 31 | public dynamic ConsumerName 32 | { 33 | get; 34 | set; 35 | } 36 | 37 | /// 38 | /// StreamARN 39 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-streamconsumer.html#cfn-kinesis-streamconsumer-streamarn 40 | /// Required: True 41 | /// UpdateType: Immutable 42 | /// PrimitiveType: String 43 | /// 44 | public dynamic StreamARN 45 | { 46 | get; 47 | set; 48 | } 49 | } 50 | } -------------------------------------------------------------------------------- /src/Humidifier/LakeFormation/DataLakeSettings.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.LakeFormation 2 | { 3 | using System.Collections.Generic; 4 | using DataLakeSettingsTypes; 5 | 6 | public class DataLakeSettings : Humidifier.Resource 7 | { 8 | public override string AWSTypeName 9 | { 10 | get 11 | { 12 | return @"AWS::LakeFormation::DataLakeSettings"; 13 | } 14 | } 15 | 16 | /// 17 | /// Admins 18 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-datalakesettings.html#cfn-lakeformation-datalakesettings-admins 19 | /// Required: False 20 | /// UpdateType: Mutable 21 | /// Type: Admins 22 | /// 23 | public Admins Admins 24 | { 25 | get; 26 | set; 27 | } 28 | } 29 | 30 | namespace DataLakeSettingsTypes 31 | { 32 | public class DataLakePrincipal 33 | { 34 | /// 35 | /// DataLakePrincipalIdentifier 36 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-datalakesettings-datalakeprincipal.html#cfn-lakeformation-datalakesettings-datalakeprincipal-datalakeprincipalidentifier 37 | /// Required: False 38 | /// UpdateType: Mutable 39 | /// PrimitiveType: String 40 | /// 41 | public dynamic DataLakePrincipalIdentifier 42 | { 43 | get; 44 | set; 45 | } 46 | } 47 | 48 | public class Admins 49 | { 50 | } 51 | } 52 | } -------------------------------------------------------------------------------- /src/Humidifier/LakeFormation/Resource.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.LakeFormation 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class Resource : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::LakeFormation::Resource"; 12 | } 13 | } 14 | 15 | /// 16 | /// ResourceArn 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-resource.html#cfn-lakeformation-resource-resourcearn 18 | /// Required: True 19 | /// UpdateType: Mutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic ResourceArn 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// UseServiceLinkedRole 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-resource.html#cfn-lakeformation-resource-useservicelinkedrole 31 | /// Required: True 32 | /// UpdateType: Mutable 33 | /// PrimitiveType: Boolean 34 | /// 35 | public dynamic UseServiceLinkedRole 36 | { 37 | get; 38 | set; 39 | } 40 | 41 | /// 42 | /// RoleArn 43 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-resource.html#cfn-lakeformation-resource-rolearn 44 | /// Required: False 45 | /// UpdateType: Mutable 46 | /// PrimitiveType: String 47 | /// 48 | public dynamic RoleArn 49 | { 50 | get; 51 | set; 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /src/Humidifier/Logs/LogGroup.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.Logs 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class LogGroup : Humidifier.Resource 6 | { 7 | public static class Attributes 8 | { 9 | public static string Arn = "Arn" ; 10 | } 11 | 12 | public override string AWSTypeName 13 | { 14 | get 15 | { 16 | return @"AWS::Logs::LogGroup"; 17 | } 18 | } 19 | 20 | /// 21 | /// LogGroupName 22 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html#cfn-cwl-loggroup-loggroupname 23 | /// Required: False 24 | /// UpdateType: Immutable 25 | /// PrimitiveType: String 26 | /// 27 | public dynamic LogGroupName 28 | { 29 | get; 30 | set; 31 | } 32 | 33 | /// 34 | /// RetentionInDays 35 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html#cfn-cwl-loggroup-retentionindays 36 | /// Required: False 37 | /// UpdateType: Mutable 38 | /// PrimitiveType: Integer 39 | /// 40 | public dynamic RetentionInDays 41 | { 42 | get; 43 | set; 44 | } 45 | } 46 | } -------------------------------------------------------------------------------- /src/Humidifier/Logs/LogStream.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.Logs 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class LogStream : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::Logs::LogStream"; 12 | } 13 | } 14 | 15 | /// 16 | /// LogGroupName 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-logstream.html#cfn-logs-logstream-loggroupname 18 | /// Required: True 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic LogGroupName 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// LogStreamName 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-logstream.html#cfn-logs-logstream-logstreamname 31 | /// Required: False 32 | /// UpdateType: Immutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic LogStreamName 36 | { 37 | get; 38 | set; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /src/Humidifier/Mapping.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Humidifier 4 | { 5 | public class Mapping : Dictionary> 6 | { 7 | } 8 | } -------------------------------------------------------------------------------- /src/Humidifier/OpsWorks/ElasticLoadBalancerAttachment.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.OpsWorks 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class ElasticLoadBalancerAttachment : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::OpsWorks::ElasticLoadBalancerAttachment"; 12 | } 13 | } 14 | 15 | /// 16 | /// ElasticLoadBalancerName 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-elbattachment.html#cfn-opsworks-elbattachment-elbname 18 | /// Required: True 19 | /// UpdateType: Mutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic ElasticLoadBalancerName 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// LayerId 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-elbattachment.html#cfn-opsworks-elbattachment-layerid 31 | /// Required: True 32 | /// UpdateType: Mutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic LayerId 36 | { 37 | get; 38 | set; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /src/Humidifier/Output.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier 2 | { 3 | public class Output 4 | { 5 | public dynamic Value { get; set; } 6 | public dynamic Export { get; set; } 7 | public dynamic Description { get; set; } 8 | public dynamic Condition { get; set; } 9 | } 10 | } -------------------------------------------------------------------------------- /src/Humidifier/Pinpoint/App.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.Pinpoint 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class App : Humidifier.Resource 6 | { 7 | public static class Attributes 8 | { 9 | public static string Arn = "Arn" ; 10 | } 11 | 12 | public override string AWSTypeName 13 | { 14 | get 15 | { 16 | return @"AWS::Pinpoint::App"; 17 | } 18 | } 19 | 20 | /// 21 | /// Tags 22 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-app.html#cfn-pinpoint-app-tags 23 | /// Required: False 24 | /// UpdateType: Mutable 25 | /// PrimitiveType: Json 26 | /// 27 | public dynamic Tags 28 | { 29 | get; 30 | set; 31 | } 32 | 33 | /// 34 | /// Name 35 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-app.html#cfn-pinpoint-app-name 36 | /// Required: True 37 | /// UpdateType: Immutable 38 | /// PrimitiveType: String 39 | /// 40 | public dynamic Name 41 | { 42 | get; 43 | set; 44 | } 45 | } 46 | } -------------------------------------------------------------------------------- /src/Humidifier/Pinpoint/EventStream.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.Pinpoint 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class EventStream : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::Pinpoint::EventStream"; 12 | } 13 | } 14 | 15 | /// 16 | /// ApplicationId 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-eventstream.html#cfn-pinpoint-eventstream-applicationid 18 | /// Required: True 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic ApplicationId 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// DestinationStreamArn 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-eventstream.html#cfn-pinpoint-eventstream-destinationstreamarn 31 | /// Required: True 32 | /// UpdateType: Mutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic DestinationStreamArn 36 | { 37 | get; 38 | set; 39 | } 40 | 41 | /// 42 | /// RoleArn 43 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-eventstream.html#cfn-pinpoint-eventstream-rolearn 44 | /// Required: True 45 | /// UpdateType: Mutable 46 | /// PrimitiveType: String 47 | /// 48 | public dynamic RoleArn 49 | { 50 | get; 51 | set; 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /src/Humidifier/Pinpoint/GCMChannel.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.Pinpoint 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class GCMChannel : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::Pinpoint::GCMChannel"; 12 | } 13 | } 14 | 15 | /// 16 | /// ApiKey 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-gcmchannel.html#cfn-pinpoint-gcmchannel-apikey 18 | /// Required: True 19 | /// UpdateType: Mutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic ApiKey 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// Enabled 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-gcmchannel.html#cfn-pinpoint-gcmchannel-enabled 31 | /// Required: False 32 | /// UpdateType: Mutable 33 | /// PrimitiveType: Boolean 34 | /// 35 | public dynamic Enabled 36 | { 37 | get; 38 | set; 39 | } 40 | 41 | /// 42 | /// ApplicationId 43 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-gcmchannel.html#cfn-pinpoint-gcmchannel-applicationid 44 | /// Required: True 45 | /// UpdateType: Immutable 46 | /// PrimitiveType: String 47 | /// 48 | public dynamic ApplicationId 49 | { 50 | get; 51 | set; 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /src/Humidifier/Pinpoint/VoiceChannel.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.Pinpoint 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class VoiceChannel : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::Pinpoint::VoiceChannel"; 12 | } 13 | } 14 | 15 | /// 16 | /// Enabled 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-voicechannel.html#cfn-pinpoint-voicechannel-enabled 18 | /// Required: False 19 | /// UpdateType: Mutable 20 | /// PrimitiveType: Boolean 21 | /// 22 | public dynamic Enabled 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// ApplicationId 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-voicechannel.html#cfn-pinpoint-voicechannel-applicationid 31 | /// Required: True 32 | /// UpdateType: Immutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic ApplicationId 36 | { 37 | get; 38 | set; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /src/Humidifier/PolicyDocument.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Humidifier 4 | { 5 | public class PolicyDocument 6 | { 7 | public string Version { get; set; } 8 | public string Id { get; set; } 9 | public List Statement { get; set; } 10 | } 11 | 12 | public class Statement 13 | { 14 | public string Sid { get; set; } 15 | public string Effect { get; set; } 16 | public dynamic Principal { get; set; } 17 | public dynamic NotPrincipal { get; set; } 18 | public dynamic Action { get; set; } 19 | public dynamic NotAction { get; set; } 20 | public dynamic Resource { get; set; } 21 | public dynamic NotResource { get; set; } 22 | 23 | public Dictionary> Condition { get; set; } 24 | } 25 | } -------------------------------------------------------------------------------- /src/Humidifier/Redshift/ClusterSecurityGroup.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.Redshift 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class ClusterSecurityGroup : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::Redshift::ClusterSecurityGroup"; 12 | } 13 | } 14 | 15 | /// 16 | /// Description 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clustersecuritygroup.html#cfn-redshift-clustersecuritygroup-description 18 | /// Required: True 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic Description 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// Tags 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clustersecuritygroup.html#cfn-redshift-clustersecuritygroup-tags 31 | /// Required: False 32 | /// UpdateType: Mutable 33 | /// Type: List 34 | /// ItemType: Tag 35 | /// 36 | public List Tags 37 | { 38 | get; 39 | set; 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /src/Humidifier/Redshift/ClusterSubnetGroup.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.Redshift 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class ClusterSubnetGroup : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::Redshift::ClusterSubnetGroup"; 12 | } 13 | } 14 | 15 | /// 16 | /// Description 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clustersubnetgroup.html#cfn-redshift-clustersubnetgroup-description 18 | /// Required: True 19 | /// UpdateType: Mutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic Description 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// SubnetIds 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clustersubnetgroup.html#cfn-redshift-clustersubnetgroup-subnetids 31 | /// Required: True 32 | /// UpdateType: Mutable 33 | /// Type: List 34 | /// PrimitiveItemType: String 35 | /// 36 | public dynamic SubnetIds 37 | { 38 | get; 39 | set; 40 | } 41 | 42 | /// 43 | /// Tags 44 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clustersubnetgroup.html#cfn-redshift-clustersubnetgroup-tags 45 | /// Required: False 46 | /// UpdateType: Mutable 47 | /// Type: List 48 | /// ItemType: Tag 49 | /// 50 | public List Tags 51 | { 52 | get; 53 | set; 54 | } 55 | } 56 | } -------------------------------------------------------------------------------- /src/Humidifier/Resource.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier 2 | { 3 | public abstract class Resource 4 | { 5 | public abstract string AWSTypeName { get; } 6 | } 7 | } -------------------------------------------------------------------------------- /src/Humidifier/RoboMaker/Fleet.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.RoboMaker 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class Fleet : Humidifier.Resource 6 | { 7 | public static class Attributes 8 | { 9 | public static string Arn = "Arn" ; 10 | } 11 | 12 | public override string AWSTypeName 13 | { 14 | get 15 | { 16 | return @"AWS::RoboMaker::Fleet"; 17 | } 18 | } 19 | 20 | /// 21 | /// Tags 22 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-fleet.html#cfn-robomaker-fleet-tags 23 | /// Required: False 24 | /// UpdateType: Mutable 25 | /// PrimitiveType: Json 26 | /// 27 | public dynamic Tags 28 | { 29 | get; 30 | set; 31 | } 32 | 33 | /// 34 | /// Name 35 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-fleet.html#cfn-robomaker-fleet-name 36 | /// Required: False 37 | /// UpdateType: Immutable 38 | /// PrimitiveType: String 39 | /// 40 | public dynamic Name 41 | { 42 | get; 43 | set; 44 | } 45 | } 46 | } -------------------------------------------------------------------------------- /src/Humidifier/RoboMaker/RobotApplicationVersion.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.RoboMaker 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class RobotApplicationVersion : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::RoboMaker::RobotApplicationVersion"; 12 | } 13 | } 14 | 15 | /// 16 | /// CurrentRevisionId 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robotapplicationversion.html#cfn-robomaker-robotapplicationversion-currentrevisionid 18 | /// Required: False 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic CurrentRevisionId 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// Application 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robotapplicationversion.html#cfn-robomaker-robotapplicationversion-application 31 | /// Required: True 32 | /// UpdateType: Immutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic Application 36 | { 37 | get; 38 | set; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /src/Humidifier/RoboMaker/SimulationApplicationVersion.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.RoboMaker 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class SimulationApplicationVersion : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::RoboMaker::SimulationApplicationVersion"; 12 | } 13 | } 14 | 15 | /// 16 | /// CurrentRevisionId 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplicationversion.html#cfn-robomaker-simulationapplicationversion-currentrevisionid 18 | /// Required: False 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic CurrentRevisionId 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// Application 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplicationversion.html#cfn-robomaker-simulationapplicationversion-application 31 | /// Required: True 32 | /// UpdateType: Immutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic Application 36 | { 37 | get; 38 | set; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /src/Humidifier/S3/BucketPolicy.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.S3 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class BucketPolicy : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::S3::BucketPolicy"; 12 | } 13 | } 14 | 15 | /// 16 | /// Bucket 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html#aws-properties-s3-policy-bucket 18 | /// Required: True 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic Bucket 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// PolicyDocument 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html#aws-properties-s3-policy-policydocument 31 | /// Required: True 32 | /// UpdateType: Mutable 33 | /// PrimitiveType: Json 34 | /// 35 | public dynamic PolicyDocument 36 | { 37 | get; 38 | set; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /src/Humidifier/SDB/Domain.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.SDB 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class Domain : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::SDB::Domain"; 12 | } 13 | } 14 | 15 | /// 16 | /// Description 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-simpledb.html#cfn-sdb-domain-description 18 | /// Required: False 19 | /// UpdateType: Mutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic Description 23 | { 24 | get; 25 | set; 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /src/Humidifier/SES/ConfigurationSet.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.SES 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class ConfigurationSet : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::SES::ConfigurationSet"; 12 | } 13 | } 14 | 15 | /// 16 | /// Name 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-configurationset.html#cfn-ses-configurationset-name 18 | /// Required: False 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic Name 23 | { 24 | get; 25 | set; 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /src/Humidifier/SES/ReceiptRuleSet.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.SES 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class ReceiptRuleSet : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::SES::ReceiptRuleSet"; 12 | } 13 | } 14 | 15 | /// 16 | /// RuleSetName 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-receiptruleset.html#cfn-ses-receiptruleset-rulesetname 18 | /// Required: False 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic RuleSetName 23 | { 24 | get; 25 | set; 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /src/Humidifier/SNS/TopicPolicy.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.SNS 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class TopicPolicy : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::SNS::TopicPolicy"; 12 | } 13 | } 14 | 15 | /// 16 | /// PolicyDocument 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-policy.html#cfn-sns-topicpolicy-policydocument 18 | /// Required: True 19 | /// UpdateType: Mutable 20 | /// PrimitiveType: Json 21 | /// 22 | public dynamic PolicyDocument 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// Topics 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-policy.html#cfn-sns-topicpolicy-topics 31 | /// Required: True 32 | /// UpdateType: Mutable 33 | /// Type: List 34 | /// PrimitiveItemType: String 35 | /// 36 | public dynamic Topics 37 | { 38 | get; 39 | set; 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /src/Humidifier/SQS/QueuePolicy.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.SQS 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class QueuePolicy : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::SQS::QueuePolicy"; 12 | } 13 | } 14 | 15 | /// 16 | /// PolicyDocument 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html#cfn-sqs-queuepolicy-policydoc 18 | /// Required: True 19 | /// UpdateType: Mutable 20 | /// PrimitiveType: Json 21 | /// 22 | public dynamic PolicyDocument 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// Queues 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html#cfn-sqs-queuepolicy-queues 31 | /// Required: True 32 | /// UpdateType: Mutable 33 | /// Type: List 34 | /// PrimitiveItemType: String 35 | /// 36 | public dynamic Queues 37 | { 38 | get; 39 | set; 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /src/Humidifier/SecretsManager/ResourcePolicy.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.SecretsManager 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class ResourcePolicy : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::SecretsManager::ResourcePolicy"; 12 | } 13 | } 14 | 15 | /// 16 | /// SecretId 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-resourcepolicy.html#cfn-secretsmanager-resourcepolicy-secretid 18 | /// Required: True 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic SecretId 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// ResourcePolicy 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-resourcepolicy.html#cfn-secretsmanager-resourcepolicy-resourcepolicy 31 | /// Required: True 32 | /// UpdateType: Mutable 33 | /// PrimitiveType: Json 34 | /// 35 | public dynamic ResourcePolicy_ 36 | { 37 | get; 38 | set; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /src/Humidifier/SecretsManager/SecretTargetAttachment.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.SecretsManager 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class SecretTargetAttachment : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::SecretsManager::SecretTargetAttachment"; 12 | } 13 | } 14 | 15 | /// 16 | /// SecretId 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-secrettargetattachment.html#cfn-secretsmanager-secrettargetattachment-secretid 18 | /// Required: True 19 | /// UpdateType: Mutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic SecretId 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// TargetType 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-secrettargetattachment.html#cfn-secretsmanager-secrettargetattachment-targettype 31 | /// Required: True 32 | /// UpdateType: Mutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic TargetType 36 | { 37 | get; 38 | set; 39 | } 40 | 41 | /// 42 | /// TargetId 43 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-secrettargetattachment.html#cfn-secretsmanager-secrettargetattachment-targetid 44 | /// Required: True 45 | /// UpdateType: Mutable 46 | /// PrimitiveType: String 47 | /// 48 | public dynamic TargetId 49 | { 50 | get; 51 | set; 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /src/Humidifier/SecurityHub/Hub.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.SecurityHub 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class Hub : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::SecurityHub::Hub"; 12 | } 13 | } 14 | 15 | /// 16 | /// Tags 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-hub.html#cfn-securityhub-hub-tags 18 | /// Required: False 19 | /// UpdateType: Mutable 20 | /// PrimitiveType: Json 21 | /// 22 | public dynamic Tags 23 | { 24 | get; 25 | set; 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /src/Humidifier/ServiceCatalog/AcceptedPortfolioShare.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.ServiceCatalog 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class AcceptedPortfolioShare : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::ServiceCatalog::AcceptedPortfolioShare"; 12 | } 13 | } 14 | 15 | /// 16 | /// AcceptLanguage 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-acceptedportfolioshare.html#cfn-servicecatalog-acceptedportfolioshare-acceptlanguage 18 | /// Required: False 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic AcceptLanguage 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// PortfolioId 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-acceptedportfolioshare.html#cfn-servicecatalog-acceptedportfolioshare-portfolioid 31 | /// Required: True 32 | /// UpdateType: Immutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic PortfolioId 36 | { 37 | get; 38 | set; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /src/Humidifier/ServiceCatalog/PortfolioShare.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.ServiceCatalog 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class PortfolioShare : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::ServiceCatalog::PortfolioShare"; 12 | } 13 | } 14 | 15 | /// 16 | /// AccountId 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioshare.html#cfn-servicecatalog-portfolioshare-accountid 18 | /// Required: True 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic AccountId 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// AcceptLanguage 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioshare.html#cfn-servicecatalog-portfolioshare-acceptlanguage 31 | /// Required: False 32 | /// UpdateType: Immutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic AcceptLanguage 36 | { 37 | get; 38 | set; 39 | } 40 | 41 | /// 42 | /// PortfolioId 43 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioshare.html#cfn-servicecatalog-portfolioshare-portfolioid 44 | /// Required: True 45 | /// UpdateType: Immutable 46 | /// PrimitiveType: String 47 | /// 48 | public dynamic PortfolioId 49 | { 50 | get; 51 | set; 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /src/Humidifier/ServiceCatalog/TagOption.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.ServiceCatalog 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class TagOption : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::ServiceCatalog::TagOption"; 12 | } 13 | } 14 | 15 | /// 16 | /// Active 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-tagoption.html#cfn-servicecatalog-tagoption-active 18 | /// Required: False 19 | /// UpdateType: Mutable 20 | /// PrimitiveType: Boolean 21 | /// 22 | public dynamic Active 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// Value 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-tagoption.html#cfn-servicecatalog-tagoption-value 31 | /// Required: True 32 | /// UpdateType: Immutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic Value 36 | { 37 | get; 38 | set; 39 | } 40 | 41 | /// 42 | /// Key 43 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-tagoption.html#cfn-servicecatalog-tagoption-key 44 | /// Required: True 45 | /// UpdateType: Immutable 46 | /// PrimitiveType: String 47 | /// 48 | public dynamic Key 49 | { 50 | get; 51 | set; 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /src/Humidifier/ServiceCatalog/TagOptionAssociation.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.ServiceCatalog 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class TagOptionAssociation : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::ServiceCatalog::TagOptionAssociation"; 12 | } 13 | } 14 | 15 | /// 16 | /// TagOptionId 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-tagoptionassociation.html#cfn-servicecatalog-tagoptionassociation-tagoptionid 18 | /// Required: True 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic TagOptionId 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// ResourceId 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-tagoptionassociation.html#cfn-servicecatalog-tagoptionassociation-resourceid 31 | /// Required: True 32 | /// UpdateType: Immutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic ResourceId 36 | { 37 | get; 38 | set; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /src/Humidifier/ServiceDiscovery/HttpNamespace.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.ServiceDiscovery 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class HttpNamespace : Humidifier.Resource 6 | { 7 | public static class Attributes 8 | { 9 | public static string Id = "Id" ; 10 | public static string Arn = "Arn" ; 11 | } 12 | 13 | public override string AWSTypeName 14 | { 15 | get 16 | { 17 | return @"AWS::ServiceDiscovery::HttpNamespace"; 18 | } 19 | } 20 | 21 | /// 22 | /// Description 23 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-httpnamespace.html#cfn-servicediscovery-httpnamespace-description 24 | /// Required: False 25 | /// UpdateType: Immutable 26 | /// PrimitiveType: String 27 | /// 28 | public dynamic Description 29 | { 30 | get; 31 | set; 32 | } 33 | 34 | /// 35 | /// Name 36 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-httpnamespace.html#cfn-servicediscovery-httpnamespace-name 37 | /// Required: True 38 | /// UpdateType: Immutable 39 | /// PrimitiveType: String 40 | /// 41 | public dynamic Name 42 | { 43 | get; 44 | set; 45 | } 46 | } 47 | } -------------------------------------------------------------------------------- /src/Humidifier/ServiceDiscovery/Instance.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.ServiceDiscovery 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class Instance : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::ServiceDiscovery::Instance"; 12 | } 13 | } 14 | 15 | /// 16 | /// InstanceAttributes 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html#cfn-servicediscovery-instance-instanceattributes 18 | /// Required: True 19 | /// UpdateType: Mutable 20 | /// PrimitiveType: Json 21 | /// 22 | public dynamic InstanceAttributes 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// InstanceId 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html#cfn-servicediscovery-instance-instanceid 31 | /// Required: False 32 | /// UpdateType: Immutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic InstanceId 36 | { 37 | get; 38 | set; 39 | } 40 | 41 | /// 42 | /// ServiceId 43 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html#cfn-servicediscovery-instance-serviceid 44 | /// Required: True 45 | /// UpdateType: Immutable 46 | /// PrimitiveType: String 47 | /// 48 | public dynamic ServiceId 49 | { 50 | get; 51 | set; 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /src/Humidifier/ServiceDiscovery/PrivateDnsNamespace.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.ServiceDiscovery 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class PrivateDnsNamespace : Humidifier.Resource 6 | { 7 | public static class Attributes 8 | { 9 | public static string Id = "Id" ; 10 | public static string Arn = "Arn" ; 11 | } 12 | 13 | public override string AWSTypeName 14 | { 15 | get 16 | { 17 | return @"AWS::ServiceDiscovery::PrivateDnsNamespace"; 18 | } 19 | } 20 | 21 | /// 22 | /// Description 23 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-privatednsnamespace.html#cfn-servicediscovery-privatednsnamespace-description 24 | /// Required: False 25 | /// UpdateType: Immutable 26 | /// PrimitiveType: String 27 | /// 28 | public dynamic Description 29 | { 30 | get; 31 | set; 32 | } 33 | 34 | /// 35 | /// Vpc 36 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-privatednsnamespace.html#cfn-servicediscovery-privatednsnamespace-vpc 37 | /// Required: True 38 | /// UpdateType: Immutable 39 | /// PrimitiveType: String 40 | /// 41 | public dynamic Vpc 42 | { 43 | get; 44 | set; 45 | } 46 | 47 | /// 48 | /// Name 49 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-privatednsnamespace.html#cfn-servicediscovery-privatednsnamespace-name 50 | /// Required: True 51 | /// UpdateType: Immutable 52 | /// PrimitiveType: String 53 | /// 54 | public dynamic Name 55 | { 56 | get; 57 | set; 58 | } 59 | } 60 | } -------------------------------------------------------------------------------- /src/Humidifier/ServiceDiscovery/PublicDnsNamespace.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.ServiceDiscovery 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class PublicDnsNamespace : Humidifier.Resource 6 | { 7 | public static class Attributes 8 | { 9 | public static string Id = "Id" ; 10 | public static string Arn = "Arn" ; 11 | } 12 | 13 | public override string AWSTypeName 14 | { 15 | get 16 | { 17 | return @"AWS::ServiceDiscovery::PublicDnsNamespace"; 18 | } 19 | } 20 | 21 | /// 22 | /// Description 23 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-publicdnsnamespace.html#cfn-servicediscovery-publicdnsnamespace-description 24 | /// Required: False 25 | /// UpdateType: Immutable 26 | /// PrimitiveType: String 27 | /// 28 | public dynamic Description 29 | { 30 | get; 31 | set; 32 | } 33 | 34 | /// 35 | /// Name 36 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-publicdnsnamespace.html#cfn-servicediscovery-publicdnsnamespace-name 37 | /// Required: True 38 | /// UpdateType: Immutable 39 | /// PrimitiveType: String 40 | /// 41 | public dynamic Name 42 | { 43 | get; 44 | set; 45 | } 46 | } 47 | } -------------------------------------------------------------------------------- /src/Humidifier/Tag.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier 2 | { 3 | public class Tag 4 | { 5 | public string Key { get; set; } 6 | public dynamic Value { get; set; } 7 | } 8 | } -------------------------------------------------------------------------------- /src/Humidifier/WAFRegional/RegexPatternSet.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.WAFRegional 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class RegexPatternSet : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::WAFRegional::RegexPatternSet"; 12 | } 13 | } 14 | 15 | /// 16 | /// RegexPatternStrings 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-regexpatternset.html#cfn-wafregional-regexpatternset-regexpatternstrings 18 | /// Required: True 19 | /// UpdateType: Mutable 20 | /// Type: List 21 | /// PrimitiveItemType: String 22 | /// 23 | public dynamic RegexPatternStrings 24 | { 25 | get; 26 | set; 27 | } 28 | 29 | /// 30 | /// Name 31 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-regexpatternset.html#cfn-wafregional-regexpatternset-name 32 | /// Required: True 33 | /// UpdateType: Immutable 34 | /// PrimitiveType: String 35 | /// 36 | public dynamic Name 37 | { 38 | get; 39 | set; 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /src/Humidifier/WAFRegional/WebACLAssociation.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.WAFRegional 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class WebACLAssociation : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::WAFRegional::WebACLAssociation"; 12 | } 13 | } 14 | 15 | /// 16 | /// ResourceArn 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-webaclassociation.html#cfn-wafregional-webaclassociation-resourcearn 18 | /// Required: True 19 | /// UpdateType: Immutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic ResourceArn 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// WebACLId 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-webaclassociation.html#cfn-wafregional-webaclassociation-webaclid 31 | /// Required: True 32 | /// UpdateType: Immutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic WebACLId 36 | { 37 | get; 38 | set; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /src/Humidifier/WAFv2/WebACLAssociation.cs: -------------------------------------------------------------------------------- 1 | namespace Humidifier.WAFv2 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class WebACLAssociation : Humidifier.Resource 6 | { 7 | public override string AWSTypeName 8 | { 9 | get 10 | { 11 | return @"AWS::WAFv2::WebACLAssociation"; 12 | } 13 | } 14 | 15 | /// 16 | /// ResourceArn 17 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webaclassociation.html#cfn-wafv2-webaclassociation-resourcearn 18 | /// Required: True 19 | /// UpdateType: Mutable 20 | /// PrimitiveType: String 21 | /// 22 | public dynamic ResourceArn 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | /// 29 | /// WebACLArn 30 | /// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webaclassociation.html#cfn-wafv2-webaclassociation-webaclarn 31 | /// Required: True 32 | /// UpdateType: Mutable 33 | /// PrimitiveType: String 34 | /// 35 | public dynamic WebACLArn 36 | { 37 | get; 38 | set; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /src/Nuget.Config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/global.json: -------------------------------------------------------------------------------- 1 | { "sdk": { "version": "2.1.201" } } -------------------------------------------------------------------------------- /templates/.gitignore: -------------------------------------------------------------------------------- 1 | *.nupkg -------------------------------------------------------------------------------- /templates/Humidifier.Solution.Template/.$env$.env: -------------------------------------------------------------------------------- 1 | ENV = $env$ 2 | REGION = $region$ 3 | STACK = $stack$ 4 | PROFILE = $profile$ 5 | BUILD_CONFIG = $build_config$ 6 | TEAM = $team$ 7 | EMAIL = $email$ 8 | -------------------------------------------------------------------------------- /templates/Humidifier.Solution.Template/.template.config/template.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json.schemastore.org/template", 3 | "author": "Humidifier", 4 | "classifications": [ 5 | "AWS", 6 | "Lambda", 7 | "Serverless" 8 | ], 9 | "name": "Humidifier Solution Template", 10 | "identity": "Humidifier.Solution.Template.CSharp", 11 | "groupIdentity": "Humidifier.Solution.Template", 12 | "shortName": "humidifier", 13 | "tags": { 14 | "language": "C#", 15 | "type": "project" 16 | }, 17 | "sourceName": "ProjectBaseName", 18 | "preferNameDirectory": true, 19 | "symbols": { 20 | "env": { 21 | "type": "parameter", 22 | "datatype": "text", 23 | "replaces": "$env$", 24 | "defaultValue": "test", 25 | "fileRename": "$env$" 26 | }, 27 | "region": { 28 | "type": "parameter", 29 | "datatype": "text", 30 | "replaces": "$region$", 31 | "defaultValue": "us-west-2" 32 | }, 33 | "stack": { 34 | "type": "parameter", 35 | "datatype": "text", 36 | "replaces": "$stack$", 37 | "defaultValue": "stack" 38 | }, 39 | "profile": { 40 | "type": "parameter", 41 | "datatype": "text", 42 | "replaces": "$profile$", 43 | "defaultValue": "default" 44 | }, 45 | "build_config": { 46 | "type": "parameter", 47 | "datatype": "text", 48 | "replaces": "$build_config$", 49 | "defaultValue": "Debug" 50 | }, 51 | "team": { 52 | "type": "parameter", 53 | "datatype": "text", 54 | "replaces": "$team$", 55 | "defaultValue": "team" 56 | }, 57 | "email": { 58 | "type": "parameter", 59 | "datatype": "text", 60 | "replaces": "$email$", 61 | "defaultValue": "email@example.com" 62 | } 63 | } 64 | } -------------------------------------------------------------------------------- /templates/Humidifier.Solution.Template/Nuget.Config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /templates/Humidifier.Solution.Template/src/ProjectBaseName.DeployTool/Config.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using Amazon.CloudFormation.Model; 3 | 4 | namespace ProjectBaseName.DeployTool 5 | { 6 | public class Config 7 | { 8 | public string Env { get; set; } 9 | public string Region { get; set; } 10 | public string Profile { get; set; } 11 | public string Stack { get; set; } 12 | public string Team { get; set; } 13 | public string Email { get; set; } 14 | public string BuildPath { get; set; } 15 | public string BuildConfig { get; set; } 16 | public List Tags { get; set; } 17 | 18 | } 19 | } -------------------------------------------------------------------------------- /templates/Humidifier.Solution.Template/src/ProjectBaseName.DeployTool/Context.cs: -------------------------------------------------------------------------------- 1 | using Amazon; 2 | using Amazon.CloudFormation; 3 | using Amazon.Lambda; 4 | using Amazon.Runtime; 5 | using Amazon.S3; 6 | using Amazon.SimpleSystemsManagement; 7 | using Humidifier.Json; 8 | 9 | namespace ProjectBaseName.DeployTool 10 | { 11 | public class Context 12 | { 13 | public Config Config { get; set; } 14 | public JsonStackSerializer JsonStackSerializer { get; set; } 15 | public RegionEndpoint Region { get; set; } 16 | public AWSCredentials AwsCredentials { get; set; } 17 | public IAmazonCloudFormation Cloudformation { get; set; } 18 | public IAmazonS3 S3 { get; set; } 19 | public IAmazonSimpleSystemsManagement SSM { get; set; } 20 | public IAmazonLambda Lambda { get; set; } 21 | } 22 | } -------------------------------------------------------------------------------- /templates/Humidifier.Solution.Template/src/ProjectBaseName.DeployTool/ProjectBaseName.DeployTool.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Exe 5 | netcoreapp2.0 6 | 7 | 8 | 9 | latest 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /templates/Humidifier.Solution.Template/src/ProjectBaseName.DeployTool/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "deploy-base-$env$": { 4 | "commandName": "Project", 5 | "commandLineArgs": "deploy-base --env=$env$" 6 | }, 7 | "deploy-simple-$env$": { 8 | "commandName": "Project", 9 | "commandLineArgs": "deploy-simple --env=$env$" 10 | }, 11 | "invoke-simple-$env$": { 12 | "commandName": "Project", 13 | "commandLineArgs": "invoke-simple --env=$env$" 14 | }, 15 | "destroy-base-$env$": { 16 | "commandName": "Project", 17 | "commandLineArgs": "destroy-base --env=$env$" 18 | }, 19 | "destroy-simple-$env$": { 20 | "commandName": "Project", 21 | "commandLineArgs": "destroy-simple --env=$env$" 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /templates/Humidifier.Solution.Template/src/ProjectBaseName.DeployTool/Util/LambdaInvoker.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using System.Text; 4 | using System.Threading.Tasks; 5 | using Amazon.Lambda; 6 | using Amazon.Lambda.Model; 7 | using Newtonsoft.Json; 8 | using Serilog; 9 | 10 | namespace ProjectBaseName.DeployTool.Util 11 | { 12 | public static class LambdaInvoker 13 | { 14 | public static async Task Invoke(ILogger log, Context context, TArgs args, string functionName) 15 | { 16 | var jsonSettings = new JsonSerializerSettings 17 | { 18 | TypeNameHandling = TypeNameHandling.None, 19 | Formatting = Formatting.None 20 | }; 21 | 22 | var payload = JsonConvert.SerializeObject(args, jsonSettings); 23 | 24 | var request = new InvokeRequest 25 | { 26 | FunctionName = functionName, 27 | Payload = payload, 28 | LogType = LogType.Tail, 29 | InvocationType = InvocationType.RequestResponse 30 | }; 31 | 32 | InvokeResponse response = await context.Lambda.InvokeAsync(request).ConfigureAwait(false); 33 | 34 | var reader = new StreamReader(response.Payload); 35 | var json = reader.ReadToEnd(); 36 | 37 | var bytes = Convert.FromBase64String(response.LogResult); 38 | var logs = Encoding.UTF8.GetString(bytes); 39 | 40 | log.Information("Logs:\n" + logs); 41 | 42 | if (!string.IsNullOrWhiteSpace(response.FunctionError)) 43 | { 44 | log.Error("FunctionError:\n{error}", json); 45 | return default; 46 | } 47 | else 48 | { 49 | TResult result = JsonConvert.DeserializeObject(json); 50 | return result; 51 | } 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /templates/Humidifier.Solution.Template/src/ProjectBaseName.Lambda.Common/ProjectBaseName.Lambda.Common.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp2.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /templates/Humidifier.Solution.Template/src/ProjectBaseName.Lambda.Common/SerilogLambdaSink.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using Amazon.Lambda.Core; 4 | using Serilog; 5 | using Serilog.Configuration; 6 | using Serilog.Core; 7 | using Serilog.Events; 8 | using Serilog.Formatting; 9 | 10 | namespace ProjectBaseName.Lambda.Common 11 | { 12 | public class SerilogLambdaSink : ILogEventSink 13 | { 14 | readonly ITextFormatter textFormatter; 15 | 16 | public SerilogLambdaSink(ITextFormatter textFormatter) 17 | { 18 | this.textFormatter = textFormatter ?? throw new ArgumentNullException(nameof(textFormatter)); 19 | } 20 | 21 | public void Emit(LogEvent logEvent) 22 | { 23 | if (logEvent == null) throw new ArgumentNullException(nameof(logEvent)); 24 | using (var writer = new StringWriter()) 25 | { 26 | textFormatter.Format(logEvent, writer); 27 | LambdaLogger.Log(writer.ToString()); 28 | } 29 | } 30 | } 31 | 32 | public static class SerilogLambdaSinkConfigurationExtensions 33 | { 34 | public static LoggerConfiguration LambdaLogger(this LoggerSinkConfiguration config, ITextFormatter formatter, LogEventLevel restrictedToMinimumLevel = LevelAlias.Minimum, LoggingLevelSwitch levelSwitch = null) 35 | { 36 | if (config == null) throw new ArgumentNullException(nameof(config)); 37 | if (formatter == null) throw new ArgumentNullException(nameof(formatter)); 38 | return config.Sink(new SerilogLambdaSink(formatter), restrictedToMinimumLevel, levelSwitch); 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /templates/Humidifier.Solution.Template/src/ProjectBaseName.Lambda.Common/SimpleFunctionArgs.cs: -------------------------------------------------------------------------------- 1 | namespace ProjectBaseName.Lambda.Common 2 | { 3 | public class SimpleFunctionArgs 4 | { 5 | public string Name { get; set; } 6 | } 7 | } -------------------------------------------------------------------------------- /templates/Humidifier.Solution.Template/src/ProjectBaseName.Lambda.Common/SimpleFunctionResult.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace ProjectBaseName.Lambda.Common 4 | { 5 | public class SimpleFunctionResult 6 | { 7 | public string Message { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /templates/Humidifier.Solution.Template/src/ProjectBaseName.Lambda.Simple/ProjectBaseName.Lambda.Simple.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp2.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /templates/Humidifier.Solution.Template/src/ProjectBaseName.Tests/ProjectBaseName.Tests.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp2.0 5 | 6 | false 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /templates/Humidifier.Solution.Template/src/ProjectBaseName.Tests/SimpleLambdaTests.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using Amazon.CloudWatch; 3 | using Amazon.Lambda.Core; 4 | using Amazon.Lambda.TestUtilities; 5 | using NSubstitute; 6 | using ProjectBaseName.Lambda.Common; 7 | using ProjectBaseName.Lambda.Simple; 8 | using Xunit; 9 | 10 | namespace ProjectBaseName.Tests 11 | { 12 | public class SimpleLambdaTests 13 | { 14 | [Fact] 15 | public async Task Test1() 16 | { 17 | ILambdaContext context = new TestLambdaContext(); 18 | IAmazonCloudWatch cloudwatch = Substitute.For(); 19 | 20 | var function = new Function(cloudwatch); 21 | 22 | SimpleFunctionArgs args = new SimpleFunctionArgs { Name = "ProjectBaseName" }; 23 | SimpleFunctionResult result = await function.Handler(args, context); 24 | 25 | Assert.Equal("Hello, ProjectBaseName", result.Message); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /templates/Humidifier.Solution.Template/tasks.ps1: -------------------------------------------------------------------------------- 1 | param( 2 | [parameter(position = 0, mandatory = $true)] 3 | [validateSet('$env$')] 4 | [string] $env, 5 | 6 | [parameter(position = 1, mandatory = $true)] 7 | [validateSet( 8 | 'deploy-base', 9 | 'deploy-simple', 10 | 'invoke-simple', 11 | 'tests', 12 | 'secrets-encrypt', 13 | 'secrets-decrypt', 14 | 'secrets-upload', 15 | 'destroy-simple', 16 | 'destroy-base' 17 | )] 18 | [string] $command 19 | ) 20 | 21 | if ($command -eq "tests") { 22 | dotnet test .\src\ProjectBaseName.Tests 23 | } else { 24 | $project = ".\src\ProjectBaseName.DeployTool\ProjectBaseName.DeployTool.csproj" 25 | $cmd = "dotnet run --project $project $command --env=$env$ --no-launch-profile" 26 | Write-Host "$cmd" -ForegroundColor GREEN 27 | Invoke-Expression $cmd 28 | } -------------------------------------------------------------------------------- /templates/Humidifier.Templates.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Humidifier.Templates 5 | 1.0.6 6 | Humidifier templates. 7 | Jake Scott 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /tools/nuget.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakejscott/Humidifier/7efffcf70a992d0447c04a8bda7be80976d98020/tools/nuget.exe --------------------------------------------------------------------------------