@@ -192,6 +192,20 @@ func resourceComputeInstanceFromTemplateCreate(d *schema.ResourceData, meta inte
192192 if err != nil {
193193 return fmt.Errorf (" Error expanding scheduling: %s " , err)
194194 }
195+ for _, key := range []string{" localSsdRecoveryTimeout" , " maxRunDuration" , " preemptionNoticeDuration" } {
196+ if dur, ok := schedulingMap[key]. (map[string]interface{}); ok {
197+ if sec, ok := dur[" seconds" ]; ok {
198+ dur[" seconds" ] = fmt.Sprintf (" %d " , getInt(sec))
199+ }
200+ }
201+ }
202+ if gs, ok := schedulingMap[" gracefulShutdown" ]. (map[string]interface{}); ok {
203+ if md, ok := gs[" maxDuration" ]. (map[string]interface{}); ok {
204+ if sec, ok := md[" seconds" ]; ok {
205+ md[" seconds" ] = fmt.Sprintf (" %d " , getInt(sec))
206+ }
207+ }
208+ }
195209 schedulingBytes, err := json.Marshal (schedulingMap)
196210 if err != nil {
197211 return fmt.Errorf (" Error marshaling scheduling: %s " , err)
@@ -203,6 +217,20 @@ func resourceComputeInstanceFromTemplateCreate(d *schema.ResourceData, meta inte
203217 instance.Scheduling = schedulingTyped
204218 }
205219
220+ {{- if ne $ .TargetVersionName " ga" }}
221+ if pm := d.Get (" partner_metadata" ). (map[string]interface{}); len (pm) > 0 {
222+ pmRaw, err := resourceInstancePartnerMetadata(d)
223+ if err != nil {
224+ return fmt.Errorf (" Error expanding partner_metadata: %s " , err)
225+ }
226+ partnerMetadataTyped, err := convertPartnerMetadataToComputeTyped(pmRaw)
227+ if err != nil {
228+ return fmt.Errorf (" Error converting partner_metadata: %s " , err)
229+ }
230+ instance.PartnerMetadata = partnerMetadataTyped
231+ }
232+ {{- end }}
233+
206234 // Force send all top-level fields that have been set in case they're overridden to zero values.
207235 // Initialize ForceSendFields to empty so we don't get things that the instance resource
208236 // always force-sends.
0 commit comments