internal/ssm/aws.go (27 lines of code) (raw):

package ssm import ( "context" "github.com/aws/aws-sdk-go-v2/aws" awsSsm "github.com/aws/aws-sdk-go-v2/service/ssm" "github.com/aws/aws-sdk-go-v2/service/ssm/types" ) func isInstanceManaged(client SSMClient, instanceId string) (bool, error) { output, err := client.DescribeInstanceInformation(context.Background(), &awsSsm.DescribeInstanceInformationInput{ Filters: []types.InstanceInformationStringFilter{ { Key: aws.String("InstanceIds"), Values: []string{instanceId}, }, }, }) if err != nil { return false, err } return len(output.InstanceInformationList) > 0, nil } func deregister(client SSMClient, instanceId string) error { _, err := client.DeregisterManagedInstance(context.Background(), &awsSsm.DeregisterManagedInstanceInput{ InstanceId: &instanceId, }) return err }