Skip to content

Commit 26c0f34

Browse files
committed
add adaptive_dynamic_streaming_template
1 parent a8b9c13 commit 26c0f34

11 files changed

+584
-125
lines changed

tencentcloud/provider.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -952,6 +952,9 @@ Media Processing Service(MPS)
952952
tencentcloud_mps_snapshot_by_timeoffset_template
953953
tencentcloud_mps_sample_snapshot_template
954954
tencentcloud_mps_animated_graphics_template
955+
tencentcloud_mps_ai_recognition_template
956+
tencentcloud_mps_ai_analysis_template
957+
tencentcloud_mps_adaptive_dynamic_streaming_template
955958
956959
Cloud HDFS(CHDFS)
957960
Data Source

tencentcloud/resource_tc_mps_adaptive_dynamic_streaming_template.go

Lines changed: 72 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -4,38 +4,61 @@ Provides a resource to create a mps adaptive_dynamic_streaming_template
44
Example Usage
55
66
```hcl
7-
resource "tencentcloud_mps_ai_recognition_template" "ai_recognition_template" {
8-
name = "terraform-test"
9-
10-
asr_full_text_configure {
11-
switch = "OFF"
12-
}
13-
14-
asr_words_configure {
15-
label_set = []
16-
switch = "OFF"
17-
}
18-
19-
face_configure {
20-
default_library_label_set = [
21-
"entertainment",
22-
"sport",
23-
]
24-
face_library = "All"
25-
score = 85
26-
switch = "ON"
27-
user_define_library_label_set = []
28-
}
29-
30-
ocr_full_text_configure {
31-
switch = "OFF"
7+
resource "tencentcloud_mps_adaptive_dynamic_streaming_template" "adaptive_dynamic_streaming_template" {
8+
comment = "terrraform test"
9+
disable_higher_video_bitrate = 0
10+
disable_higher_video_resolution = 1
11+
format = "HLS"
12+
name = "terrraform-test"
13+
14+
stream_infos {
15+
remove_audio = 0
16+
remove_video = 0
17+
18+
audio {
19+
audio_channel = 1
20+
bitrate = 55
21+
codec = "libmp3lame"
22+
sample_rate = 32000
23+
}
24+
25+
video {
26+
bitrate = 245
27+
codec = "libx264"
28+
fill_type = "black"
29+
fps = 30
30+
gop = 0
31+
height = 135
32+
resolution_adaptive = "open"
33+
vcrf = 0
34+
width = 145
35+
}
3236
}
33-
34-
ocr_words_configure {
35-
label_set = []
36-
switch = "OFF"
37+
stream_infos {
38+
remove_audio = 0
39+
remove_video = 0
40+
41+
audio {
42+
audio_channel = 2
43+
bitrate = 60
44+
codec = "libfdk_aac"
45+
sample_rate = 32000
46+
}
47+
48+
video {
49+
bitrate = 400
50+
codec = "libx264"
51+
fill_type = "black"
52+
fps = 40
53+
gop = 0
54+
height = 150
55+
resolution_adaptive = "open"
56+
vcrf = 0
57+
width = 160
58+
}
3759
}
3860
}
61+
3962
```
4063
4164
Import
@@ -50,7 +73,6 @@ package tencentcloud
5073

