| package client | |
| import ( | |
| "context" | |
| "encoding/json" | |
| "fmt" | |
| "net/url" | |
| "github.com/moby/moby/api/types/swarm" | |
| ) | |
| // ServiceInspectOptions holds parameters related to the service inspect operation. | |
| type ServiceInspectOptions struct { | |
| InsertDefaults bool | |
| } | |
| // ServiceInspectResult represents the result of a service inspect operation. | |
| type ServiceInspectResult struct { | |
| Service swarm.Service | |
| Raw json.RawMessage | |
| } | |
| // ServiceInspect retrieves detailed information about a specific service by its ID. | |
| func (cli *Client) ServiceInspect(ctx context.Context, serviceID string, options ServiceInspectOptions) (ServiceInspectResult, error) { | |
| serviceID, err := trimID("service", serviceID) | |
| if err != nil { | |
| return ServiceInspectResult{}, err | |
| } | |
| query := url.Values{} | |
| query.Set("insertDefaults", fmt.Sprintf("%v", options.InsertDefaults)) | |
| resp, err := cli.get(ctx, "/services/"+serviceID, query, nil) | |
| if err != nil { | |
| return ServiceInspectResult{}, err | |
| } | |
| var out ServiceInspectResult | |
| out.Raw, err = decodeWithRaw(resp, &out.Service) | |
| return out, err | |
| } |