in source/idea/idea-administrator/src/ideaadministrator/app/aws_service_availability_helper.py [0:0]
def __init__(self, aws_region: str = None, aws_profile: str = None, aws_secondary_profile: str = None):
if Utils.is_empty(aws_region):
aws_region = 'us-east-1'
self.session = Utils.create_boto_session(aws_region=aws_region, aws_profile=aws_profile)
if aws_region in Utils.get_value_as_list('SSM_DISCOVERY_RESTRICTED_REGION_LIST', constants.CAVEATS, default=[]):
aws_ssm_region = Utils.get_value_as_string('SSM_DISCOVERY_FALLBACK_REGION', constants.CAVEATS, default='us-east-1')
self.ssm_session = Utils.create_boto_session(aws_region=aws_ssm_region, aws_profile=aws_secondary_profile)
else:
aws_ssm_region = aws_region
self.ssm_session = self.session
self.ssm_client = self.ssm_session.client(
service_name='ssm',
region_name=aws_ssm_region
)
self.context = SocaCliContext()
self.idea_services = {
'acm': {
'title': 'AWS Certificate Manager (ACM)',
'required': True
},
'acm-pca': {
'title': 'ACM Private CA',
'required': False
},
'aps': {
'title': 'Amazon Managed Service for Prometheus',
'required': False
},
'backup': {
'title': 'AWS Backup',
'required': True
},
'budgets': {
'title': 'AWS Budgets',
'required': False
},
'cloudformation': {
'title': 'AWS CloudFormation',
'required': True
},
'cloudwatch': {
'title': 'Amazon CloudWatch',
'required': True
},
'cognito-idp': {
'title': 'Amazon Cognito - User Pools',
'required': True
},
'ds': {
'title': 'AWS Directory Service for Microsoft Active Directory',
'required': False
},
'dynamodb': {
'title': 'Amazon DynamoDB',
'required': True
},
'dynamodbstreams': {
'title': 'Amazon DynamoDB Streams',
'required': True
},
'ebs': {
'title': 'Amazon Elastic Block Store (EBS)',
'required': True
},
'ec2': {
'title': 'Amazon Elastic Compute Cloud (EC2)',
'required': True
},
'efs': {
'title': 'Amazon Elastic File System (EFS)',
'required': True
},
'elb': {
'title': 'Amazon Elastic Load Balancing (ELB)',
'required': True
},
'eventbridge': {
'title': 'Amazon EventBridge',
'required': True
},
'events': {
'title': 'Amazon Events',
'required': True
},
'filecache': {
'title': 'Amazon File Cache',
'required': False
},
'fsx': {
'title': 'Amazon FSx',
'required': False
},
'fsx-lustre': {
'title': 'Amazon FSx for Lustre',
'required': False
},
'fsx-ontap': {
'title': 'Amazon FSx for NetApp ONTAP',
'required': False
},
'fsx-openzfs': {
'title': 'Amazon FSx for OpenZFS',
'required': False
},
'fsx-windows': {
'title': 'Amazon FSx for Windows File Server',
'required': False
},
'grafana': {
'title': 'Amazon Managed Grafana',
'required': False
},
'iam': {
'title': 'AWS Identity and Access Management (IAM)',
'required': True
},
'kinesis': {
'title': 'Amazon Kinesis',
'required': True
},
'kms': {
'title': 'AWS Key Management Service (KMS)',
'required': True
},
'lambda': {
'title': 'AWS Lambda',
'required': True
},
'logs': {
'title': 'Amazon CloudWatch Logs',
'required': True
},
'pricing': {
'title': 'AWS Pricing API',
'required': False
},
'route53': {
'title': 'Amazon Route 53',
'required': True
},
'route53resolver': {
'title': 'Amazon Route 53 Resolver',
'required': False
},
's3': {
'title': 'Amazon Simple Storage Service (S3)',
'required': True
},
'secretsmanager': {
'title': 'AWS Secrets Manager',
'required': True
},
'service-quotas': {
'title': 'AWS Service Quotas',
'required': True
},
'ses': {
'title': 'Amazon Simple Email Service (SES)',
'required': False
},
'sns': {
'title': 'Amazon Simple Notification Service (SNS)',
'required': True
},
'sqs': {
'title': 'Amazon Simple Queue Service (SQS)',
'required': True
},
'ssm': {
'title': 'AWS Systems Manager (SSM)',
'required': True
},
'sts': {
'title': 'AWS Security Token Service (STS)',
'required': True
},
'vpc': {
'title': 'Amazon Virtual Private Cloud (VPC)',
'required': True
}
}
self.idea_service_names = list(self.idea_services.keys())
self.idea_service_names.sort()