Beispiel #1
0
        public async Task <IActionResult> Create([FromBody, SwaggerParameter("Create role request.", Required = true)]
                                                 CreateIAMRoleRequest input)
        {
            if (!_createIAMRoleRequestValidator.TryValidateCreateRoleRequest(input, out string validationError))
            {
                Log.Warning($"Create role called with invalid input. Validation error: {validationError}");
                return(BadRequest(validationError));
            }

            var roleName = RoleName.Create(input.Name);
            var role     = await _awsIdentityCommandClient.PutRoleAsync(roleName);

            return(Ok(new
            {
                RoleArn = role.Arn
            }));
        }
Beispiel #2
0
        public Task HandleAsync(ContextAddedToCapabilityDomainEvent domainEvent)
        {
            var roleName = new RoleName(domainEvent.Data.CapabilityName);

            Func <PolicyTemplate, string> policyTemplateFormatter = (template) =>
            {
                var document = template.Document;

                document = document.Replace("capabilityName", domainEvent.Data.CapabilityName);
                document = document.Replace("capabilityRootId", domainEvent.Data.CapabilityRootId);

                return(document);
            };

            _awsIdentityCommandClient.PutRoleAsync(roleName, policyTemplateFormatter);

            return(Task.CompletedTask);
        }