Skip to content

Commit 1a5034e

Browse files
committed
added bedrock flow alias module
1 parent 0856ebf commit 1a5034e

File tree

1 file changed

+95
-0
lines changed

1 file changed

+95
-0
lines changed

resources/bedrock-flowalias.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 BedrockFlowAlias struct {
10+
svc *bedrockagent.BedrockAgent
11+
FlowId *string
12+
FlowAliasId *string
13+
FlowAliasName *string
14+
}
15+
16+
func init() {
17+
register("BedrockFlowAlias", ListBedrockFlowAliases)
18+
}
19+
20+
func ListBedrockFlowAliases(sess *session.Session) ([]Resource, error) {
21+
svc := bedrockagent.New(sess)
22+
resources := []Resource{}
23+
24+
flowIds, err := ListBedrockFlowIds(svc)
25+
if err != nil {
26+
return nil, err
27+
}
28+
29+
for _, flowId := range flowIds {
30+
params := &bedrockagent.ListFlowAliasesInput{
31+
MaxResults: aws.Int64(100),
32+
FlowIdentifier: aws.String(flowId),
33+
}
34+
for {
35+
output, err := svc.ListFlowAliases(params)
36+
if err != nil {
37+
return nil, err
38+
}
39+
40+
for _, flowAliasInfo := range output.FlowAliasSummaries {
41+
resources = append(resources, &BedrockFlowAlias{
42+
svc: svc,
43+
FlowId: flowAliasInfo.FlowId,
44+
FlowAliasId: flowAliasInfo.Id,
45+
FlowAliasName: flowAliasInfo.Name,
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 ListBedrockFlowIds(svc *bedrockagent.BedrockAgent) ([]string, error) {
61+
62+
flowIds := []string{}
63+
params := &bedrockagent.ListFlowsInput{
64+
MaxResults: aws.Int64(100),
65+
}
66+
for {
67+
output, err := svc.ListFlows(params)
68+
if err != nil {
69+
return nil, err
70+
}
71+
72+
for _, flow := range output.FlowSummaries {
73+
flowIds = append(flowIds, *flow.Id)
74+
}
75+
76+
if output.NextToken == nil {
77+
break
78+
}
79+
params.NextToken = output.NextToken
80+
}
81+
82+
return flowIds, nil
83+
}
84+
85+
func (f *BedrockFlowAlias) Remove() error {
86+
_, err := f.svc.DeleteFlowAlias(&bedrockagent.DeleteFlowAliasInput{
87+
AliasIdentifier: f.FlowAliasId,
88+
FlowIdentifier: f.FlowId,
89+
})
90+
return err
91+
}
92+
93+
func (f *BedrockFlowAlias) String() string {
94+
return *f.FlowAliasName
95+
}

0 commit comments

Comments
 (0)