@@ -1076,6 +1076,34 @@ For example: orca_load_report, tls.protocol`,
10761076Supported values: INCLUDE_ALL_OPTIONAL, EXCLUDE_ALL_OPTIONAL, CUSTOM. Possible values: ["INCLUDE_ALL_OPTIONAL", "EXCLUDE_ALL_OPTIONAL", "CUSTOM"]` ,
10771077 AtLeastOneOf : []string {"log_config.0.enable" , "log_config.0.optional_mode" , "log_config.0.sample_rate" },
10781078 },
1079+ "request_headers" : {
1080+ Type : schema .TypeList ,
1081+ Optional : true ,
1082+ Description : `This field can only be specified if logging is enabled for this backend service and if the BackendService protocol is one of HTTP, HTTPS, HTTP2 and GRPC. Contains a list of request headers to be logged.` ,
1083+ Elem : & schema.Resource {
1084+ Schema : map [string ]* schema.Schema {
1085+ "header_name" : {
1086+ Type : schema .TypeString ,
1087+ Required : true ,
1088+ Description : `The header name to match on for logging.` ,
1089+ },
1090+ },
1091+ },
1092+ },
1093+ "response_headers" : {
1094+ Type : schema .TypeList ,
1095+ Optional : true ,
1096+ Description : `This field can only be specified if logging is enabled for this backend service and if the BackendService protocol is one of HTTP, HTTPS, HTTP2 and GRPC. Contains a list of response headers to be logged.` ,
1097+ Elem : & schema.Resource {
1098+ Schema : map [string ]* schema.Schema {
1099+ "header_name" : {
1100+ Type : schema .TypeString ,
1101+ Required : true ,
1102+ Description : `The header name to match on for logging.` ,
1103+ },
1104+ },
1105+ },
1106+ },
10791107 "sample_rate" : {
10801108 Type : schema .TypeFloat ,
10811109 Optional : true ,
@@ -4214,6 +4242,10 @@ func flattenComputeBackendServiceLogConfig(v interface{}, d *schema.ResourceData
42144242 flattenComputeBackendServiceLogConfigOptionalMode (original ["optionalMode" ], d , config )
42154243 transformed ["optional_fields" ] =
42164244 flattenComputeBackendServiceLogConfigOptionalFields (original ["optionalFields" ], d , config )
4245+ transformed ["request_headers" ] =
4246+ flattenComputeBackendServiceLogConfigRequestHeaders (original ["loggingHttpRequestHeaders" ], d , config )
4247+ transformed ["response_headers" ] =
4248+ flattenComputeBackendServiceLogConfigResponseHeaders (original ["loggingHttpResponseHeaders" ], d , config )
42174249 return []interface {}{transformed }
42184250}
42194251func flattenComputeBackendServiceLogConfigEnable (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
@@ -4232,6 +4264,50 @@ func flattenComputeBackendServiceLogConfigOptionalFields(v interface{}, d *schem
42324264 return v
42334265}
42344266
4267+ func flattenComputeBackendServiceLogConfigRequestHeaders (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
4268+ if v == nil {
4269+ return v
4270+ }
4271+ l := v .([]interface {})
4272+ transformed := make ([]interface {}, 0 , len (l ))
4273+ for _ , raw := range l {
4274+ original := raw .(map [string ]interface {})
4275+ if len (original ) < 1 {
4276+ // Do not include empty json objects coming back from the api
4277+ continue
4278+ }
4279+ transformed = append (transformed , map [string ]interface {}{
4280+ "header_name" : flattenComputeBackendServiceLogConfigRequestHeadersHeaderName (original ["headerName" ], d , config ),
4281+ })
4282+ }
4283+ return transformed
4284+ }
4285+ func flattenComputeBackendServiceLogConfigRequestHeadersHeaderName (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
4286+ return v
4287+ }
4288+
4289+ func flattenComputeBackendServiceLogConfigResponseHeaders (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
4290+ if v == nil {
4291+ return v
4292+ }
4293+ l := v .([]interface {})
4294+ transformed := make ([]interface {}, 0 , len (l ))
4295+ for _ , raw := range l {
4296+ original := raw .(map [string ]interface {})
4297+ if len (original ) < 1 {
4298+ // Do not include empty json objects coming back from the api
4299+ continue
4300+ }
4301+ transformed = append (transformed , map [string ]interface {}{
4302+ "header_name" : flattenComputeBackendServiceLogConfigResponseHeadersHeaderName (original ["headerName" ], d , config ),
4303+ })
4304+ }
4305+ return transformed
4306+ }
4307+ func flattenComputeBackendServiceLogConfigResponseHeadersHeaderName (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
4308+ return v
4309+ }
4310+
42354311func flattenComputeBackendServiceServiceLbPolicy (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
42364312 return v
42374313}
@@ -5888,6 +5964,20 @@ func expandComputeBackendServiceLogConfig(v interface{}, d tpgresource.Terraform
58885964 transformed ["optionalFields" ] = transformedOptionalFields
58895965 }
58905966
5967+ transformedRequestHeaders , err := expandComputeBackendServiceLogConfigRequestHeaders (original ["request_headers" ], d , config )
5968+ if err != nil {
5969+ return nil , err
5970+ } else if val := reflect .ValueOf (transformedRequestHeaders ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
5971+ transformed ["loggingHttpRequestHeaders" ] = transformedRequestHeaders
5972+ }
5973+
5974+ transformedResponseHeaders , err := expandComputeBackendServiceLogConfigResponseHeaders (original ["response_headers" ], d , config )
5975+ if err != nil {
5976+ return nil , err
5977+ } else if val := reflect .ValueOf (transformedResponseHeaders ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
5978+ transformed ["loggingHttpResponseHeaders" ] = transformedResponseHeaders
5979+ }
5980+
58915981 return transformed , nil
58925982}
58935983
@@ -5907,6 +5997,64 @@ func expandComputeBackendServiceLogConfigOptionalFields(v interface{}, d tpgreso
59075997 return v , nil
59085998}
59095999
6000+ func expandComputeBackendServiceLogConfigRequestHeaders (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
6001+ if v == nil {
6002+ return nil , nil
6003+ }
6004+ l := v .([]interface {})
6005+ req := make ([]interface {}, 0 , len (l ))
6006+ for _ , raw := range l {
6007+ if raw == nil {
6008+ continue
6009+ }
6010+ original := raw .(map [string ]interface {})
6011+ transformed := make (map [string ]interface {})
6012+
6013+ transformedHeaderName , err := expandComputeBackendServiceLogConfigRequestHeadersHeaderName (original ["header_name" ], d , config )
6014+ if err != nil {
6015+ return nil , err
6016+ } else if val := reflect .ValueOf (transformedHeaderName ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
6017+ transformed ["headerName" ] = transformedHeaderName
6018+ }
6019+
6020+ req = append (req , transformed )
6021+ }
6022+ return req , nil
6023+ }
6024+
6025+ func expandComputeBackendServiceLogConfigRequestHeadersHeaderName (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
6026+ return v , nil
6027+ }
6028+
6029+ func expandComputeBackendServiceLogConfigResponseHeaders (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
6030+ if v == nil {
6031+ return nil , nil
6032+ }
6033+ l := v .([]interface {})
6034+ req := make ([]interface {}, 0 , len (l ))
6035+ for _ , raw := range l {
6036+ if raw == nil {
6037+ continue
6038+ }
6039+ original := raw .(map [string ]interface {})
6040+ transformed := make (map [string ]interface {})
6041+
6042+ transformedHeaderName , err := expandComputeBackendServiceLogConfigResponseHeadersHeaderName (original ["header_name" ], d , config )
6043+ if err != nil {
6044+ return nil , err
6045+ } else if val := reflect .ValueOf (transformedHeaderName ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
6046+ transformed ["headerName" ] = transformedHeaderName
6047+ }
6048+
6049+ req = append (req , transformed )
6050+ }
6051+ return req , nil
6052+ }
6053+
6054+ func expandComputeBackendServiceLogConfigResponseHeadersHeaderName (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
6055+ return v , nil
6056+ }
6057+
59106058func expandComputeBackendServiceServiceLbPolicy (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
59116059 return v , nil
59126060}
0 commit comments