def __init__()

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()