in aws-aps-rulegroupsnamespace/cmd/resource/resource.go [19:62]
func Create(req handler.Request, prevModel *Model, currentModel *Model) (handler.ProgressEvent, error) {
client := internal.NewAPS(req.Session)
if _, ok := req.CallbackContext["Arn"]; ok {
currentModel.Arn = aws.String(req.CallbackContext["Arn"].(string))
return validateRuleGroupsNamespaceState(
client,
currentModel,
prometheusservice.RuleGroupsNamespaceStatusCodeActive,
"Create Completed")
}
if currentModel.Workspace == nil {
return internal.NewFailedEvent(errors.New("Missing Workspace ARN"))
}
if currentModel.Data == nil {
return internal.NewFailedEvent(errors.New("Missing RuleGroupsNamespace Data"))
}
if currentModel.Name == nil {
return internal.NewFailedEvent(errors.New("Missing RuleGroupsNamespace Name"))
}
_, workspaceID, err := internal.ParseARN(*currentModel.Workspace)
if err != nil {
return internal.NewFailedEvent(err)
}
resp, err := client.CreateRuleGroupsNamespace(&prometheusservice.CreateRuleGroupsNamespaceInput{
WorkspaceId: aws.String(workspaceID),
Name: currentModel.Name,
Data: []byte(*currentModel.Data),
Tags: tagsToStringMap(currentModel.Tags),
})
if err != nil {
return internal.NewFailedEvent(err)
}
currentModel.Arn = resp.Arn
return handler.ProgressEvent{
OperationStatus: handler.InProgress,
Message: "In Progress",
ResourceModel: currentModel,
CallbackDelaySeconds: defaultCallbackSeconds,
CallbackContext: buildCallbackContext(currentModel),
}, nil
}