Class: Humidifier::Resource

Inherits:
Object
  • Object
show all
Defined in:
lib/humidifier/resource.rb

Overview

Superclass for all AWS resources

Direct Known Subclasses

ACMPCA::Certificate, ACMPCA::CertificateAuthority, ACMPCA::CertificateAuthorityActivation, ACMPCA::Permission, APS::RuleGroupsNamespace, APS::Workspace, ASK::Skill, AccessAnalyzer::Analyzer, AmazonMQ::Broker, AmazonMQ::Configuration, AmazonMQ::ConfigurationAssociation, Amplify::App, Amplify::Branch, Amplify::Domain, AmplifyUIBuilder::Component, AmplifyUIBuilder::Theme, ApiGateway::Account, ApiGateway::ApiKey, ApiGateway::Authorizer, ApiGateway::BasePathMapping, ApiGateway::ClientCertificate, ApiGateway::Deployment, ApiGateway::DocumentationPart, ApiGateway::DocumentationVersion, ApiGateway::DomainName, ApiGateway::GatewayResponse, ApiGateway::Method, ApiGateway::Model, ApiGateway::RequestValidator, ApiGateway::Resource, ApiGateway::RestApi, ApiGateway::Stage, ApiGateway::UsagePlan, ApiGateway::UsagePlanKey, ApiGateway::VpcLink, ApiGatewayV2::Api, ApiGatewayV2::ApiGatewayManagedOverrides, ApiGatewayV2::ApiMapping, ApiGatewayV2::Authorizer, ApiGatewayV2::Deployment, ApiGatewayV2::DomainName, ApiGatewayV2::Integration, ApiGatewayV2::IntegrationResponse, ApiGatewayV2::Model, ApiGatewayV2::Route, ApiGatewayV2::RouteResponse, ApiGatewayV2::Stage, ApiGatewayV2::VpcLink, AppConfig::Application, AppConfig::ConfigurationProfile, AppConfig::Deployment, AppConfig::DeploymentStrategy, AppConfig::Environment, AppConfig::HostedConfigurationVersion, AppFlow::ConnectorProfile, AppFlow::Flow, AppIntegrations::DataIntegration, AppIntegrations::EventIntegration, AppMesh::GatewayRoute, AppMesh::Mesh, AppMesh::Route, AppMesh::VirtualGateway, AppMesh::VirtualNode, AppMesh::VirtualRouter, AppMesh::VirtualService, AppRunner::ObservabilityConfiguration, AppRunner::Service, AppRunner::VpcConnector, AppStream::AppBlock, AppStream::Application, AppStream::ApplicationEntitlementAssociation, AppStream::ApplicationFleetAssociation, AppStream::DirectoryConfig, AppStream::Entitlement, AppStream::Fleet, AppStream::ImageBuilder, AppStream::Stack, AppStream::StackFleetAssociation, AppStream::StackUserAssociation, AppStream::User, AppSync::ApiCache, AppSync::ApiKey, AppSync::DataSource, AppSync::DomainName, AppSync::DomainNameApiAssociation, AppSync::FunctionConfiguration, AppSync::GraphQLApi, AppSync::GraphQLSchema, AppSync::Resolver, ApplicationAutoScaling::ScalableTarget, ApplicationAutoScaling::ScalingPolicy, ApplicationInsights::Application, Athena::DataCatalog, Athena::NamedQuery, Athena::PreparedStatement, Athena::WorkGroup, AuditManager::Assessment, AutoScaling::AutoScalingGroup, AutoScaling::LaunchConfiguration, AutoScaling::LifecycleHook, AutoScaling::ScalingPolicy, AutoScaling::ScheduledAction, AutoScaling::WarmPool, AutoScalingPlans::ScalingPlan, Backup::BackupPlan, Backup::BackupSelection, Backup::BackupVault, Backup::Framework, Backup::ReportPlan, Batch::ComputeEnvironment, Batch::JobDefinition, Batch::JobQueue, Batch::SchedulingPolicy, BillingConductor::BillingGroup, BillingConductor::CustomLineItem, BillingConductor::PricingPlan, BillingConductor::PricingRule, Budgets::Budget, Budgets::BudgetsAction, CE::AnomalyMonitor, CE::AnomalySubscription, CE::CostCategory, CUR::ReportDefinition, Cassandra::Keyspace, Cassandra::Table, CertificateManager::Account, CertificateManager::Certificate, Chatbot::SlackChannelConfiguration, Cloud9::EnvironmentEC2, CloudFormation::CustomResource, CloudFormation::HookDefaultVersion, CloudFormation::HookTypeConfig, CloudFormation::HookVersion, CloudFormation::Macro, CloudFormation::ModuleDefaultVersion, CloudFormation::ModuleVersion, CloudFormation::PublicTypeVersion, CloudFormation::Publisher, CloudFormation::ResourceDefaultVersion, CloudFormation::ResourceVersion, CloudFormation::Stack, CloudFormation::StackSet, CloudFormation::TypeActivation, CloudFormation::WaitCondition, CloudFormation::WaitConditionHandle, CloudFront::CachePolicy, CloudFront::CloudFrontOriginAccessIdentity, CloudFront::Distribution, CloudFront::Function, CloudFront::KeyGroup, CloudFront::OriginRequestPolicy, CloudFront::PublicKey, CloudFront::RealtimeLogConfig, CloudFront::ResponseHeadersPolicy, CloudFront::StreamingDistribution, CloudTrail::Trail, CloudWatch::Alarm, CloudWatch::AnomalyDetector, CloudWatch::CompositeAlarm, CloudWatch::Dashboard, CloudWatch::InsightRule, CloudWatch::MetricStream, CodeArtifact::Domain, CodeArtifact::Repository, CodeBuild::Project, CodeBuild::ReportGroup, CodeBuild::SourceCredential, CodeCommit::Repository, CodeDeploy::Application, CodeDeploy::DeploymentConfig, CodeDeploy::DeploymentGroup, CodeGuruProfiler::ProfilingGroup, CodeGuruReviewer::RepositoryAssociation, CodePipeline::CustomActionType, CodePipeline::Pipeline, CodePipeline::Webhook, CodeStar::GitHubRepository, CodeStarConnections::Connection, CodeStarNotifications::NotificationRule, Cognito::IdentityPool, Cognito::IdentityPoolRoleAttachment, Cognito::UserPool, Cognito::UserPoolClient, Cognito::UserPoolDomain, Cognito::UserPoolGroup, Cognito::UserPoolIdentityProvider, Cognito::UserPoolResourceServer, Cognito::UserPoolRiskConfigurationAttachment, Cognito::UserPoolUICustomizationAttachment, Cognito::UserPoolUser, Cognito::UserPoolUserToGroupAttachment, Config::AggregationAuthorization, Config::ConfigRule, Config::ConfigurationAggregator, Config::ConfigurationRecorder, Config::ConformancePack, Config::DeliveryChannel, Config::OrganizationConfigRule, Config::OrganizationConformancePack, Config::RemediationConfiguration, Config::StoredQuery, Connect::ContactFlow, Connect::ContactFlowModule, Connect::HoursOfOperation, Connect::PhoneNumber, Connect::QuickConnect, Connect::User, Connect::UserHierarchyGroup, CustomerProfiles::Domain, CustomerProfiles::Integration, CustomerProfiles::ObjectType, DAX::Cluster, DAX::ParameterGroup, DAX::SubnetGroup, DLM::LifecyclePolicy, DMS::Certificate, DMS::Endpoint, DMS::EventSubscription, DMS::ReplicationInstance, DMS::ReplicationSubnetGroup, DMS::ReplicationTask, DataBrew::Dataset, DataBrew::Job, DataBrew::Project, DataBrew::Recipe, DataBrew::Ruleset, DataBrew::Schedule, DataPipeline::Pipeline, DataSync::Agent, DataSync::LocationEFS, DataSync::LocationFSxLustre, DataSync::LocationFSxOpenZFS, DataSync::LocationFSxWindows, DataSync::LocationHDFS, DataSync::LocationNFS, DataSync::LocationObjectStorage, DataSync::LocationS3, DataSync::LocationSMB, DataSync::Task, Detective::Graph, Detective::MemberInvitation, DevOpsGuru::NotificationChannel, DevOpsGuru::ResourceCollection, DirectoryService::MicrosoftAD, DirectoryService::SimpleAD, DocDB::DBCluster, DocDB::DBClusterParameterGroup, DocDB::DBInstance, DocDB::DBSubnetGroup, DynamoDB::GlobalTable, DynamoDB::Table, EC2::CapacityReservation, EC2::CapacityReservationFleet, EC2::CarrierGateway, EC2::ClientVpnAuthorizationRule, EC2::ClientVpnEndpoint, EC2::ClientVpnRoute, EC2::ClientVpnTargetNetworkAssociation, EC2::CustomerGateway, EC2::DHCPOptions, EC2::EC2Fleet, EC2::EIP, EC2::EIPAssociation, EC2::EgressOnlyInternetGateway, EC2::EnclaveCertificateIamRoleAssociation, EC2::FlowLog, EC2::GatewayRouteTableAssociation, EC2::Host, EC2::IPAM, EC2::IPAMAllocation, EC2::IPAMPool, EC2::IPAMScope, EC2::Instance, EC2::InternetGateway, EC2::KeyPair, EC2::LaunchTemplate, EC2::LocalGatewayRoute, EC2::LocalGatewayRouteTableVPCAssociation, EC2::NatGateway, EC2::NetworkAcl, EC2::NetworkAclEntry, EC2::NetworkInsightsAccessScope, EC2::NetworkInsightsAccessScopeAnalysis, EC2::NetworkInsightsAnalysis, EC2::NetworkInsightsPath, EC2::NetworkInterface, EC2::NetworkInterfaceAttachment, EC2::NetworkInterfacePermission, EC2::PlacementGroup, EC2::PrefixList, EC2::Route, EC2::RouteTable, EC2::SecurityGroup, EC2::SecurityGroupEgress, EC2::SecurityGroupIngress, EC2::SpotFleet, EC2::Subnet, EC2::SubnetCidrBlock, EC2::SubnetNetworkAclAssociation, EC2::SubnetRouteTableAssociation, EC2::TrafficMirrorFilter, EC2::TrafficMirrorFilterRule, EC2::TrafficMirrorSession, EC2::TrafficMirrorTarget, EC2::TransitGateway, EC2::TransitGatewayAttachment, EC2::TransitGatewayConnect, EC2::TransitGatewayMulticastDomain, EC2::TransitGatewayMulticastDomainAssociation, EC2::TransitGatewayMulticastGroupMember, EC2::TransitGatewayMulticastGroupSource, EC2::TransitGatewayPeeringAttachment, EC2::TransitGatewayRoute, EC2::TransitGatewayRouteTable, EC2::TransitGatewayRouteTableAssociation, EC2::TransitGatewayRouteTablePropagation, EC2::TransitGatewayVpcAttachment, EC2::VPC, EC2::VPCCidrBlock, EC2::VPCDHCPOptionsAssociation, EC2::VPCEndpoint, EC2::VPCEndpointConnectionNotification, EC2::VPCEndpointService, EC2::VPCEndpointServicePermissions, EC2::VPCGatewayAttachment, EC2::VPCPeeringConnection, EC2::VPNConnection, EC2::VPNConnectionRoute, EC2::VPNGateway, EC2::VPNGatewayRoutePropagation, EC2::Volume, EC2::VolumeAttachment, ECR::PublicRepository, ECR::PullThroughCacheRule, ECR::RegistryPolicy, ECR::ReplicationConfiguration, ECR::Repository, ECS::CapacityProvider, ECS::Cluster, ECS::ClusterCapacityProviderAssociations, ECS::PrimaryTaskSet, ECS::Service, ECS::TaskDefinition, ECS::TaskSet, EFS::AccessPoint, EFS::FileSystem, EFS::MountTarget, EKS::Addon, EKS::Cluster, EKS::FargateProfile, EKS::IdentityProviderConfig, EKS::Nodegroup, EMR::Cluster, EMR::InstanceFleetConfig, EMR::InstanceGroupConfig, EMR::SecurityConfiguration, EMR::Step, EMR::Studio, EMR::StudioSessionMapping, EMRContainers::VirtualCluster, EMRServerless::Application, ElastiCache::CacheCluster, ElastiCache::GlobalReplicationGroup, ElastiCache::ParameterGroup, ElastiCache::ReplicationGroup, ElastiCache::SecurityGroup, ElastiCache::SecurityGroupIngress, ElastiCache::SubnetGroup, ElastiCache::User, ElastiCache::UserGroup, ElasticBeanstalk::Application, ElasticBeanstalk::ApplicationVersion, ElasticBeanstalk::ConfigurationTemplate, ElasticBeanstalk::Environment, ElasticLoadBalancing::LoadBalancer, ElasticLoadBalancingV2::Listener, ElasticLoadBalancingV2::ListenerCertificate, ElasticLoadBalancingV2::ListenerRule, ElasticLoadBalancingV2::LoadBalancer, ElasticLoadBalancingV2::TargetGroup, Elasticsearch::Domain, EventSchemas::Discoverer, EventSchemas::Registry, EventSchemas::RegistryPolicy, EventSchemas::Schema, Events::ApiDestination, Events::Archive, Events::Connection, Events::Endpoint, Events::EventBus, Events::EventBusPolicy, Events::Rule, Evidently::Experiment, Evidently::Feature, Evidently::Launch, Evidently::Project, FIS::ExperimentTemplate, FMS::NotificationChannel, FMS::Policy, FSx::FileSystem, FSx::Snapshot, FSx::StorageVirtualMachine, FSx::Volume, FinSpace::Environment, Forecast::Dataset, Forecast::DatasetGroup, FraudDetector::Detector, FraudDetector::EntityType, FraudDetector::EventType, FraudDetector::Label, FraudDetector::Outcome, FraudDetector::Variable, GameLift::Alias, GameLift::Build, GameLift::Fleet, GameLift::GameServerGroup, GameLift::GameSessionQueue, GameLift::MatchmakingConfiguration, GameLift::MatchmakingRuleSet, GameLift::Script, GlobalAccelerator::Accelerator, GlobalAccelerator::EndpointGroup, GlobalAccelerator::Listener, Glue::Classifier, Glue::Connection, Glue::Crawler, Glue::DataCatalogEncryptionSettings, Glue::Database, Glue::DevEndpoint, Glue::Job, Glue::MLTransform, Glue::Partition, Glue::Registry, Glue::Schema, Glue::SchemaVersion, Glue::SchemaVersionMetadata, Glue::SecurityConfiguration, Glue::Table, Glue::Trigger, Glue::Workflow, Greengrass::ConnectorDefinition, Greengrass::ConnectorDefinitionVersion, Greengrass::CoreDefinition, Greengrass::CoreDefinitionVersion, Greengrass::DeviceDefinition, Greengrass::DeviceDefinitionVersion, Greengrass::FunctionDefinition, Greengrass::FunctionDefinitionVersion, Greengrass::Group, Greengrass::GroupVersion, Greengrass::LoggerDefinition, Greengrass::LoggerDefinitionVersion, Greengrass::ResourceDefinition, Greengrass::ResourceDefinitionVersion, Greengrass::SubscriptionDefinition, Greengrass::SubscriptionDefinitionVersion, GreengrassV2::ComponentVersion, GroundStation::Config, GroundStation::DataflowEndpointGroup, GroundStation::MissionProfile, GuardDuty::Detector, GuardDuty::Filter, GuardDuty::IPSet, GuardDuty::Master, GuardDuty::Member, GuardDuty::ThreatIntelSet, HealthLake::FHIRDatastore, IAM::AccessKey, IAM::Group, IAM::InstanceProfile, IAM::ManagedPolicy, IAM::OIDCProvider, IAM::Policy, IAM::Role, IAM::SAMLProvider, IAM::ServerCertificate, IAM::ServiceLinkedRole, IAM::User, IAM::UserToGroupAddition, IAM::VirtualMFADevice, IVS::Channel, IVS::PlaybackKeyPair, IVS::RecordingConfiguration, IVS::StreamKey, ImageBuilder::Component, ImageBuilder::ContainerRecipe, ImageBuilder::DistributionConfiguration, ImageBuilder::Image, ImageBuilder::ImagePipeline, ImageBuilder::ImageRecipe, ImageBuilder::InfrastructureConfiguration, Inspector::AssessmentTarget, Inspector::AssessmentTemplate, Inspector::ResourceGroup, InspectorV2::Filter, IoT1Click::Device, IoT1Click::Placement, IoT1Click::Project, IoT::AccountAuditConfiguration, IoT::Authorizer, IoT::Certificate, IoT::CustomMetric, IoT::Dimension, IoT::DomainConfiguration, IoT::FleetMetric, IoT::JobTemplate, IoT::Logging, IoT::MitigationAction, IoT::Policy, IoT::PolicyPrincipalAttachment, IoT::ProvisioningTemplate, IoT::ResourceSpecificLogging, IoT::RoleAlias, IoT::ScheduledAudit, IoT::SecurityProfile, IoT::Thing, IoT::ThingPrincipalAttachment, IoT::TopicRule, IoT::TopicRuleDestination, IoTAnalytics::Channel, IoTAnalytics::Dataset, IoTAnalytics::Datastore, IoTAnalytics::Pipeline, IoTCoreDeviceAdvisor::SuiteDefinition, IoTEvents::AlarmModel, IoTEvents::DetectorModel, IoTEvents::Input, IoTFleetHub::Application, IoTSiteWise::AccessPolicy, IoTSiteWise::Asset, IoTSiteWise::AssetModel, IoTSiteWise::Dashboard, IoTSiteWise::Gateway, IoTSiteWise::Portal, IoTSiteWise::Project, IoTThingsGraph::FlowTemplate, IoTTwinMaker::ComponentType, IoTTwinMaker::Entity, IoTTwinMaker::Scene, IoTTwinMaker::Workspace, IoTWireless::Destination, IoTWireless::DeviceProfile, IoTWireless::FuotaTask, IoTWireless::MulticastGroup, IoTWireless::NetworkAnalyzerConfiguration, IoTWireless::PartnerAccount, IoTWireless::ServiceProfile, IoTWireless::TaskDefinition, IoTWireless::WirelessDevice, IoTWireless::WirelessGateway, KMS::Alias, KMS::Key, KMS::ReplicaKey, KafkaConnect::Connector, Kendra::DataSource, Kendra::Faq, Kendra::Index, Kinesis::Stream, Kinesis::StreamConsumer, KinesisAnalytics::Application, KinesisAnalytics::ApplicationOutput, KinesisAnalytics::ApplicationReferenceDataSource, KinesisAnalyticsV2::Application, KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption, KinesisAnalyticsV2::ApplicationOutput, KinesisAnalyticsV2::ApplicationReferenceDataSource, KinesisFirehose::DeliveryStream, KinesisVideo::SignalingChannel, KinesisVideo::Stream, LakeFormation::DataLakeSettings, LakeFormation::Permissions, LakeFormation::Resource, Lambda::Alias, Lambda::CodeSigningConfig, Lambda::EventInvokeConfig, Lambda::EventSourceMapping, Lambda::Function, Lambda::LayerVersion, Lambda::LayerVersionPermission, Lambda::Permission, Lambda::Url, Lambda::Version, Lex::Bot, Lex::BotAlias, Lex::BotVersion, Lex::ResourcePolicy, LicenseManager::Grant, LicenseManager::License, Lightsail::Alarm, Lightsail::Bucket, Lightsail::Certificate, Lightsail::Container, Lightsail::Database, Lightsail::Disk, Lightsail::Distribution, Lightsail::Instance, Lightsail::LoadBalancer, Lightsail::LoadBalancerTlsCertificate, Lightsail::StaticIp, Location::GeofenceCollection, Location::Map, Location::PlaceIndex, Location::RouteCalculator, Location::Tracker, Location::TrackerConsumer, Logs::Destination, Logs::LogGroup, Logs::LogStream, Logs::MetricFilter, Logs::QueryDefinition, Logs::ResourcePolicy, Logs::SubscriptionFilter, LookoutEquipment::InferenceScheduler, LookoutMetrics::Alert, LookoutMetrics::AnomalyDetector, LookoutVision::Project, MSK::BatchScramSecret, MSK::Cluster, MSK::Configuration, MWAA::Environment, Macie::CustomDataIdentifier, Macie::FindingsFilter, Macie::Session, ManagedBlockchain::Member, ManagedBlockchain::Node, MediaConnect::Flow, MediaConnect::FlowEntitlement, MediaConnect::FlowOutput, MediaConnect::FlowSource, MediaConnect::FlowVpcInterface, MediaConvert::JobTemplate, MediaConvert::Preset, MediaConvert::Queue, MediaLive::Channel, MediaLive::Input, MediaLive::InputSecurityGroup, MediaPackage::Asset, MediaPackage::Channel, MediaPackage::OriginEndpoint, MediaPackage::PackagingConfiguration, MediaPackage::PackagingGroup, MediaStore::Container, MediaTailor::PlaybackConfiguration, MemoryDB::ACL, MemoryDB::Cluster, MemoryDB::ParameterGroup, MemoryDB::SubnetGroup, MemoryDB::User, Neptune::DBCluster, Neptune::DBClusterParameterGroup, Neptune::DBInstance, Neptune::DBParameterGroup, Neptune::DBSubnetGroup, NetworkFirewall::Firewall, NetworkFirewall::FirewallPolicy, NetworkFirewall::LoggingConfiguration, NetworkFirewall::RuleGroup, NetworkManager::ConnectAttachment, NetworkManager::ConnectPeer, NetworkManager::CoreNetwork, NetworkManager::CustomerGatewayAssociation, NetworkManager::Device, NetworkManager::GlobalNetwork, NetworkManager::Link, NetworkManager::LinkAssociation, NetworkManager::Site, NetworkManager::SiteToSiteVpnAttachment, NetworkManager::TransitGatewayRegistration, NetworkManager::VpcAttachment, NimbleStudio::LaunchProfile, NimbleStudio::StreamingImage, NimbleStudio::Studio, NimbleStudio::StudioComponent, OpenSearchService::Domain, OpsWorks::App, OpsWorks::ElasticLoadBalancerAttachment, OpsWorks::Instance, OpsWorks::Layer, OpsWorks::Stack, OpsWorks::UserProfile, OpsWorks::Volume, OpsWorksCM::Server, Panorama::ApplicationInstance, Panorama::Package, Panorama::PackageVersion, Personalize::Dataset, Personalize::DatasetGroup, Personalize::Schema, Personalize::Solution, Pinpoint::ADMChannel, Pinpoint::APNSChannel, Pinpoint::APNSSandboxChannel, Pinpoint::APNSVoipChannel, Pinpoint::APNSVoipSandboxChannel, Pinpoint::App, Pinpoint::ApplicationSettings, Pinpoint::BaiduChannel, Pinpoint::Campaign, Pinpoint::EmailChannel, Pinpoint::EmailTemplate, Pinpoint::EventStream, Pinpoint::GCMChannel, Pinpoint::InAppTemplate, Pinpoint::PushTemplate, Pinpoint::SMSChannel, Pinpoint::Segment, Pinpoint::SmsTemplate, Pinpoint::VoiceChannel, PinpointEmail::ConfigurationSet, PinpointEmail::ConfigurationSetEventDestination, PinpointEmail::DedicatedIpPool, PinpointEmail::Identity, QLDB::Ledger, QLDB::Stream, QuickSight::Analysis, QuickSight::Dashboard, QuickSight::DataSet, QuickSight::DataSource, QuickSight::Template, QuickSight::Theme, Humidifier::RAM::ResourceShare, Humidifier::RDS::DBCluster, Humidifier::RDS::DBClusterParameterGroup, Humidifier::RDS::DBInstance, Humidifier::RDS::DBParameterGroup, Humidifier::RDS::DBProxy, Humidifier::RDS::DBProxyEndpoint, Humidifier::RDS::DBProxyTargetGroup, Humidifier::RDS::DBSecurityGroup, Humidifier::RDS::DBSecurityGroupIngress, Humidifier::RDS::DBSubnetGroup, Humidifier::RDS::EventSubscription, Humidifier::RDS::GlobalCluster, Humidifier::RDS::OptionGroup, Humidifier::RUM::AppMonitor, Humidifier::Redshift::Cluster, Humidifier::Redshift::ClusterParameterGroup, Humidifier::Redshift::ClusterSecurityGroup, Humidifier::Redshift::ClusterSecurityGroupIngress, Humidifier::Redshift::ClusterSubnetGroup, Humidifier::Redshift::EndpointAccess, Humidifier::Redshift::EndpointAuthorization, Humidifier::Redshift::EventSubscription, Humidifier::Redshift::ScheduledAction, Humidifier::RefactorSpaces::Application, Humidifier::RefactorSpaces::Environment, Humidifier::RefactorSpaces::Route, Humidifier::RefactorSpaces::Service, Humidifier::Rekognition::Collection, Humidifier::Rekognition::Project, Humidifier::Rekognition::StreamProcessor, Humidifier::ResilienceHub::App, Humidifier::ResilienceHub::ResiliencyPolicy, Humidifier::ResourceGroups::Group, Humidifier::RoboMaker::Fleet, Humidifier::RoboMaker::Robot, Humidifier::RoboMaker::RobotApplication, Humidifier::RoboMaker::RobotApplicationVersion, Humidifier::RoboMaker::SimulationApplication, Humidifier::RoboMaker::SimulationApplicationVersion, Humidifier::Route53::DNSSEC, Humidifier::Route53::HealthCheck, Humidifier::Route53::HostedZone, Humidifier::Route53::KeySigningKey, Humidifier::Route53::RecordSet, Humidifier::Route53::RecordSetGroup, Humidifier::Route53RecoveryControl::Cluster, Humidifier::Route53RecoveryControl::ControlPanel, Humidifier::Route53RecoveryControl::RoutingControl, Humidifier::Route53RecoveryControl::SafetyRule, Humidifier::Route53RecoveryReadiness::Cell, Humidifier::Route53RecoveryReadiness::ReadinessCheck, Humidifier::Route53RecoveryReadiness::RecoveryGroup, Humidifier::Route53RecoveryReadiness::ResourceSet, Humidifier::Route53Resolver::FirewallDomainList, Humidifier::Route53Resolver::FirewallRuleGroup, Humidifier::Route53Resolver::FirewallRuleGroupAssociation, Humidifier::Route53Resolver::ResolverConfig, Humidifier::Route53Resolver::ResolverDNSSECConfig, Humidifier::Route53Resolver::ResolverEndpoint, Humidifier::Route53Resolver::ResolverQueryLoggingConfig, Humidifier::Route53Resolver::ResolverQueryLoggingConfigAssociation, Humidifier::Route53Resolver::ResolverRule, Humidifier::Route53Resolver::ResolverRuleAssociation, S3::AccessPoint, S3::Bucket, S3::BucketPolicy, S3::MultiRegionAccessPoint, S3::MultiRegionAccessPointPolicy, S3::StorageLens, S3ObjectLambda::AccessPoint, S3ObjectLambda::AccessPointPolicy, S3Outposts::AccessPoint, S3Outposts::Bucket, S3Outposts::BucketPolicy, S3Outposts::Endpoint, SDB::Domain, SES::ConfigurationSet, SES::ConfigurationSetEventDestination, SES::ContactList, SES::ReceiptFilter, SES::ReceiptRule, SES::ReceiptRuleSet, SES::Template, SNS::Subscription, SNS::Topic, SNS::TopicPolicy, SQS::Queue, SQS::QueuePolicy, SSM::Association, SSM::Document, SSM::MaintenanceWindow, SSM::MaintenanceWindowTarget, SSM::MaintenanceWindowTask, SSM::Parameter, SSM::PatchBaseline, SSM::ResourceDataSync, SSMContacts::Contact, SSMContacts::ContactChannel, SSMIncidents::ReplicationSet, SSMIncidents::ResponsePlan, SSO::Assignment, SSO::InstanceAccessControlAttributeConfiguration, SSO::PermissionSet, SageMaker::App, SageMaker::AppImageConfig, SageMaker::CodeRepository, SageMaker::DataQualityJobDefinition, SageMaker::Device, SageMaker::DeviceFleet, SageMaker::Domain, SageMaker::Endpoint, SageMaker::EndpointConfig, SageMaker::FeatureGroup, SageMaker::Image, SageMaker::ImageVersion, SageMaker::Model, SageMaker::ModelBiasJobDefinition, SageMaker::ModelExplainabilityJobDefinition, SageMaker::ModelPackage, SageMaker::ModelPackageGroup, SageMaker::ModelQualityJobDefinition, SageMaker::MonitoringSchedule, SageMaker::NotebookInstance, SageMaker::NotebookInstanceLifecycleConfig, SageMaker::Pipeline, SageMaker::Project, SageMaker::UserProfile, SageMaker::Workteam, SecretsManager::ResourcePolicy, SecretsManager::RotationSchedule, SecretsManager::Secret, SecretsManager::SecretTargetAttachment, SecurityHub::Hub, ServiceCatalog::AcceptedPortfolioShare, ServiceCatalog::CloudFormationProduct, ServiceCatalog::CloudFormationProvisionedProduct, ServiceCatalog::LaunchNotificationConstraint, ServiceCatalog::LaunchRoleConstraint, ServiceCatalog::LaunchTemplateConstraint, ServiceCatalog::Portfolio, ServiceCatalog::PortfolioPrincipalAssociation, ServiceCatalog::PortfolioProductAssociation, ServiceCatalog::PortfolioShare, ServiceCatalog::ResourceUpdateConstraint, ServiceCatalog::ServiceAction, ServiceCatalog::ServiceActionAssociation, ServiceCatalog::StackSetConstraint, ServiceCatalog::TagOption, ServiceCatalog::TagOptionAssociation, ServiceCatalogAppRegistry::Application, ServiceCatalogAppRegistry::AttributeGroup, ServiceCatalogAppRegistry::AttributeGroupAssociation, ServiceCatalogAppRegistry::ResourceAssociation, ServiceDiscovery::HttpNamespace, ServiceDiscovery::Instance, ServiceDiscovery::PrivateDnsNamespace, ServiceDiscovery::PublicDnsNamespace, ServiceDiscovery::Service, Signer::ProfilePermission, Signer::SigningProfile, StepFunctions::Activity, StepFunctions::StateMachine, Synthetics::Canary, Timestream::Database, Timestream::ScheduledQuery, Timestream::Table, Transfer::Server, Transfer::User, Transfer::Workflow, VoiceID::Domain, WAF::ByteMatchSet, WAF::IPSet, WAF::Rule, WAF::SizeConstraintSet, WAF::SqlInjectionMatchSet, WAF::WebACL, WAF::XssMatchSet, WAFRegional::ByteMatchSet, WAFRegional::GeoMatchSet, WAFRegional::IPSet, WAFRegional::RateBasedRule, WAFRegional::RegexPatternSet, WAFRegional::Rule, WAFRegional::SizeConstraintSet, WAFRegional::SqlInjectionMatchSet, WAFRegional::WebACL, WAFRegional::WebACLAssociation, WAFRegional::XssMatchSet, WAFv2::IPSet, WAFv2::LoggingConfiguration, WAFv2::RegexPatternSet, WAFv2::RuleGroup, WAFv2::WebACL, WAFv2::WebACLAssociation, Wisdom::Assistant, Wisdom::AssistantAssociation, Wisdom::KnowledgeBase, WorkSpaces::ConnectionAlias, WorkSpaces::Workspace, XRay::Group, XRay::SamplingRule

