github.com/jenspinney/cli@v6.42.1-0.20190207184520-7450c600020e+incompatible/cf/api/resources/service_instances.go (about)

     1  package resources
     2  
     3  import "code.cloudfoundry.org/cli/cf/models"
     4  
     5  type PaginatedServiceInstanceResources struct {
     6  	TotalResults int `json:"total_results"`
     7  	Resources    []ServiceInstanceResource
     8  }
     9  
    10  type ServiceInstanceResource struct {
    11  	Resource
    12  	Entity ServiceInstanceEntity
    13  }
    14  
    15  type LastOperation struct {
    16  	Type        string `json:"type"`
    17  	State       string `json:"state"`
    18  	Description string `json:"description"`
    19  	CreatedAt   string `json:"created_at"`
    20  	UpdatedAt   string `json:"updated_at"`
    21  }
    22  
    23  type ServiceInstanceEntity struct {
    24  	Name            string                   `json:"name"`
    25  	DashboardURL    string                   `json:"dashboard_url"`
    26  	Tags            []string                 `json:"tags"`
    27  	ServiceBindings []ServiceBindingResource `json:"service_bindings"`
    28  	ServiceKeys     []ServiceKeyResource     `json:"service_keys"`
    29  	ServicePlan     ServicePlanResource      `json:"service_plan"`
    30  	LastOperation   LastOperation            `json:"last_operation"`
    31  }
    32  
    33  func (resource ServiceInstanceResource) ToFields() models.ServiceInstanceFields {
    34  	return models.ServiceInstanceFields{
    35  		GUID:         resource.Metadata.GUID,
    36  		Name:         resource.Entity.Name,
    37  		Tags:         resource.Entity.Tags,
    38  		DashboardURL: resource.Entity.DashboardURL,
    39  		LastOperation: models.LastOperationFields{
    40  			Type:        resource.Entity.LastOperation.Type,
    41  			State:       resource.Entity.LastOperation.State,
    42  			Description: resource.Entity.LastOperation.Description,
    43  			CreatedAt:   resource.Entity.LastOperation.CreatedAt,
    44  			UpdatedAt:   resource.Entity.LastOperation.UpdatedAt,
    45  		},
    46  	}
    47  }
    48  
    49  func (resource ServiceInstanceResource) ToModel() (instance models.ServiceInstance) {
    50  	instance.ServiceInstanceFields = resource.ToFields()
    51  	instance.ServicePlan = resource.Entity.ServicePlan.ToFields()
    52  
    53  	instance.ServiceBindings = []models.ServiceBindingFields{}
    54  	for _, bindingResource := range resource.Entity.ServiceBindings {
    55  		instance.ServiceBindings = append(instance.ServiceBindings, bindingResource.ToFields())
    56  	}
    57  
    58  	instance.ServiceKeys = []models.ServiceKeyFields{}
    59  	for _, keyResource := range resource.Entity.ServiceKeys {
    60  		instance.ServiceKeys = append(instance.ServiceKeys, keyResource.ToFields())
    61  	}
    62  	return
    63  }