5174
import (
5275
"context"
53-
"fmt"
5476
"log"
5577

5678
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
@@ -460,23 +482,25 @@ func resourceTencentCloudMpsAdaptiveDynamicStreamingTemplateUpdate(d *schema.Res
460482

461483
definition := d.Id()
462484

485+
needChange := false
486+
463487
request.Definition = helper.StrToUint64Point(definition)
464488

465-
immutableArgs := []string{"format", "stream_infos", "name", "disable_higher_video_bitrate", "disable_higher_video_resolution", "comment"}
489+
mutableArgs := []string{"format", "stream_infos", "name", "disable_higher_video_bitrate", "disable_higher_video_resolution", "comment"}
466490

467-
for _, v := range immutableArgs {
491+
for _, v := range mutableArgs {
468492
if d.HasChange(v) {
469-
return fmt.Errorf("argument `%s` cannot be changed", v)
493+
needChange = true
494+
break
470495
}
471496
}
472497

473-
if d.HasChange("format") {
498+
if needChange {
499+
474500
if v, ok := d.GetOk("format"); ok {
475501
request.Format = helper.String(v.(string))
476502
}
477-
}
478503

479-
if d.HasChange("stream_infos") {
480504
if v, ok := d.GetOk("stream_infos"); ok {
481505
for _, item := range v.([]interface{}) {
482506
adaptiveStreamTemplateMap := item.(map[string]interface{})
@@ -537,44 +561,36 @@ func resourceTencentCloudMpsAdaptiveDynamicStreamingTemplateUpdate(d *schema.Res
537561
request.StreamInfos = append(request.StreamInfos, &adaptiveStreamTemplate)
538562
}
539563
}
540-
}
541564

542-
if d.HasChange("name") {
543565
if v, ok := d.GetOk("name"); ok {
544566
request.Name = helper.String(v.(string))
545567
}
546-
}
547568

548-
if d.HasChange("disable_higher_video_bitrate") {
549569
if v, ok := d.GetOkExists("disable_higher_video_bitrate"); ok {
550570
request.DisableHigherVideoBitrate = helper.IntUint64(v.(int))
551571
}
552-
}
553572

554-
if d.HasChange("disable_higher_video_resolution") {
555573
if v, ok := d.GetOkExists("disable_higher_video_resolution"); ok {
556574
request.DisableHigherVideoResolution = helper.IntUint64(v.(int))
557575
}
558-
}
559576

560-
if d.HasChange("comment") {
561577
if v, ok := d.GetOk("comment"); ok {
562578
request.Comment = helper.String(v.(string))
563579
}
564-
}
565580

566-
err := resource.Retry(writeRetryTimeout, func() *resource.RetryError {
567-
result, e := meta.(*TencentCloudClient).apiV3Conn.UseMpsClient().ModifyAdaptiveDynamicStreamingTemplate(request)
568-
if e != nil {
569-
return retryError(e)
570-
} else {
571-
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
581+
err := resource.Retry(writeRetryTimeout, func() *resource.RetryError {
582+
result, e := meta.(*TencentCloudClient).apiV3Conn.UseMpsClient().ModifyAdaptiveDynamicStreamingTemplate(request)
583+
if e != nil {
584+
return retryError(e)
585+
} else {
586+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
587+
}
588+
return nil
589+
})
590+
if err != nil {
591+
log.Printf("[CRITAL]%s update mps adaptiveDynamicStreamingTemplate failed, reason:%+v", logId, err)
592+
return err
572593
}
573-
return nil
574-
})
575-
if err != nil {
576-
log.Printf("[CRITAL]%s update mps adaptiveDynamicStreamingTemplate failed, reason:%+v", logId, err)
577-
return err
578594
}
579595

580596
return resourceTencentCloudMpsAdaptiveDynamicStreamingTemplateRead(d, meta)

tencentcloud/resource_tc_mps_adaptive_dynamic_streaming_template_test.go

Lines changed: 117 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,13 @@ func TestAccTencentCloudMpsAdaptiveDynamicStreamingTemplateResource_basic(t *tes
1818
Config: testAccMpsAdaptiveDynamicStreamingTemplate,
1919
Check: resource.ComposeTestCheckFunc(resource.TestCheckResourceAttrSet("tencentcloud_mps_adaptive_dynamic_streaming_template.adaptive_dynamic_streaming_template", "id")),
2020
},
21+
{
22+
Config: testAccMpsAdaptiveDynamicStreamingTemplateUpdate,
23+
Check: resource.ComposeTestCheckFunc(
24+
resource.TestCheckResourceAttrSet("tencentcloud_mps_adaptive_dynamic_streaming_template.adaptive_dynamic_streaming_template", "id"),
25+
resource.TestCheckResourceAttr("tencentcloud_mps_adaptive_dynamic_streaming_template.adaptive_dynamic_streaming_template", "name", "terraform-for-test"),
26+
),
27+
},
2128
{
2229
ResourceName: "tencentcloud_mps_adaptive_dynamic_streaming_template.adaptive_dynamic_streaming_template",
2330
ImportState: true,
@@ -30,33 +37,119 @@ func TestAccTencentCloudMpsAdaptiveDynamicStreamingTemplateResource_basic(t *tes
3037
const testAccMpsAdaptiveDynamicStreamingTemplate = `
3138
3239
resource "tencentcloud_mps_adaptive_dynamic_streaming_template" "adaptive_dynamic_streaming_template" {
33-
format = <nil>
40+
comment = "terrraform test"
41+
disable_higher_video_bitrate = 0
42+
disable_higher_video_resolution = 1
43+
format = "HLS"
44+
name = "terrraform-test"
45+
3446
stream_infos {
35-
video {
36-
codec = <nil>
37-
fps = <nil>
38-
bitrate = <nil>
39-
resolution_adaptive = "open"
40-
width = 0
41-
height = 0
42-
gop = <nil>
43-
fill_type = "black"
44-
vcrf = <nil>
45-
}
46-
audio {
47-
codec = <nil>
48-
bitrate = <nil>
49-
sample_rate = <nil>
50-
audio_channel = 2
51-
}
52-
remove_audio = <nil>
53-
remove_video = <nil>
47+
remove_audio = 0
48+
remove_video = 0
49+
50+
audio {
51+
audio_channel = 1
52+
bitrate = 55
53+
codec = "libmp3lame"
54+
sample_rate = 32000
55+
}
5456
57+
video {
58+
bitrate = 245
59+
codec = "libx264"
60+
fill_type = "black"
61+
fps = 30
62+
gop = 0
63+
height = 135
64+
resolution_adaptive = "open"
65+
vcrf = 0
66+
width = 145
67+
}
68+
}
69+
stream_infos {
70+
remove_audio = 0
71+
remove_video = 0
72+
73+
audio {
74+
audio_channel = 2
75+
bitrate = 60
76+
codec = "libfdk_aac"
77+
sample_rate = 32000
78+
}
79+
80+
video {
81+
bitrate = 400
82+
codec = "libx264"
83+
fill_type = "black"
84+
fps = 40
85+
gop = 0
86+
height = 150
87+
resolution_adaptive = "open"
88+
vcrf = 0
89+
width = 160
90+
}
5591
}
56-
name = <nil>
57-
disable_higher_video_bitrate = 0
58-
disable_higher_video_resolution = 0
59-
comment = <nil>
6092
}
6193
94+
95+
`
96+
97+
const testAccMpsAdaptiveDynamicStreamingTemplateUpdate = `
98+
99+
resource "tencentcloud_mps_adaptive_dynamic_streaming_template" "adaptive_dynamic_streaming_template" {
100+
comment = "terrraform test"
101+
disable_higher_video_bitrate = 0
102+
disable_higher_video_resolution = 1
103+
format = "HLS"
104+
name = "terraform-for-test"
105+
106+
stream_infos {
107+
remove_audio = 0
108+
remove_video = 0
109+
110+
audio {
111+
audio_channel = 1
112+
bitrate = 55
113+
codec = "libmp3lame"
114+
sample_rate = 32000
115+
}
116+
117+
video {
118+
bitrate = 245
119+
codec = "libx264"
120+
fill_type = "black"
121+
fps = 30
122+
gop = 0
123+
height = 130
124+
resolution_adaptive = "open"
125+
vcrf = 0
126+
width = 140
127+
}
128+
}
129+
stream_infos {
130+
remove_audio = 0
131+
remove_video = 0
132+
133+
audio {
134+
audio_channel = 2
135+
bitrate = 60
136+
codec = "libfdk_aac"
137+
sample_rate = 32000
138+
}
139+
140+
video {
141+
bitrate = 400
142+
codec = "libx264"
143+
fill_type = "black"
144+
fps = 40
145+
gop = 0
146+
height = 150
147+
resolution_adaptive = "open"
148+
vcrf = 0
149+
width = 160
150+
}
151+
}
152+
}
153+
154+
62155
`

0 commit comments

Comments
 (0)