|  | package serviceassets | 
|  |  | 
|  | import ( | 
|  | "strings" | 
|  |  | 
|  | "github.com/rackspace/gophercloud" | 
|  | ) | 
|  |  | 
|  | // DeleteOptsBuilder allows extensions to add additional parameters to the Delete | 
|  | // request. | 
|  | type DeleteOptsBuilder interface { | 
|  | ToCDNAssetDeleteParams() (string, error) | 
|  | } | 
|  |  | 
|  | // DeleteOpts is a structure that holds options for deleting CDN service assets. | 
|  | type DeleteOpts struct { | 
|  | // If all is set to true, specifies that the delete occurs against all of the | 
|  | // assets for the service. | 
|  | All bool `q:"all"` | 
|  | // Specifies the relative URL of the asset to be deleted. | 
|  | URL string `q:"url"` | 
|  | } | 
|  |  | 
|  | // ToCDNAssetDeleteParams formats a DeleteOpts into a query string. | 
|  | func (opts DeleteOpts) ToCDNAssetDeleteParams() (string, error) { | 
|  | q, err := gophercloud.BuildQueryString(opts) | 
|  | if err != nil { | 
|  | return "", err | 
|  | } | 
|  | return q.String(), nil | 
|  | } | 
|  |  | 
|  | // Delete accepts a unique service ID or URL and deletes the CDN service asset associated with | 
|  | // it. For example, both "96737ae3-cfc1-4c72-be88-5d0e7cc9a3f0" and | 
|  | // "https://global.cdn.api.rackspacecloud.com/v1.0/services/96737ae3-cfc1-4c72-be88-5d0e7cc9a3f0" | 
|  | // are valid options for idOrURL. | 
|  | func Delete(c *gophercloud.ServiceClient, idOrURL string, opts DeleteOptsBuilder) DeleteResult { | 
|  | var url string | 
|  | if strings.Contains(idOrURL, "/") { | 
|  | url = idOrURL | 
|  | } else { | 
|  | url = deleteURL(c, idOrURL) | 
|  | } | 
|  |  | 
|  | var res DeleteResult | 
|  | _, res.Err = c.Delete(url, nil) | 
|  | return res | 
|  | } |