func List()

in cfn-resources/network-container/cmd/resource/resource.go [185:230]


func List(req handler.Request, prevModel *Model, currentModel *Model) (handler.ProgressEvent, error) {
	log.SetFlags(log.LstdFlags | log.Lshortfile)
	log.Printf("List currentModel:%+v", currentModel)
	client, err := util.CreateMongoDBClient(*currentModel.ApiKeys.PublicKey, *currentModel.ApiKeys.PrivateKey)
	if err != nil {
		return handler.ProgressEvent{}, err
	}

	projectId := *currentModel.ProjectId
	providerName := currentModel.ProviderName
	if providerName == nil || *providerName == "" {
		aws := defaultProviderName
		providerName = &aws
	}
	log.Printf("projectId:%v", projectId)
	log.Printf("providerName:%v", providerName)
	containerRequest := &mongodbatlas.ContainersListOptions{
		ProviderName: *providerName,
		ListOptions:  mongodbatlas.ListOptions{},
	}
	log.Printf("List projectId:%v, containerRequest:%v", projectId, containerRequest)
	containerResponse, _, err := client.Containers.List(context.TODO(), projectId, containerRequest)
	if err != nil {
		log.Printf("Error %v", err)
		return handler.ProgressEvent{}, err
	}
	log.Printf("containerResponse:%v", containerResponse)

	var models []Model
	for _, container := range containerResponse {
		var model Model
		model.RegionName = &container.RegionName
		model.Provisioned = container.Provisioned
		model.Id = &container.ID
		model.VpcId = &container.VPCID
		model.AtlasCIDRBlock = &container.AtlasCIDRBlock

		models = append(models, model)
	}

	return handler.ProgressEvent{
		OperationStatus: handler.Success,
		Message:         "List Complete",
		ResourceModel:   models,
	}, nil
}