├── .editorconfig ├── .gitattributes ├── .gitignore ├── .idea ├── libraries │ └── bellerophon_node_modules.xml └── watcherTasks.xml ├── LICENSE ├── README.md ├── bower.json ├── gulpfile.js ├── package.json ├── src ├── availableresources.js ├── fonts │ └── poiretone.woff2 ├── icons │ ├── AWS-EC2-Container-Registry.svg │ ├── AmazonWorkDocs.svg │ ├── AmazonWorkMail.svg │ ├── AmazonWorkSpaces.svg │ ├── Analytics_AmazonEMR.svg │ ├── Analytics_AmazonEMR_Cluster.svg │ ├── Analytics_AmazonEMR_Engine.svg │ ├── Analytics_AmazonEMR_HDFS_Cluster.svg │ ├── Analytics_AmazonEMR_MapRM3Engine.svg │ ├── Analytics_AmazonEMR_MapRM5Engine.svg │ ├── Analytics_AmazonEMR_MapRM7Engine.svg │ ├── Analytics_AmazonElasticsearch.svg │ ├── Analytics_AmazonMachineLearning.svg │ ├── Analytics_AmazonQuickSight.svg │ ├── Analytics_DataPipeline.svg │ ├── Analytics_Kinesis.svg │ ├── Analytics_Kinesis_Analytics.svg │ ├── Analytics_Kinesis_EnabledApp.svg │ ├── Analytics_Kinesis_Firehose.svg │ ├── Analytics_Kinesis_Streams.svg │ ├── ApplicationServices_APIGateway.svg │ ├── ApplicationServices_AmazonCloudSearch.svg │ ├── ApplicationServices_AmazonCloudSearch_SDFmetadata.svg │ ├── ApplicationServices_AmazonElasticTranscoder.svg │ ├── ApplicationServices_AmazonSES.svg │ ├── ApplicationServices_AmazonSES_Email.svg │ ├── ApplicationServices_AmazonSQS.svg │ ├── ApplicationServices_AmazonSQS_Message.svg │ ├── ApplicationServices_AmazonSQS_Queue.svg │ ├── ApplicationServices_AmazonSWF.svg │ ├── ApplicationServices_AmazonSWF_Decider.svg │ ├── ApplicationServices_AmazonSWF_Worker.svg │ ├── ApplicationServices_AppStream.svg │ ├── Compute_AmazonEC2.svg │ ├── Compute_AmazonEC2ContainerService.svg │ ├── Compute_AmazonEC2_AMI.svg │ ├── Compute_AmazonEC2_CloudWatch.svg │ ├── Compute_AmazonEC2_DBonInstance.svg │ ├── Compute_AmazonEC2_ElasticIP.svg │ ├── Compute_AmazonEC2_Instance.svg │ ├── Compute_AmazonEC2_Instances.svg │ ├── Compute_AmazonEC2_OptimizedInstance.svg │ ├── Compute_AmazonEC2_SpotFleet.svg │ ├── Compute_AmazonEC2_SpotInstance.svg │ ├── Compute_Elastic Beanstalk.svg │ ├── Compute_ElasticBeanstalk_Application.svg │ ├── Compute_ElasticBeanstalk_Deployment.svg │ ├── Compute_ElasticLoadBalancing.svg │ ├── Compute_Lambda.svg │ ├── Database_AWSDatabaseMigrationService.svg │ ├── Database_AmazonElastiCache_MemCached.svg │ ├── Database_AmazonElasticCache.svg │ ├── Database_AmazonElasticCache_Node.svg │ ├── Database_AmazonElasticCache_Redis.svg │ ├── Database_AmazonRDS.svg │ ├── Database_AmazonRDS_DBInstance.svg │ ├── Database_AmazonRDS_InstanceReadReplica.svg │ ├── Database_AmazonRDS_InstanceStandby.svg │ ├── Database_AmazonRDS_MSInstance-2.svg │ ├── Database_AmazonRDS_MSSQLInstance.svg │ ├── Database_AmazonRDS_MySQLDBInstance.svg │ ├── Database_AmazonRDS_MySQLInstance-2.svg │ ├── Database_AmazonRDS_OracleDBInstance-2.svg │ ├── Database_AmazonRDS_OracleDBInstance.svg │ ├── Database_AmazonRDS_PIOP.svg │ ├── Database_AmazonRDS_PostgreSQLInstance.svg │ ├── Database_AmazonRDS_SQLMaster.svg │ ├── Database_AmazonRDS_SQLSlave.svg │ ├── Database_AmazonRedShift.svg │ ├── Database_AmazonRedShift_DW1DenseCompute.svg │ ├── Database_AmazonRedShift_DW2DenseCompute.svg │ ├── Database_AmazonRedShift_SolidStateDisks.svg │ ├── Database_AmazonSimpleDB.svg │ ├── Database_AmazonSimpleDB_Domain.svg │ ├── Database_DynamoDB.svg │ ├── Database_DynamoDB_Attribute.svg │ ├── Database_DynamoDB_Attributes.svg │ ├── Database_DynamoDB_GlobalSecondaryIndex.svg │ ├── Database_DynamoDB_Item.svg │ ├── Database_DynamoDB_Items.svg │ ├── Database_DynamoDB_Table.svg │ ├── DeploymentManagement_AWSCodeCommit.svg │ ├── DeploymentManagement_CodeDeploy.svg │ ├── DeploymentManagement_CodePipeline.svg │ ├── InternetOfThings_AWS-IOT.svg │ ├── InternetOfThings_GenericIOTThing.svg │ ├── InternetOfThings_IOTAction.svg │ ├── InternetOfThings_IOTActuator.svg │ ├── InternetOfThings_IOTCertificate.svg │ ├── InternetOfThings_IOTDesiredState.svg │ ├── InternetOfThings_IOTHTTP2Protocol.svg │ ├── InternetOfThings_IOTHTTPProtocol.svg │ ├── InternetOfThings_IOTHardwareBoard.svg │ ├── InternetOfThings_IOTMQTTProtocol.svg │ ├── InternetOfThings_IOTPolicy.svg │ ├── InternetOfThings_IOTReportedState.svg │ ├── InternetOfThings_IOTRule.svg │ ├── InternetOfThings_IOTSensor.svg │ ├── InternetOfThings_IOTServo.svg │ ├── InternetOfThings_IOTShadow.svg │ ├── InternetOfThings_IOTSimulator.svg │ ├── InternetOfThings_IOTThingBank.svg │ ├── InternetOfThings_IOTThingBicycle.svg │ ├── InternetOfThings_IOTThingCamera.svg │ ├── InternetOfThings_IOTThingCar.svg │ ├── InternetOfThings_IOTThingCart.svg │ ├── InternetOfThings_IOTThingCoffeePot.svg │ ├── InternetOfThings_IOTThingDoorLock.svg │ ├── InternetOfThings_IOTThingFactory.svg │ ├── InternetOfThings_IOTThingHouse.svg │ ├── InternetOfThings_IOTThingLightbulb.svg │ ├── InternetOfThings_IOTThingMedicalEmergency.svg │ ├── InternetOfThings_IOTThingPoliceEmergency.svg │ ├── InternetOfThings_IOTThingThermostat.svg │ ├── InternetOfThings_IOTThingTravel.svg │ ├── InternetOfThings_IOTThingUtility.svg │ ├── InternetOfThings_IOTThingWindfarm.svg │ ├── InternetOfThings_IOTTopic.svg │ ├── ManagementTools_CloudFormation.svg │ ├── ManagementTools_CloudFormation_Stack.svg │ ├── ManagementTools_CloudFormation_Template.svg │ ├── ManagementTools_CloudTrail.svg │ ├── ManagementTools_CloudWatch.svg │ ├── ManagementTools_CloudWatch_Alarm.svg │ ├── ManagementTools_Config.svg │ ├── ManagementTools_OpsWorks.svg │ ├── ManagementTools_OpsWorks_Apps.svg │ ├── ManagementTools_OpsWorks_Deployments.svg │ ├── ManagementTools_OpsWorks_Instances.svg │ ├── ManagementTools_OpsWorks_Layers.svg │ ├── ManagementTools_OpsWorks_Monitoring.svg │ ├── ManagementTools_OpsWorks_Permissions.svg │ ├── ManagementTools_OpsWorks_Resources.svg │ ├── ManagementTools_OpsWorks_Stack.svg │ ├── ManagementTools_ServiceCatalog.svg │ ├── MobileServices_AWSMobileHub.svg │ ├── MobileServices_Cognito.svg │ ├── MobileServices_DeviceFarm.svg │ ├── MobileServices_MobileAnalytics.svg │ ├── MobileServices_SNS.svg │ ├── MobileServices_SNS_EmailNotification.svg │ ├── MobileServices_SNS_HTTPNotification.svg │ ├── MobileServices_SNS_Topic.svg │ ├── Networking_AWSDirectConnect.svg │ ├── Networking_AmazonVPC.svg │ ├── Networking_AmazonVPC_CustomerGateway.svg │ ├── Networking_AmazonVPC_InternetGateway.svg │ ├── Networking_AmazonVPC_Peering.svg │ ├── Networking_AmazonVPC_Router.svg │ ├── Networking_AmazonVPC_VPNConnection.svg │ ├── Networking_AmazonVPC_VPNGateway.svg │ ├── Networking_Route53.svg │ ├── Networking_Route53_HostedZone.svg │ ├── Networking_Route53_Table.svg │ ├── SecurityIdentity_CloudHSM.svg │ ├── SecurityIdentity_DirectoryService.svg │ ├── SecurityIdentity_IdentityAccessManagement.svg │ ├── SecurityIdentity_IdentityAccessManagement_AWSSecurityTokenService.svg │ ├── SecurityIdentity_IdentityAccessManagement_AWSSecurityTokenService2.svg │ ├── SecurityIdentity_IdentityAccessManagement_AddOn.svg │ ├── SecurityIdentity_IdentityAccessManagement_DataEncryptionKey.svg │ ├── SecurityIdentity_IdentityAccessManagement_EncryptedData.svg │ ├── SecurityIdentity_IdentityAccessManagement_LongTermSecurityCredential.svg │ ├── SecurityIdentity_IdentityAccessManagement_MFAToken.svg │ ├── SecurityIdentity_IdentityAccessManagement_Permissions.svg │ ├── SecurityIdentity_IdentityAccessManagement_Role.svg │ ├── SecurityIdentity_IdentityAccessManagement_TemporarySecurityCredential.svg │ ├── SecurityIdentity_KeyManagementService.svg │ ├── SecurityIdentity_ServiceCatalog.svg │ ├── SecurityIdentity_TrustedAdvisor.svg │ ├── SecurityIdentity_WebAppFirewall.svg │ ├── StorageContentDelivery_AWSIMportExport.svg │ ├── StorageContentDelivery_AmazonCloudFront.svg │ ├── StorageContentDelivery_AmazonCloudFront_DownloadDistribution.svg │ ├── StorageContentDelivery_AmazonCloudFront_EdgeLocation.svg │ ├── StorageContentDelivery_AmazonCloudFront_StreamingDistribution.svg │ ├── StorageContentDelivery_AmazonElasticBlockStore.svg │ ├── StorageContentDelivery_AmazonGlacier.svg │ ├── StorageContentDelivery_AmazonGlacier_Archive.svg │ ├── StorageContentDelivery_AmazonGlacier_Vault.svg │ ├── StorageContentDelivery_AmazonS3.svg │ ├── StorageContentDelivery_AmazonS3_Bucket.svg │ ├── StorageContentDelivery_AmazonS3_BucketwithObjects.svg │ ├── StorageContentDelivery_AmazonS3_Objects.svg │ ├── StorageContentDelivery_AmazonStorageGateway.svg │ ├── StorageContentDelivery_AmazonStorageGateway_CachedVolume.svg │ ├── StorageContentDelivery_AmazonStorageGateway_Non-Cached Volumn.svg │ ├── StorageContentDelivery_AmazonStorageGateway_VirtualTapeLibrary.svg │ ├── StorageContentDelivery_EFS.svg │ ├── StorageContentDelivery_Snapshot.svg │ ├── StorageContentDelivery_Snowball.svg │ ├── StorageContentDelivery_Volume.svg │ ├── bellerophon.hqx │ ├── bellerophon.icns │ ├── bellerophon.ico │ └── bellerophon.svg ├── index.js ├── logger.js ├── main │ ├── index.css │ ├── index.html │ ├── mainView.js │ ├── panelcomponent.js │ ├── resourcecomponent.js │ └── sidebarcomponent.js ├── package.json ├── resource.js ├── resources │ ├── autoscaling.js │ ├── cloudformation.js │ ├── cloudfront.js │ ├── cloudtrail.js │ ├── cloudwatch.js │ ├── ec2.js │ ├── elasticloadbalancing.js │ ├── iam.js │ ├── route53.js │ ├── s3.js │ ├── sns.js │ ├── sqs.js │ └── util.js ├── template.js └── template │ ├── index.css │ ├── index.html │ └── templateView.js └── test ├── index.js ├── panelcomponent.js ├── resource.js ├── resource.js.old ├── resourcecomponent.js ├── sidebarcomponent.js ├── template.js ├── templateView.js └── uiView.js /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = tab 5 | end_of_line = lf 6 | charset = utf-8 7 | trim_trailing_whitespace = true 8 | insert_final_newline = true 9 | 10 | [{package.json,*.yml}] 11 | indent_style = space 12 | indent_size = 2 13 | 14 | [*.md] 15 | trim_trailing_whitespace = false 16 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | /dist 3 | -------------------------------------------------------------------------------- /.idea/libraries/bellerophon_node_modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /.idea/watcherTasks.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bellerophon", 3 | "description": "My badass app", 4 | "main": "ui.js", 5 | "authors": [ 6 | "[object Object]" 7 | ], 8 | "license": "Apache 2.0", 9 | "keywords": [ 10 | "electron-app", 11 | "electron" 12 | ], 13 | "homepage": "https://github.com/arminhammer/bellerophon", 14 | "moduleType": [ 15 | "amd", 16 | "node" 17 | ], 18 | "private": true, 19 | "ignore": [ 20 | "**/.*", 21 | "node_modules", 22 | "bower_components", 23 | "test", 24 | "tests" 25 | ] 26 | } 27 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bellerophon", 3 | "productName": "Bellerophon", 4 | "version": "0.2.2", 5 | "description": "AWS CloudFormation generator based off of existing account resources.", 6 | "license": "MIT", 7 | "repository": "arminhammer/bellerophon", 8 | "author": { 9 | "name": "arminhammer", 10 | "email": "arminhammer@gmail.com", 11 | "url": "github.com/arminhammer/bellerophon" 12 | }, 13 | "electronVersion": "0.36.0", 14 | "scripts": { 15 | "test": "xo", 16 | "start": "electron --debug src", 17 | "build": "electron-packager . $npm_package_productName --out=dist --ignore='^/dist$' --prune --asar --all --version=$npm_package_electronVersion" 18 | }, 19 | "files": [ 20 | "index.js" 21 | ], 22 | "keywords": [ 23 | "bellerophon-app", 24 | "bellerophon" 25 | ], 26 | "devDependencies": { 27 | "electron-packager": "^5.2.1", 28 | "electron-prebuilt": "0.36.9", 29 | "eslint-config-devenv": "^1.1.0", 30 | "gulp": "^3.9.1", 31 | "gulp-electron": "0.0.10", 32 | "gulp-eslint": "^1.0.0", 33 | "gulp-exclude-gitignore": "^1.0.0", 34 | "gulp-istanbul": "^0.10.3", 35 | "gulp-mocha": "^2.0.0", 36 | "gulp-nsp": "^2.3.0", 37 | "gulp-plumber": "^1.0.0", 38 | "rewire": "^2.5.1", 39 | "xo": "^0.12.1" 40 | }, 41 | "xo": { 42 | "esnext": true, 43 | "envs": [ 44 | "node", 45 | "browser" 46 | ] 47 | }, 48 | "dependencies": { 49 | "node-notifier": "^4.4.0" 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /src/fonts/poiretone.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arminhammer/bellerophon/399b156d8fed36a860d65f94a91195838b37a459/src/fonts/poiretone.woff2 -------------------------------------------------------------------------------- /src/icons/AWS-EC2-Container-Registry.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /src/icons/AmazonWorkDocs.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 23 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /src/icons/AmazonWorkMail.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 23 | 25 | 26 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /src/icons/AmazonWorkSpaces.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 18 | 19 | 23 | 24 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /src/icons/Analytics_AmazonEMR_Engine.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 15 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/icons/Analytics_AmazonEMR_MapRM3Engine.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 13 | 20 | 21 | 22 | 23 | MapR M3 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /src/icons/Analytics_AmazonEMR_MapRM5Engine.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 14 | 21 | 22 | MapR M5 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/icons/Analytics_AmazonEMR_MapRM7Engine.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 19 | 26 | 27 | MapR M7 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/icons/Analytics_AmazonElasticsearch.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/icons/Analytics_AmazonMachineLearning.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/icons/Analytics_AmazonQuickSight.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/icons/Analytics_DataPipeline.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/icons/Analytics_Kinesis.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /src/icons/Analytics_Kinesis_EnabledApp.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 12 | 13 | 14 | 16 | 18 | 19 | 20 | 21 | 22 | 23 | K 24 | 25 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /src/icons/Analytics_Kinesis_Firehose.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 11 | 13 | 15 | 17 | 20 | 22 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /src/icons/Analytics_Kinesis_Streams.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 12 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/icons/ApplicationServices_APIGateway.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 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 | -------------------------------------------------------------------------------- /src/icons/ApplicationServices_AmazonCloudSearch_SDFmetadata.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/icons/ApplicationServices_AmazonSES.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | <nyt_prefs> <nyt_prefix></nyt_prefix> <nyt_suffix></nyt_suffix> <nyt_base_path>~/Desktop/wip/Architecture%20Icons%20-%20Update%20all%20customer-facing%20files%20/AWS-Simple-Icons%202/App%20Services/EPS</nyt_base_path> <nyt_scaling>100</nyt_scaling> <nyt_transparency>true</nyt_transparency> <nyt_format>EPS</nyt_format> <nyt_export_code>artboards</nyt_export_code></nyt_prefs> 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/icons/ApplicationServices_AmazonSQS_Message.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /src/icons/ApplicationServices_AmazonSQS_Queue.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/icons/ApplicationServices_AmazonSWF.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/icons/ApplicationServices_AmazonSWF_Worker.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 21 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /src/icons/ApplicationServices_AppStream.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/icons/Compute_AmazonEC2ContainerService.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /src/icons/Compute_AmazonEC2_AMI.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | AMI 9 | 10 | 11 | 13 | 15 | 17 | 19 | 20 | 21 | 22 | 24 | 25 | 27 | 28 | 29 | 30 | 31 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /src/icons/Compute_AmazonEC2_CloudWatch.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 12 | 14 | 16 | 17 | 18 | 20 | 21 | 23 | 24 | 26 | 27 | 28 | 29 | 30 | 32 | 33 | 34 | 35 | 36 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /src/icons/Compute_AmazonEC2_ElasticIP.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 19 | 20 | 22 | 23 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /src/icons/Compute_AmazonEC2_Instance.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 12 | 13 | 14 | 15 | 17 | 19 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /src/icons/Compute_AmazonEC2_OptimizedInstance.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 10 | 12 | 14 | 15 | 17 | 18 | 20 | 21 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 31 | 32 | 35 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /src/icons/Compute_AmazonEC2_SpotFleet.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 15 | 17 | 18 | 19 | 20 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | ¢ 55 | 56 | 57 | -------------------------------------------------------------------------------- /src/icons/Compute_AmazonEC2_SpotInstance.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | ¢ 50 | 51 | -------------------------------------------------------------------------------- /src/icons/Compute_Elastic Beanstalk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/icons/Compute_ElasticBeanstalk_Application.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | 13 | 14 | 16 | 17 | 18 | 19 | 20 | 22 | 23 | 24 | 25 | 26 | 28 | 29 | 31 | 32 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /src/icons/Compute_ElasticLoadBalancing.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 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 | 38 | -------------------------------------------------------------------------------- /src/icons/Compute_Lambda.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/icons/Database_AWSDatabaseMigrationService.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 12 | 13 | 15 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/icons/Database_AmazonElastiCache_MemCached.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 35 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /src/icons/Database_AmazonElasticCache.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | <nyt_prefs> 29 | <nyt_prefix></nyt_prefix> 30 | <nyt_suffix></nyt_suffix> 31 | <nyt_base_path>~/Desktop/wip/Architecture%20Icons%20-%20Update%20all%20customer-facing%20files%20/AWS-Simple-Icons%202/Database/EPS</nyt_base_path> 32 | <nyt_scaling>100</nyt_scaling> 33 | <nyt_transparency>true</nyt_transparency> 34 | <nyt_format>EPS</nyt_format> 35 | <nyt_export_code>artboards</nyt_export_code> 36 | </nyt_prefs> 37 | 38 | 39 | -------------------------------------------------------------------------------- /src/icons/Database_AmazonElasticCache_Redis.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 38 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /src/icons/Database_AmazonRDS.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | <nyt_prefs> 26 | <nyt_prefix></nyt_prefix> 27 | <nyt_suffix></nyt_suffix> 28 | <nyt_base_path>~/Desktop/wip/Architecture%20Icons%20-%20Update%20all%20customer-facing%20files%20/AWS-Simple-Icons%202/Database/EPS</nyt_base_path> 29 | <nyt_scaling>100</nyt_scaling> 30 | <nyt_transparency>true</nyt_transparency> 31 | <nyt_format>EPS</nyt_format> 32 | <nyt_export_code>artboards</nyt_export_code> 33 | </nyt_prefs> 34 | 35 | 36 | -------------------------------------------------------------------------------- /src/icons/Database_AmazonRDS_MSInstance-2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 31 | 32 | MS SQL 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /src/icons/Database_AmazonRDS_MySQLInstance-2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 31 | 32 | MySQL 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /src/icons/Database_AmazonRDS_OracleDBInstance-2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 31 | 32 | O 33 | r 34 | a 35 | c 36 | l 37 | e 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /src/icons/Database_AmazonRDS_PIOP.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | PIOP 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/icons/Database_AmazonRedShift.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /src/icons/Database_AmazonSimpleDB.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/icons/Database_AmazonSimpleDB_Domain.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 9 | 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 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /src/icons/DeploymentManagement_CodeDeploy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/icons/DeploymentManagement_CodePipeline.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/icons/InternetOfThings_AWS-IOT.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 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 | Icebreaker 37 | 38 | -------------------------------------------------------------------------------- /src/icons/InternetOfThings_IOTAction.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 26 | 27 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /src/icons/InternetOfThings_IOTHTTP2Protocol.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 28 | 29 | 30 | 32 | 33 | 34 | HTTP/2 35 | 36 | -------------------------------------------------------------------------------- /src/icons/InternetOfThings_IOTHTTPProtocol.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 28 | 29 | 30 | 32 | 33 | 34 | HTTP 35 | 36 | -------------------------------------------------------------------------------- /src/icons/InternetOfThings_IOTMQTTProtocol.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 28 | 29 | 30 | 32 | 33 | 34 | MQTT 35 | 36 | -------------------------------------------------------------------------------- /src/icons/ManagementTools_CloudFormation_Stack.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 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 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /src/icons/ManagementTools_CloudFormation_Template.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /src/icons/ManagementTools_CloudTrail.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /src/icons/ManagementTools_CloudWatch_Alarm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 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 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 56 | 57 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /src/icons/ManagementTools_Config.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /src/icons/ManagementTools_OpsWorks_Apps.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/icons/ManagementTools_OpsWorks_Deployments.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /src/icons/ManagementTools_OpsWorks_Instances.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 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 | -------------------------------------------------------------------------------- /src/icons/ManagementTools_OpsWorks_Layers.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/icons/ManagementTools_OpsWorks_Monitoring.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/icons/ManagementTools_OpsWorks_Permissions.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 19 | 20 | 21 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/icons/ManagementTools_OpsWorks_Resources.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /src/icons/ManagementTools_OpsWorks_Stack.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/icons/ManagementTools_ServiceCatalog.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /src/icons/MobileServices_Cognito.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/icons/MobileServices_DeviceFarm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/icons/MobileServices_MobileAnalytics.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /src/icons/MobileServices_SNS.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/icons/MobileServices_SNS_Topic.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /src/icons/Networking_AWSDirectConnect.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/icons/Networking_AmazonVPC.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /src/icons/Networking_AmazonVPC_InternetGateway.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | Internet Gateway 9 | 10 | 11 | 13 | 14 | 15 | 17 | 19 | 21 | 23 | 24 | 26 | 29 | 30 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /src/icons/Networking_AmazonVPC_VPNGateway.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 12 | 13 | 14 | 16 | 18 | 20 | 22 | 23 | 25 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /src/icons/Networking_Route53.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/icons/SecurityIdentity_CloudHSM.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/icons/SecurityIdentity_DirectoryService.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/icons/SecurityIdentity_IdentityAccessManagement_AWSSecurityTokenService.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 25 | 26 | 27 | 29 | 33 | 34 | 35 | 36 | 38 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /src/icons/SecurityIdentity_IdentityAccessManagement_DataEncryptionKey.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 25 | 26 | 27 | 29 | 30 | 31 | 36 | 37 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /src/icons/SecurityIdentity_IdentityAccessManagement_EncryptedData.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 25 | 26 | 27 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /src/icons/SecurityIdentity_IdentityAccessManagement_LongTermSecurityCredential.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 25 | 26 | 28 | 30 | 31 | 36 | 37 | 38 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /src/icons/SecurityIdentity_IdentityAccessManagement_MFAToken.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 27 | 28 | 29 | M 30 | F 31 | A 32 | 33 | 34 | -------------------------------------------------------------------------------- /src/icons/SecurityIdentity_IdentityAccessManagement_Permissions.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 28 | 29 | 31 | 33 | 34 | 35 | X 36 | 37 | 38 | -------------------------------------------------------------------------------- /src/icons/SecurityIdentity_KeyManagementService.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/icons/SecurityIdentity_ServiceCatalog.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/icons/SecurityIdentity_TrustedAdvisor.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/icons/SecurityIdentity_WebAppFirewall.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /src/icons/StorageContentDelivery_AmazonCloudFront_DownloadDistribution.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 11 | 12 | 13 | 15 | 16 | 17 | 18 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 31 | 32 | 33 | 34 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /src/icons/StorageContentDelivery_AmazonCloudFront_EdgeLocation.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 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 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /src/icons/StorageContentDelivery_AmazonCloudFront_StreamingDistribution.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 11 | 12 | 13 | 15 | 16 | 17 | 18 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 31 | 32 | 33 | 34 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /src/icons/StorageContentDelivery_AmazonElasticBlockStore.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/icons/StorageContentDelivery_AmazonGlacier_Archive.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /src/icons/StorageContentDelivery_AmazonGlacier_Vault.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 25 | 27 | 29 | 30 | 32 | 33 | 35 | 37 | 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /src/icons/StorageContentDelivery_AmazonS3_Objects.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 22 | 23 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /src/icons/StorageContentDelivery_AmazonStorageGateway.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/icons/StorageContentDelivery_AmazonStorageGateway_CachedVolume.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 25 | 27 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /src/icons/StorageContentDelivery_AmazonStorageGateway_Non-Cached Volumn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /src/icons/StorageContentDelivery_EFS.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/icons/StorageContentDelivery_Snowball.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /src/icons/StorageContentDelivery_Volume.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/icons/bellerophon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arminhammer/bellerophon/399b156d8fed36a860d65f94a91195838b37a459/src/icons/bellerophon.icns -------------------------------------------------------------------------------- /src/icons/bellerophon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arminhammer/bellerophon/399b156d8fed36a860d65f94a91195838b37a459/src/icons/bellerophon.ico -------------------------------------------------------------------------------- /src/logger.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by arminhammer on 1/6/16. 3 | */ 4 | 'use strict'; 5 | var winston = require('winston'); 6 | var os = require('os'); 7 | 8 | var Logger = function() { 9 | var self = this; 10 | if(process.env['BELLEROPHON_LOG'] === 'debug') { 11 | self.logger = new winston.Logger({ 12 | level: 'info', 13 | transports: [ 14 | new (winston.transports.Console)(), 15 | new (winston.transports.File)({filename: os.homedir() + '/.bellerophon.log'}) 16 | ] 17 | }); 18 | } 19 | 20 | self.log = function(msg, level, from) { 21 | if(!level) { 22 | level = 'info'; 23 | } 24 | if(!from) { 25 | from = 'SERVER:' 26 | } 27 | if(process.env['BELLEROPHON_LOG'] === 'debug') { 28 | self.logger.log(level, from, msg); 29 | } 30 | }; 31 | }; 32 | 33 | module.exports = Logger; 34 | -------------------------------------------------------------------------------- /src/main/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Bellerophon 6 | 7 | 8 | 9 | 10 | 11 | 12 | 17 | 18 | 19 | 20 | 21 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /src/main/mainView.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by arminhammer on 11/18/15. 3 | */ 4 | 5 | 'use strict'; 6 | 7 | var m = require('mithril'); 8 | 9 | var SidebarComponent = require('./sidebarcomponent'); 10 | var ResourceComponent = require('./resourcecomponent'); 11 | 12 | var MainView = { 13 | 14 | controller: function() { 15 | var self = this; 16 | self.resourceName = m.prop('AutoScaling'); 17 | self.sideList = m.prop(); 18 | self.resources = m.prop(); 19 | self.ipcRenderer = require('electron').ipcRenderer; 20 | self.log = function(msg, level) { 21 | if(!level) { 22 | level = 'info'; 23 | } 24 | self.ipcRenderer.send('send-log', { from: 'UI:', level: level, msg: msg }); 25 | }; 26 | self.ipcRenderer.on('update-resources', function(event, res) { 27 | m.startComputation(); 28 | self.log('Updating resources'); 29 | self.resources(res.resources); 30 | self.sideList(res.resources); 31 | self.resourceName(res.primary); 32 | self.log('Updated resources'); 33 | m.endComputation(); 34 | }); 35 | self.ipcRenderer.send('update-resource', { primary: self.resourceName() }); 36 | }, 37 | view: function(controller) { 38 | return [ 39 | m('.container-fluid', [ 40 | m('.row.MainContent', [ 41 | m.component(SidebarComponent, { resources: controller.resources, resourceName: controller.resourceName, sideList: controller.sideList }), 42 | m.component(ResourceComponent, { resources: controller.resources, log: controller.log, resourceName: controller.resourceName }) 43 | ]) 44 | ]) 45 | ]} 46 | }; 47 | 48 | m.mount(document.body,MainView); 49 | 50 | module.exports = MainView; 51 | -------------------------------------------------------------------------------- /src/main/sidebarcomponent.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var m = require('mithril'); 4 | var _ = require('lodash'); 5 | 6 | var SideBarComponent = { 7 | controller: function(options) { 8 | this.resources = options.resources; 9 | this.sideList = options.sideList; 10 | this.ipcRenderer = require('electron').ipcRenderer; 11 | this.changeResource = function(key) { 12 | this.resources(null); 13 | this.ipcRenderer.send('update-resource', { primary: key }) 14 | }; 15 | this.resourceName = options.resourceName; 16 | }, 17 | view: function(controller) { 18 | return m('nav.col-xs-3.bs-docs-sidebar .col-md-2 .col-lg-2', [ 19 | m('ul.nav.nav-stacked.fixed[id="sidebar"]', [ 20 | m('li', [ 21 | m('#logoHeader', [ 22 | m('img', { id: 'bellerophonLogo', src: '../icons/bellerophon.svg', height: 50 }), 23 | m('span', 'Bellerophon') 24 | ]) 25 | ]), 26 | _.map(controller.sideList(), function(resource, key) { 27 | return m('li', [ 28 | m('span', { 29 | onclick: function () { 30 | controller.changeResource(key) 31 | } 32 | }, [ 33 | m('a[href="#' + key + '"]', key) 34 | ]), 35 | m('ul.nav.nav-stacked', [ 36 | _.map(controller.sideList()[key].types, function (subResource, subKey) { 37 | if(key === controller.resourceName()) { 38 | 39 | if (Object.keys(controller.sideList()[key].types[subKey]).length > 0) { 40 | return m('li', [m('a[href="#' + key + subKey + '"]', subKey)]) 41 | } 42 | } 43 | }) 44 | ]) 45 | ]) 46 | }) 47 | ]) 48 | ]) 49 | } 50 | }; 51 | 52 | module.exports = SideBarComponent; 53 | -------------------------------------------------------------------------------- /src/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bellerophon", 3 | "version": "0.2.2", 4 | "main": "index.js", 5 | "dependencies": { 6 | "aws-sdk": "^2.2.33", 7 | "bluebird": "^3.2.2", 8 | "bootstrap": "^3.3.5", 9 | "bootswatch": "^3.3.6", 10 | "codemirror": "^5.11.0", 11 | "electron-debug": "^0.5.0", 12 | "jquery": "^2.1.4", 13 | "jsonlint": "^1.6.2", 14 | "lodash": "^4.3.0", 15 | "mithril": "0.2.0", 16 | "node-notifier": "^4.4.0", 17 | "spin.js": "^2.3.2", 18 | "winston": "^2.1.1" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/resources/cloudformation.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var P = require('bluebird'); 3 | var Util = require('./util'); 4 | 5 | var CloudFormation = function(AWS) { 6 | 7 | var cloudformation = P.promisifyAll(new AWS.CloudFormation()); 8 | 9 | return { 10 | //Authentication 11 | //CustomResource 12 | //Init 13 | //Interface 14 | Stack: { 15 | call: function() { return cloudformation.describeStacksAsync({}) }, 16 | resBlock: 'Stacks', 17 | rName: 'StackName', 18 | construct: function (name, body) { 19 | Util.baseConstruct(this, name, body); 20 | this.block = { 21 | 'Type' : 'AWS::CloudFormation::Stack', 22 | 'Properties' : { 23 | 'NotificationARNs' : [], 24 | 'Parameters' : {}, 25 | 'TemplateURL' : 'String', 26 | 'TimeoutInMinutes' : 'String' 27 | } 28 | } 29 | } 30 | } 31 | //WaitCondition 32 | //WaitConditionHandle 33 | }; 34 | }; 35 | 36 | module.exports = CloudFormation; 37 | -------------------------------------------------------------------------------- /src/resources/cloudfront.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var P = require('bluebird'); 3 | var Util = require('./util'); 4 | 5 | var CloudFront = function(AWS) { 6 | 7 | var cloudfront = P.promisifyAll(new AWS.CloudFront()); 8 | 9 | return { 10 | Distribution: { 11 | call: function() { 12 | return cloudfront 13 | .listDistributionsAsync({}) 14 | }, 15 | resBlock: 'Items', 16 | rName: 'Id', 17 | construct: function (name, body) { 18 | Util.baseConstruct(this, name, body); 19 | this.block = { 20 | 'Type': 'AWS::CloudFront::Distribution', 21 | 'Properties' : { 22 | 'DistributionConfig' : { 23 | 'Aliases' : [], 24 | 'CacheBehaviors' : [], 25 | 'Comment' : 'String', 26 | 'CustomErrorResponses' : [], 27 | 'DefaultCacheBehavior' : 'String', 28 | 'DefaultRootObject' : 'String', 29 | 'Enabled' : 'Boolean', 30 | 'Logging' : 'String', 31 | 'Origins' : [], 32 | 'PriceClass' : 'String', 33 | 'Restrictions' : 'Restriction', 34 | 'ViewerCertificate' : 'ViewerCertificate', 35 | 'WebACLId' : 'String' 36 | } 37 | } 38 | } 39 | } 40 | } 41 | }; 42 | }; 43 | 44 | module.exports = CloudFront; 45 | -------------------------------------------------------------------------------- /src/resources/cloudtrail.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var P = require('bluebird'); 3 | var Util = require('./util'); 4 | 5 | var CloudTrail = function(AWS) { 6 | 7 | var cloudtrail = P.promisifyAll(new AWS.CloudTrail()); 8 | 9 | return { 10 | /*: { 11 | call: function() { return .Async({}) }, 12 | resBlock: '', 13 | rName: '', 14 | construct: function (name, body) { 15 | baseConstruct(this, name, body); 16 | this.block = 17 | } 18 | }*/ 19 | Trail: { 20 | call: function() { return cloudtrail.describeTrailsAsync({}) }, 21 | resBlock: 'trailList', 22 | rName: 'Name', 23 | construct: function (name, body) { 24 | Util.baseConstruct(this, name, body); 25 | this.block = { 26 | 'Type' : 'AWS::CloudTrail::Trail', 27 | 'Properties' : { 28 | 'CloudWatchLogsLogGroupArn' : 'String', 29 | 'CloudWatchLogsRoleArn' : 'String', 30 | 'EnableLogFileValidation' : 'Boolean', 31 | 'IncludeGlobalServiceEvents' : 'Boolean', 32 | 'IsLogging' : 'Boolean', 33 | 'KMSKeyId' : 'String', 34 | 'S3BucketName' : 'String', 35 | 'S3KeyPrefix' : 'String', 36 | 'SnsTopicName' : 'String', 37 | 'Tags' : [] 38 | } 39 | } 40 | } 41 | } 42 | }; 43 | }; 44 | 45 | module.exports = CloudTrail; 46 | -------------------------------------------------------------------------------- /src/resources/cloudwatch.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var P = require('bluebird'); 3 | var Util = require('./util'); 4 | 5 | var CloudWatch = function(AWS) { 6 | 7 | var cloudwatch = P.promisifyAll(new AWS.CloudWatch()); 8 | 9 | return { 10 | Alarm: { 11 | call: function() { return cloudwatch.describeAlarmsAsync({}) }, 12 | resBlock: 'MetricAlarms', 13 | rName: 'AlarmName', 14 | construct: function (name, body) { 15 | Util.baseConstruct(this, name, body); 16 | this.block = { 17 | 'Type' : 'AWS::CloudWatch::Alarm', 18 | 'Properties' : { 19 | 'ActionsEnabled' : 'Boolean', 20 | 'AlarmActions' : [], 21 | 'AlarmDescription' : 'String', 22 | 'AlarmName' : 'String', 23 | 'ComparisonOperator' : 'String', 24 | 'Dimensions' : [], 25 | 'EvaluationPeriods' : 'String', 26 | 'InsufficientDataActions' : [], 27 | 'MetricName' : 'String', 28 | 'Namespace' : 'String', 29 | 'OKActions' : [], 30 | 'Period' : 'String', 31 | 'Statistic' : 'String', 32 | 'Threshold' : 'String', 33 | 'Unit' : 'String' 34 | } 35 | } 36 | } 37 | } 38 | }; 39 | }; 40 | 41 | module.exports = CloudWatch; 42 | -------------------------------------------------------------------------------- /src/resources/elasticloadbalancing.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var P = require('bluebird'); 3 | var Util = require('./util'); 4 | 5 | var ElasticLoadBalancing = function(AWS) { 6 | 7 | var elb = P.promisifyAll(new AWS.ELB()); 8 | 9 | return { 10 | LoadBalancer: { 11 | call: function() { return elb.describeLoadBalancersAsync({}) }, 12 | resBlock: 'LoadBalancerDescriptions', 13 | rName: 'LoadBalancerName', 14 | construct: function (name, body) { 15 | Util.baseConstruct(this, name, body); 16 | this.block = { 17 | 'Type': 'AWS::ElasticLoadBalancing::LoadBalancer', 18 | 'Properties': { 19 | 'AccessLoggingPolicy' : 'AccessLoggingPolicy', 20 | 'AppCookieStickinessPolicy' : [], 21 | 'AvailabilityZones' : [], 22 | 'ConnectionDrainingPolicy' : 'ConnectionDrainingPolicy', 23 | 'ConnectionSettings' : 'ConnectionSettings', 24 | 'CrossZone' : 'Boolean', 25 | 'HealthCheck' : 'HealthCheck', 26 | 'Instances' : [], 27 | 'LBCookieStickinessPolicy' : [], 28 | 'LoadBalancerName' : 'String', 29 | 'Listeners' : [], 30 | 'Policies' : [], 31 | 'Scheme' : 'String', 32 | 'SecurityGroups' : [], 33 | 'Subnets' : [], 34 | 'Tags' : [] 35 | } 36 | } 37 | } 38 | } 39 | }; 40 | }; 41 | 42 | module.exports = ElasticLoadBalancing; 43 | -------------------------------------------------------------------------------- /src/resources/route53.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var P = require('bluebird'); 3 | var Util = require('./util'); 4 | 5 | var Route53 = function(AWS) { 6 | 7 | var route53 = P.promisifyAll(new AWS.Route53()); 8 | 9 | return { 10 | HealthCheck: { 11 | call: function() { return route53.listHealthChecksAsync({}) }, 12 | resBlock: 'HealthChecks', 13 | rName: 'Id', 14 | construct: function (name, body) { 15 | Util.baseConstruct(this, name, body); 16 | this.block = { 17 | 'Type' : 'AWS::Route53::HealthCheck', 18 | 'Properties' : { 19 | 'HealthCheckConfig' : {}, 20 | 'HealthCheckTags' : [] 21 | } 22 | } 23 | } 24 | }, 25 | HostedZone: { 26 | call: function() { return route53.listHostedZonesAsync({}) }, 27 | resBlock: 'HostedZones', 28 | rName: 'Id', 29 | construct: function (name, body) { 30 | Util.baseConstruct(this, name, body); 31 | this.block = { 32 | 'Type' : 'AWS::Route53::HostedZone', 33 | 'Properties' : { 34 | 'HostedZoneConfig' : {}, 35 | 'HostedZoneTags' : [], 36 | 'Name' : 'String', 37 | 'VPCs' : [] 38 | } 39 | } 40 | } 41 | } 42 | /*RecordSet: { 43 | call: function() { return route53.listResourceRecordSetsAsync({}) }, 44 | resBlock: '', 45 | rName: '', 46 | construct: function (name, body) { 47 | Util.baseConstruct(this, name, body); 48 | this.block = 49 | } 50 | }, 51 | RecordSetGroup: { 52 | call: function() { return .Async({}) }, 53 | resBlock: '', 54 | rName: '', 55 | construct: function (name, body) { 56 | Util.baseConstruct(this, name, body); 57 | this.block = 58 | } 59 | }*/ 60 | }; 61 | }; 62 | 63 | module.exports = Route53; 64 | -------------------------------------------------------------------------------- /src/resources/sns.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var P = require('bluebird'); 3 | var Util = require('./util'); 4 | 5 | var SNS = function(AWS) { 6 | 7 | var sns = P.promisifyAll(new AWS.SNS()); 8 | 9 | return { 10 | Topic: { 11 | call: function() { return sns.listTopicsAsync({}) }, 12 | resBlock: 'Topics', 13 | rName: 'TopicArn', 14 | construct: function (name, body) { 15 | Util.baseConstruct(this, name, body); 16 | this.block = { 17 | 'Type' : 'AWS::SNS::Topic', 18 | 'Properties' : { 19 | 'DisplayName' : 'String', 20 | 'Subscription' : [], 21 | 'TopicName' : 'String' 22 | } 23 | } 24 | } 25 | } 26 | //TopicPolicy 27 | }; 28 | }; 29 | 30 | module.exports = SNS; 31 | -------------------------------------------------------------------------------- /src/resources/sqs.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var _ = require('lodash'); 3 | var P = require('bluebird'); 4 | 5 | var Util = require('./util'); 6 | 7 | var SQS = function(AWS) { 8 | 9 | var sqs = P.promisifyAll(new AWS.SQS()); 10 | 11 | return { 12 | Queue: { 13 | call: function() { return sqs 14 | .listQueuesAsync({}) 15 | .then(function(data) { 16 | var finalQueueList = { QueueUrls: [] }; 17 | _.each(data.QueueUrls, function(queue) { 18 | finalQueueList.QueueUrls.push({ QueueName: queue }); 19 | }); 20 | return finalQueueList; 21 | })}, 22 | resBlock: 'QueueUrls', 23 | rName: 'QueueName', 24 | construct: function (name, body) { 25 | Util.baseConstruct(this, name, body); 26 | this.block = { 27 | 'Type': 'AWS::SQS::Queue', 28 | 'Properties': { 29 | 'DelaySeconds': 'Integer', 30 | 'MaximumMessageSize': 'Integer', 31 | 'MessageRetentionPeriod': 'Integer', 32 | 'QueueName': 'String', 33 | 'ReceiveMessageWaitTimeSeconds': 'Integer', 34 | 'RedrivePolicy': 'RedrivePolicy', 35 | 'VisibilityTimeout': 'Integer' 36 | } 37 | } 38 | } 39 | } 40 | //QueuePolicy 41 | }; 42 | }; 43 | 44 | module.exports = SQS; 45 | -------------------------------------------------------------------------------- /src/resources/util.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | function buildName(name) { 4 | name = name.replace( /\W/g , ''); 5 | return name + 'Resource'; 6 | } 7 | 8 | var Util = { 9 | 10 | baseConstruct: function(obj, name, body) { 11 | obj.inTemplate = false; 12 | obj.templateParams = {}; 13 | obj.id = name; 14 | obj.name = buildName(name); 15 | obj.body = body; 16 | } 17 | 18 | }; 19 | 20 | module.exports = Util; 21 | -------------------------------------------------------------------------------- /src/template.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by arminhammer on 11/24/15. 3 | */ 4 | 5 | 'use strict'; 6 | 7 | var _ = require('lodash'); 8 | 9 | var Template = function() { 10 | 11 | var self = this; 12 | 13 | function recursiveReplace(object, newPattern, oldPattern) { 14 | _.forIn(object, function (val, key) { 15 | if(_.isEqual(val, oldPattern)) { 16 | object[key] = newPattern 17 | } else if (_.isString(val) && _.isEqual(val.replace(/\W/g, ''), oldPattern)) { 18 | object[key] = newPattern; 19 | } 20 | else if (_.isArray(val)) { 21 | val.forEach(function(el) { 22 | if (_.isObject(el)) { 23 | recursiveReplace(el, newPattern, oldPattern); 24 | } 25 | }); 26 | } else if (_.isObject(object[key])) { 27 | recursiveReplace(object[key], newPattern, oldPattern); 28 | } 29 | }); 30 | } 31 | 32 | function populateBlock(block, body) { 33 | block.Properties = _.reduce(block.Properties, function(result, n, key) { 34 | if(body[key]) { 35 | result[key] = body[key]; 36 | } 37 | return result; 38 | }, {}); 39 | return block; 40 | } 41 | 42 | self.addResource = function(resource) { 43 | recursiveReplace(self.body.Resources, { 'Ref': resource.name }, resource.id); 44 | var newResource = populateBlock(resource.block, resource.body); 45 | _.each(self.body.Resources, function(val, key) { 46 | recursiveReplace(newResource, { 'Ref': key }, key.replace('Resource','')) 47 | }); 48 | self.body.Resources[resource.name] = newResource; 49 | }; 50 | 51 | self.removeResource = function(resource) { 52 | recursiveReplace(self.body.Resources, resource.id, { 'Ref': resource.name }); 53 | delete self.body.Resources[resource.name]; 54 | }; 55 | 56 | self.addParam = function(resource, pKey) { 57 | if(self.body.Resources[resource.name]) { 58 | if(self.body.Resources[resource.name].Properties[pKey]) { 59 | var oldVal = self.body.Resources[resource.name].Properties[pKey]; 60 | var paramName = resource.name + pKey + 'Param'; 61 | self.body.Resources[resource.name].Properties[pKey] = { 'Ref' : paramName }; 62 | self.body.Parameters[paramName] = { 63 | 'Type' : 'String', 64 | 'Default' : oldVal 65 | } 66 | } 67 | } 68 | }; 69 | 70 | self.removeParam = function(resource, pKey) { 71 | if(self.body.Resources[resource.name]) { 72 | if(self.body.Resources[resource.name].Properties[pKey]) { 73 | var paramName = resource.name + pKey + 'Param'; 74 | self.body.Resources[resource.name].Properties[pKey] = self.body.Parameters[paramName].Default; 75 | delete self.body.Parameters[paramName]; 76 | } 77 | } 78 | }; 79 | 80 | self.body = { 81 | 'AWSTemplateFormatVersion' : '2010-09-09', 82 | 'Parameters' : {}, 83 | 'Resources' : {} 84 | }; 85 | 86 | }; 87 | 88 | module.exports = Template; 89 | -------------------------------------------------------------------------------- /src/template/index.css: -------------------------------------------------------------------------------- 1 | html, body { 2 | padding: 0px; 3 | margin: 0px; 4 | font-size: 1.1em; 5 | } 6 | -------------------------------------------------------------------------------- /src/template/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Bellerophon 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /src/template/templateView.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by arminhammer on 11/18/15. 3 | */ 4 | 'use strict'; 5 | 6 | var m = require('mithril'); 7 | 8 | var ipcRenderer = require('electron').ipcRenderer; 9 | 10 | var log = function(msg, level) { 11 | if(!level) { 12 | level = 'info'; 13 | } 14 | ipcRenderer.send('send-log', { from: 'TEMPLATE:', level: level, msg: msg }); 15 | }; 16 | 17 | log('Initializing template'); 18 | 19 | var template = m.prop({}); 20 | 21 | ipcRenderer.send('get-template'); 22 | 23 | ipcRenderer.on('update-template', function(event, res) { 24 | m.startComputation(); 25 | log('Updating template!'); 26 | template(res); 27 | m.endComputation(); 28 | }); 29 | 30 | function resizeEditor(editor) { 31 | editor.setSize(null, window.innerHeight); 32 | } 33 | 34 | var templateView = { 35 | 36 | controller: function() { 37 | 38 | this.template = template; 39 | 40 | var editor = null; 41 | 42 | this.drawEditor = function (element, isInitialized) { 43 | 44 | if (isInitialized) { 45 | if(editor) { 46 | editor.setValue(JSON.stringify(template(), undefined, 2)); 47 | editor.refresh(); 48 | } 49 | return; 50 | } 51 | 52 | editor = CodeMirror(element, { 53 | value: JSON.stringify(template(), undefined, 2), 54 | lineNumbers: true, 55 | mode: 'application/json', 56 | gutters: ['CodeMirror-lint-markers'], 57 | lint: true, 58 | styleActiveLine: true, 59 | autoCloseBrackets: true, 60 | matchBrackets: true, 61 | theme: 'zenburn' 62 | }); 63 | 64 | log(editor.getValue()); 65 | 66 | resizeEditor(editor); 67 | 68 | $(window).resize(function() { 69 | resizeEditor(editor); 70 | }); 71 | } 72 | }, 73 | view: function(controller) { 74 | return [ 75 | m('#templateView', { config: controller.drawEditor }) 76 | ] 77 | } 78 | }; 79 | 80 | m.mount(document.body, templateView); 81 | -------------------------------------------------------------------------------- /test/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var assert = require('assert'); 4 | 5 | describe('Belleraphon', function () { 6 | it('should have unit test!', function () { 7 | //assert(false, 'we expected this package author to add actual unit tests.'); 8 | }); 9 | }); 10 | -------------------------------------------------------------------------------- /test/panelcomponent.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by arminhammer on 1/5/16. 3 | */ 4 | 5 | 'use strict'; 6 | 7 | var assert = require('assert'); 8 | var rewire = require("rewire"); 9 | 10 | var PanelComponent = rewire('../src/main/panelcomponent'); 11 | 12 | var ipcRendererMock = { 13 | send: function (msg, content) {} 14 | }; 15 | 16 | //PanelComponent.__set__('ipcRenderer', ipcRendererMock); 17 | 18 | describe('PanelComponent', function () { 19 | 20 | it('should have a controller and view', function () { 21 | assert(true, PanelComponent.controller); 22 | assert(true, PanelComponent.view); 23 | }); 24 | 25 | it('controller should have accept resources object', function () { 26 | var options = { 27 | resource: {}, 28 | log: 'log', 29 | key: 'key', 30 | subKey: 'subKey' 31 | }; 32 | var controller = new PanelComponent.controller(options); 33 | assert.equal(options.resource, controller.resource); 34 | assert.equal(options.log, controller.log); 35 | assert.equal(options.key, controller.key); 36 | assert.equal(options.subKey, controller.subKey); 37 | }); 38 | 39 | }); 40 | -------------------------------------------------------------------------------- /test/resourcecomponent.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by arminhammer on 1/5/16. 3 | */ 4 | 5 | 'use strict'; 6 | 7 | var assert = require('assert'); 8 | var rewire = require("rewire"); 9 | var _ = require('lodash'); 10 | 11 | var ResourceComponent = require('../src/main/resourcecomponent'); 12 | 13 | describe('ResourceComponent', function () { 14 | 15 | it('should have a controller and view', function () { 16 | assert(true, ResourceComponent.controller); 17 | assert(true, ResourceComponent.view); 18 | }); 19 | 20 | it('controller should accept resources object', function () { 21 | var options = { resources: {} }; 22 | var controller = new ResourceComponent.controller(options); 23 | assert(true, _.isEmpty(controller.resources)); 24 | }); 25 | 26 | }); 27 | -------------------------------------------------------------------------------- /test/sidebarcomponent.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by arminhammer on 1/5/16. 3 | */ 4 | 5 | 'use strict'; 6 | 7 | var assert = require('assert'); 8 | var rewire = require("rewire"); 9 | var _ = require('lodash'); 10 | 11 | var SideBarComponent = rewire('../src/main/sidebarcomponent'); 12 | 13 | var ipcRendererMock = { 14 | send: function (msg, content) {} 15 | }; 16 | 17 | //SideBarComponent.__set__('ipcRenderer', ipcRendererMock); 18 | 19 | describe('SideBarComponent', function () { 20 | 21 | it('should have a controller and view', function () { 22 | assert(true, SideBarComponent.controller); 23 | assert(true, SideBarComponent.view); 24 | }); 25 | 26 | it('controller should have accept resources object', function () { 27 | var options = { resources: {} }; 28 | var controller = new SideBarComponent.controller(options); 29 | assert(true, _.isEmpty(controller.resources)); 30 | }); 31 | 32 | }); 33 | -------------------------------------------------------------------------------- /test/templateView.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by arminhammer on 12/6/15. 3 | */ 4 | -------------------------------------------------------------------------------- /test/uiView.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by arminhammer on 12/6/15. 3 | */ 4 | 5 | 'use strict'; 6 | 7 | var assert = require('assert'); 8 | var rewire = require("rewire"); 9 | //var UiView = rewire('../src/ui/uiView'); 10 | 11 | var ipcRendererMock = { 12 | send: function (msg, content) {} 13 | }; 14 | 15 | //UiView.__set__('ipcRenderer', ipcRendererMock); 16 | //UiView.__set__('document', { body: {}}); 17 | 18 | //var Resource = require('../src/resource'); 19 | 20 | //describe('uiView', function () { 21 | 22 | //var mockUiView = new UiView(); 23 | 24 | //it('should have a controller and a view', function () { 25 | //assert(true, UiView.controller); 26 | //}); 27 | //}); 28 | --------------------------------------------------------------------------------