1// Copyright (c) 2016, 2018, 2020, Oracle and/or its affiliates.  All rights reserved.
2// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
3// Code generated. DO NOT EDIT.
4
5// Resource Manager API
6//
7// API for the Resource Manager service.
8// Use this API to install, configure, and manage resources via the "infrastructure-as-code" model.
9// For more information, see
10// Overview of Resource Manager (https://docs.cloud.oracle.com/iaas/Content/ResourceManager/Concepts/resourcemanager.htm).
11//
12
13package resourcemanager
14
15import (
16	"encoding/json"
17	"github.com/oracle/oci-go-sdk/common"
18)
19
20// ZipUploadConfigSource Metadata about the user-provided Terraform configuration.
21type ZipUploadConfigSource struct {
22
23	// File path to the directory to use for running Terraform.
24	// If not specified, the root directory is used.
25	// This parameter is ignored for the `configSourceType` value of `COMPARTMENT_CONFIG_SOURCE`.
26	WorkingDirectory *string `mandatory:"false" json:"workingDirectory"`
27}
28
29//GetWorkingDirectory returns WorkingDirectory
30func (m ZipUploadConfigSource) GetWorkingDirectory() *string {
31	return m.WorkingDirectory
32}
33
34func (m ZipUploadConfigSource) String() string {
35	return common.PointerString(m)
36}
37
38// MarshalJSON marshals to json representation
39func (m ZipUploadConfigSource) MarshalJSON() (buff []byte, e error) {
40	type MarshalTypeZipUploadConfigSource ZipUploadConfigSource
41	s := struct {
42		DiscriminatorParam string `json:"configSourceType"`
43		MarshalTypeZipUploadConfigSource
44	}{
45		"ZIP_UPLOAD",
46		(MarshalTypeZipUploadConfigSource)(m),
47	}
48
49	return json.Marshal(&s)
50}
51