@@ -79,6 +79,12 @@ func resourceObjectGroup() *schema.Resource {
7979 Optional : true ,
8080 ForceNew : false ,
8181 },
82+ "active" : {
83+ Type : schema .TypeBool ,
84+ Description : "Whether the live indexing should be running or not" ,
85+ Required : true ,
86+ ForceNew : false ,
87+ },
8288
8389 // Workaround. Otherwise Terraform fails with "All fields are ForceNew or Computed w/out Optional, Update is superfluous"
8490 "description" : {
@@ -93,7 +99,7 @@ func resourceObjectGroup() *schema.Resource {
9399func resourceObjectGroupCreate (ctx context.Context , data * schema.ResourceData , meta interface {}) diag.Diagnostics {
94100 c := meta .(* ProviderMeta ).Client
95101
96- request := & client.CreateObjectGroupRequest {
102+ createObjectGroupRequest := & client.CreateObjectGroupRequest {
97103 Name : data .Get ("name" ).(string ),
98104 SourceBucket : data .Get ("source_bucket" ).(string ),
99105 FilterJSON : data .Get ("filter_json" ).(string ),
@@ -105,8 +111,16 @@ func resourceObjectGroupCreate(ctx context.Context, data *schema.ResourceData, m
105111 IndexRetention : data .Get ("index_retention" ).(int ),
106112 }
107113
108- err := c .CreateObjectGroup (ctx , request )
109- if err != nil {
114+ if err := c .CreateObjectGroup (ctx , createObjectGroupRequest ); err != nil {
115+ return diag .FromErr (err )
116+ }
117+
118+ setActiveRequest := & client.SetActiveRequest {
119+ ObjectGroupName : data .Get ("name" ).(string ),
120+ Active : data .Get ("active" ).(bool ),
121+ }
122+
123+ if err := c .SetActive (ctx , setActiveRequest ); err != nil {
110124 return diag .FromErr (err )
111125 }
112126
@@ -133,6 +147,7 @@ func resourceObjectGroupRead(ctx context.Context, data *schema.ResourceData, met
133147 data .Set ("format" , resp .Format )
134148 data .Set ("live_events_sqs_arn" , resp .LiveEventsSqsArn )
135149 data .Set ("index_retention" , resp .IndexRetention )
150+ data .Set ("active" , resp .Active )
136151
137152 // When the object in an Object Group use no compression, you need to create it with
138153 // `compression = ""`. However, when querying an Object Group whose object are not
@@ -155,13 +170,20 @@ func resourceObjectGroupRead(ctx context.Context, data *schema.ResourceData, met
155170func resourceObjectGroupUpdate (ctx context.Context , data * schema.ResourceData , meta interface {}) diag.Diagnostics {
156171 c := meta .(* ProviderMeta ).Client
157172
158- req := & client.UpdateObjectGroupRequest {
173+ setActiveRequest := & client.SetActiveRequest {
174+ ObjectGroupName : data .Get ("name" ).(string ),
175+ Active : data .Get ("active" ).(bool ),
176+ }
177+ if err := c .SetActive (ctx , setActiveRequest ); err != nil {
178+ return diag .FromErr (err )
179+ }
180+
181+ updateObjectGroupRequest := & client.UpdateObjectGroupRequest {
159182 Name : data .Get ("name" ).(string ),
160183 IndexRetention : data .Get ("index_retention" ).(int ),
161184 }
162185
163- err := c .UpdateObjectGroup (ctx , req )
164- if err != nil {
186+ if err := c .UpdateObjectGroup (ctx , updateObjectGroupRequest ); err != nil {
165187 return diag .FromErr (err )
166188 }
167189
@@ -171,12 +193,19 @@ func resourceObjectGroupUpdate(ctx context.Context, data *schema.ResourceData, m
171193func resourceObjectGroupDelete (ctx context.Context , data * schema.ResourceData , meta interface {}) diag.Diagnostics {
172194 c := meta .(* ProviderMeta ).Client
173195
174- req := & client.DeleteObjectGroupRequest {
196+ stopIndexingRequest := & client.SetActiveRequest {
197+ ObjectGroupName : data .Get ("name" ).(string ),
198+ Active : false ,
199+ }
200+ if err := c .SetActive (ctx , stopIndexingRequest ); err != nil {
201+ return diag .FromErr (err )
202+ }
203+
204+ deleteObjectGroupRequest := & client.DeleteObjectGroupRequest {
175205 Name : data .Get ("name" ).(string ),
176206 }
177207
178- err := c .DeleteObjectGroup (ctx , req )
179- if err != nil {
208+ if err := c .DeleteObjectGroup (ctx , deleteObjectGroupRequest ); err != nil {
180209 return diag .FromErr (err )
181210 }
182211
0 commit comments