Constant Summary collapse

COMMON_ATTRIBUTES =

Attributes that are available to every stack

Humidifier.underscore(
  %w[Condition CreationPolicy DeletionPolicy DependsOn Metadata
     UpdatePolicy]
)

Class Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(properties = {}) ⇒ Resource

Returns a new instance of Resource.



15
16
17
18
# File 'lib/humidifier/resource.rb', line 15

def initialize(properties = {})
  self.properties = {}
  update(properties)
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name, *args) ⇒ Object

Patches method_missing to include property accessors After the first method call, builds the accessor methods to get a speed boost



23
24
25
26
27
28
29
30
31
32
33
# File 'lib/humidifier/resource.rb', line 23

def method_missing(name, *args)
  if !valid_accessor?(name)
    super
  elsif self.class.prop?(name.to_s)
    self.class.build_property_reader(name)
    send(name)
  else
    self.class.build_property_writer(name)
    send(name, args.first)
  end
end

Class Attribute Details

.aws_nameObject

Returns the value of attribute aws_name.



80
81
82
# File 'lib/humidifier/resource.rb', line 80

def aws_name
  @aws_name
end

.propsObject

Returns the value of attribute props.



80
81
82
# File 'lib/humidifier/resource.rb', line 80

def props
  @props
end

Class Method Details

