sigs.k8s.io/cluster-api-provider-aws@v1.5.5/pkg/cloud/converters/tags.go (about)

     1  /*
     2  Copyright 2018 The Kubernetes Authors.
     3  
     4  Licensed under the Apache License, Version 2.0 (the "License");
     5  you may not use this file except in compliance with the License.
     6  You may obtain a copy of the License at
     7  
     8  	http://www.apache.org/licenses/LICENSE-2.0
     9  
    10  Unless required by applicable law or agreed to in writing, software
    11  distributed under the License is distributed on an "AS IS" BASIS,
    12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  See the License for the specific language governing permissions and
    14  limitations under the License.
    15  */
    16  
    17  package converters
    18  
    19  import (
    20  	"github.com/aws/aws-sdk-go/aws"
    21  	"github.com/aws/aws-sdk-go/service/autoscaling"
    22  	"github.com/aws/aws-sdk-go/service/ec2"
    23  	"github.com/aws/aws-sdk-go/service/elb"
    24  	"github.com/aws/aws-sdk-go/service/secretsmanager"
    25  	"github.com/aws/aws-sdk-go/service/ssm"
    26  
    27  	infrav1 "sigs.k8s.io/cluster-api-provider-aws/api/v1beta1"
    28  )
    29  
    30  // TagsToMap converts a []*ec2.Tag into a infrav1.Tags.
    31  func TagsToMap(src []*ec2.Tag) infrav1.Tags {
    32  	tags := make(infrav1.Tags, len(src))
    33  
    34  	for _, t := range src {
    35  		tags[*t.Key] = *t.Value
    36  	}
    37  
    38  	return tags
    39  }
    40  
    41  // MapPtrToMap converts a [string]*string into a infrav1.Tags.
    42  func MapPtrToMap(src map[string]*string) infrav1.Tags {
    43  	tags := make(infrav1.Tags, len(src))
    44  
    45  	for k, v := range src {
    46  		tags[k] = *v
    47  	}
    48  
    49  	return tags
    50  }
    51  
    52  // MapToTags converts a infrav1.Tags to a []*ec2.Tag.
    53  func MapToTags(src infrav1.Tags) []*ec2.Tag {
    54  	tags := make([]*ec2.Tag, 0, len(src))
    55  
    56  	for k, v := range src {
    57  		tag := &ec2.Tag{
    58  			Key:   aws.String(k),
    59  			Value: aws.String(v),
    60  		}
    61  
    62  		tags = append(tags, tag)
    63  	}
    64  
    65  	return tags
    66  }
    67  
    68  // ELBTagsToMap converts a []*elb.Tag into a infrav1.Tags.
    69  func ELBTagsToMap(src []*elb.Tag) infrav1.Tags {
    70  	tags := make(infrav1.Tags, len(src))
    71  
    72  	for _, t := range src {
    73  		tags[*t.Key] = *t.Value
    74  	}
    75  
    76  	return tags
    77  }
    78  
    79  // MapToELBTags converts a infrav1.Tags to a []*elb.Tag.
    80  func MapToELBTags(src infrav1.Tags) []*elb.Tag {
    81  	tags := make([]*elb.Tag, 0, len(src))
    82  
    83  	for k, v := range src {
    84  		tag := &elb.Tag{
    85  			Key:   aws.String(k),
    86  			Value: aws.String(v),
    87  		}
    88  
    89  		tags = append(tags, tag)
    90  	}
    91  
    92  	return tags
    93  }
    94  
    95  // MapToSecretsManagerTags converts a infrav1.Tags to a []*secretsmanager.Tag.
    96  func MapToSecretsManagerTags(src infrav1.Tags) []*secretsmanager.Tag {
    97  	tags := make([]*secretsmanager.Tag, 0, len(src))
    98  
    99  	for k, v := range src {
   100  		tag := &secretsmanager.Tag{
   101  			Key:   aws.String(k),
   102  			Value: aws.String(v),
   103  		}
   104  
   105  		tags = append(tags, tag)
   106  	}
   107  
   108  	return tags
   109  }
   110  
   111  // MapToSSMTags converts a infrav1.Tags to a []*ssm.Tag.
   112  func MapToSSMTags(src infrav1.Tags) []*ssm.Tag {
   113  	tags := make([]*ssm.Tag, 0, len(src))
   114  
   115  	for k, v := range src {
   116  		tag := &ssm.Tag{
   117  			Key:   aws.String(k),
   118  			Value: aws.String(v),
   119  		}
   120  
   121  		tags = append(tags, tag)
   122  	}
   123  
   124  	return tags
   125  }
   126  
   127  // ASGTagsToMap converts a []*autoscaling.TagDescription into a infrav1.Tags.
   128  func ASGTagsToMap(src []*autoscaling.TagDescription) infrav1.Tags {
   129  	tags := make(infrav1.Tags, len(src))
   130  
   131  	for _, t := range src {
   132  		tags[*t.Key] = *t.Value
   133  	}
   134  
   135  	return tags
   136  }