github.com/rakutentech/cli@v6.12.5-0.20151006231303-24468b65536e+incompatible/cf/api/resources/service_instances.go (about)

     1  package resources
     2  
     3  import "github.com/cloudfoundry/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
    25  	DashboardUrl    string                   `json:"dashboard_url"`
    26  	ServiceBindings []ServiceBindingResource `json:"service_bindings"`
    27  	ServiceKeys     []ServiceKeyResource     `json:"service_keys"`
    28  	ServicePlan     ServicePlanResource      `json:"service_plan"`
    29  	LastOperation   LastOperation            `json:"last_operation"`
    30  }
    31  
    32  func (resource ServiceInstanceResource) ToFields() models.ServiceInstanceFields {
    33  	return models.ServiceInstanceFields{
    34  		Guid:         resource.Metadata.Guid,
    35  		Name:         resource.Entity.Name,
    36  		DashboardUrl: resource.Entity.DashboardUrl,
    37  		LastOperation: models.LastOperationFields{
    38  			Type:        resource.Entity.LastOperation.Type,
    39  			State:       resource.Entity.LastOperation.State,
    40  			Description: resource.Entity.LastOperation.Description,
    41  			CreatedAt:   resource.Entity.LastOperation.CreatedAt,
    42  			UpdatedAt:   resource.Entity.LastOperation.UpdatedAt,
    43  		},
    44  	}
    45  }
    46  
    47  func (resource ServiceInstanceResource) ToModel() (instance models.ServiceInstance) {
    48  	instance.ServiceInstanceFields = resource.ToFields()
    49  	instance.ServicePlan = resource.Entity.ServicePlan.ToFields()
    50  
    51  	instance.ServiceBindings = []models.ServiceBindingFields{}
    52  	for _, bindingResource := range resource.Entity.ServiceBindings {
    53  		instance.ServiceBindings = append(instance.ServiceBindings, bindingResource.ToFields())
    54  	}
    55  
    56  	instance.ServiceKeys = []models.ServiceKeyFields{}
    57  	for _, keyResource := range resource.Entity.ServiceKeys {
    58  		instance.ServiceKeys = append(instance.ServiceKeys, keyResource.ToFields())
    59  	}
    60  	return
    61  }