Skip to content

Commit 0856ebf

Browse files
committed
added bedrock agent alias module
1 parent 4b66bbf commit 0856ebf

File tree

1 file changed

+95
-0
lines changed

1 file changed

+95
-0
lines changed

resources/bedrock-agentalias.go

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
package resources
2+
3+
import (
4+
"github.com/aws/aws-sdk-go/aws"
5+
"github.com/aws/aws-sdk-go/aws/session"
6+
"github.com/aws/aws-sdk-go/service/bedrockagent"
7+
)
8+
9+
type BedrockAgentAlias struct {
10+
svc *bedrockagent.BedrockAgent
11+
AgentId *string
12+
AgentAliasId *string
13+
AgentAliasName *string
14+
}
15+
16+
func init() {
17+
register("BedrockAgentAlias", ListBedrockAgentAliases)
18+
}
19+
20+
func ListBedrockAgentAliases(sess *session.Session) ([]Resource, error) {
21+
svc := bedrockagent.New(sess)
22+
resources := []Resource{}
23+
24+
agentIds, err := ListBedrockAgentIds(svc)
25+
if err != nil {
26+
return nil, err
27+
}
28+
29+
for _, agentId := range agentIds {
30+
params := &bedrockagent.ListAgentAliasesInput{
31+
MaxResults: aws.Int64(100),
32+
AgentId: aws.String(agentId),
33+
}
34+
for {
35+
output, err := svc.ListAgentAliases(params)
36+
if err != nil {
37+
return nil, err
38+
}
39+
40+
for _, agentAliasInfo := range output.AgentAliasSummaries {
41+
resources = append(resources, &BedrockAgentAlias{
42+
svc: svc,
43+
AgentId: aws.String(agentId),
44+
AgentAliasName: agentAliasInfo.AgentAliasName,
45+
AgentAliasId: agentAliasInfo.AgentAliasId,
46+
})
47+
}
48+
49+
if output.NextToken == nil {
50+
break
51+
}
52+
params.NextToken = output.NextToken
53+
}
54+
55+
}
56+
57+
return resources, nil
58+
}
59+
60+
func ListBedrockAgentIds(svc *bedrockagent.BedrockAgent) ([]string, error) {
61+
62+
agentIds := []string{}
63+
params := &bedrockagent.ListAgentsInput{
64+
MaxResults: aws.Int64(100),
65+
}
66+
for {
67+
output, err := svc.ListAgents(params)
68+
if err != nil {
69+
return nil, err
70+
}
71+
72+
for _, agent := range output.AgentSummaries {
73+
agentIds = append(agentIds, *agent.AgentId)
74+
}
75+
76+
if output.NextToken == nil {
77+
break
78+
}
79+
params.NextToken = output.NextToken
80+
}
81+
82+
return agentIds, nil
83+
}
84+
85+
func (f *BedrockAgentAlias) Remove() error {
86+
_, err := f.svc.DeleteAgentAlias(&bedrockagent.DeleteAgentAliasInput{
87+
AgentAliasId: f.AgentAliasId,
88+
AgentId: f.AgentId,
89+
})
90+
return err
91+
}
92+
93+
func (f *BedrockAgentAlias) String() string {
94+
return *f.AgentAliasName
95+
}

0 commit comments

Comments
 (0)