.prop?(prop) ⇒ Boolean

true if this resource has the given property

Returns:

  • (Boolean)


97
98
99
# File 'lib/humidifier/resource.rb', line 97

def prop?(prop)
  props.key?(prop)
end

Instance Method Details

#respond_to_missing?(name) ⇒ Boolean

Patches respond_to_missing? to include property accessors

Returns:

  • (Boolean)


36
37
38
# File 'lib/humidifier/resource.rb', line 36

def respond_to_missing?(name, *)
  valid_accessor?(name) || super
end

#to_cfObject

CFN stack syntax



41
42
43
44
45
46
47
48
49
50
51
# File 'lib/humidifier/resource.rb', line 41

def to_cf
  props_cf =
    properties.map do |key, value|
      self.class.props[key].to_cf(value)
    end

  common_attributes.merge!(
    "Type" => self.class.aws_name,
    "Properties" => props_cf.to_h
  )
end

#update(properties) ⇒ Object

Update a set of properties defined by the given properties hash



54
55
56
57
58
# File 'lib/humidifier/resource.rb', line 54

def update(properties)
  properties.each do |property, value|
    update_property(property, value)
  end
end

#update_attributes(attributes) ⇒ Object

Update the attributes of the resource defined by COMMON_ATTRIBUTES



61
62
63
64
65
66
67
68
69
# File 'lib/humidifier/resource.rb', line 61

def update_attributes(attributes)
  attributes.each do |attribute, value|
    unless COMMON_ATTRIBUTES.value?(attribute)
      raise ArgumentError, "Invalid attribute: #{attribute}"
    end

    public_send(:"#{attribute}=", value)
  end
end

#update_property(property, value) ⇒ Object

Update an individual property on this resource



72
73
74
75
76
77
# File 'lib/humidifier/resource.rb', line 72

def update_property(property, value)
  property = property.to_s
  property = validate_property(property)
  value = validate_value(property, value)
  properties[property] = value
end