示例#1
0
        /// <summary>
        /// Enable private networking on a droplet
        /// </summary>
        public Task <Action> EnablePrivateNetworking(int dropletId)
        {
            var parameters = new List <Parameter> {
                new Parameter("dropletId", dropletId, ParameterType.UrlSegment)
            };
            var body = new Models.Requests.DropletAction {
                Type = "enable_private_networking"
            };

            return(_connection.ExecuteRequest <Action>("droplets/{dropletId}/actions", parameters, body,
                                                       "action", Method.POST));
        }
示例#2
0
        /// <summary>
        /// Turn on a droplet
        /// </summary>
        public Task <Action> PowerOn(int dropletId)
        {
            var parameters = new List <Parameter> {
                new Parameter("dropletId", dropletId, ParameterType.UrlSegment)
            };
            var body = new Models.Requests.DropletAction {
                Type = "power_on"
            };

            return(_connection.ExecuteRequest <Action>("droplets/{dropletId}/actions", parameters, body,
                                                       "action", Method.POST));
        }
示例#3
0
        /// <summary>
        /// Disable backups on a droplet
        /// </summary>
        public Task <Action> DisableBackups(long dropletId)
        {
            var parameters = new List <Parameter> {
                new Parameter("dropletId", dropletId, ParameterType.UrlSegment)
            };
            var body = new Models.Requests.DropletAction {
                Type = "disable_backups"
            };

            return(_connection.ExecuteRequest <Action>("droplets/{dropletId}/actions", parameters, body,
                                                       "action", Method.POST));
        }
示例#4
0
        /// <summary>
        /// Some actions can be performed in bulk on tagged Droplets.
        /// The list of supported action types are:
        /// * power_cycle
        /// * power_on
        /// * power_off
        /// * shutdown
        /// * enable_private_networking
        /// * enable_ipv6
        /// * enable_backups
        /// * disable_backups
        /// * snapshot
        /// </summary>
        public Task <IReadOnlyList <Action> > ActionOnTag(string tag, string actionType)
        {
            var parameters = new List <Parameter> {
                new Parameter("tag_name", tag, ParameterType.QueryString)
            };
            var body = new Models.Requests.DropletAction {
                Type = actionType
            };

            return(_connection.ExecuteRequest <List <Action> >("droplets/actions", parameters, body,
                                                               "actions", Method.POST)
                   .ToReadOnlyListAsync());
        }
示例#5
0
        /// <summary>
        /// Create a snapshot of a droplet
        /// </summary>
        public Task <Action> Snapshot(int dropletId, string name)
        {
            var parameters = new List <Parameter> {
                new Parameter("dropletId", dropletId, ParameterType.UrlSegment)
            };
            var body = new Models.Requests.DropletAction {
                Type = "snapshot",
                Name = name
            };

            return(_connection.ExecuteRequest <Action>("droplets/{dropletId}/actions", parameters, body,
                                                       "action", Method.POST));
        }
示例#6
0
        /// <summary>
        /// Chane the kernel of a droplet
        /// </summary>
        public Task <Action> ChangeKernel(int dropletId, int kernelId)
        {
            var parameters = new List <Parameter> {
                new Parameter("dropletId", dropletId, ParameterType.UrlSegment)
            };
            var body = new Models.Requests.DropletAction {
                Type     = "change_kernel",
                KernelId = kernelId
            };

            return(_connection.ExecuteRequest <Action>("droplets/{dropletId}/actions", parameters, body,
                                                       "action", Method.POST));
        }
示例#7
0
        /// <summary>
        /// Rebuild a droplet
        /// </summary>
        public Task <Action> Rebuild(int dropletId, object imageIdOrSlug)
        {
            var parameters = new List <Parameter> {
                new Parameter("dropletId", dropletId, ParameterType.UrlSegment)
            };
            var body = new Models.Requests.DropletAction {
                Type  = "rebuild",
                Image = imageIdOrSlug
            };

            return(_connection.ExecuteRequest <Action>("droplets/{dropletId}/actions", parameters, body,
                                                       "action", Method.POST));
        }
示例#8
0
        /// <summary>
        /// Resize a droplet
        /// </summary>
        public Task <Action> Resize(int dropletId, string sizeSlug, bool resizeDisk)
        {
            var parameters = new List <Parameter> {
                new Parameter("dropletId", dropletId, ParameterType.UrlSegment)
            };
            var body = new Models.Requests.DropletAction {
                Type = "resize",
                Size = sizeSlug,
                Disk = resizeDisk
            };

            return(_connection.ExecuteRequest <Action>("droplets/{dropletId}/actions", parameters, body,
                                                       "action", Method.POST));
        }
        /// <summary>
        /// Shutdown a droplet
        /// </summary>
        public Task <Action> Shutdown(int dropletId)
        {
            var parameters = new List <Parameter> {
                new Parameter {
                    Name = "dropletId", Value = dropletId, Type = ParameterType.UrlSegment
                }
            };
            var body = new Models.Requests.DropletAction {
                Type = "shutdown"
            };

            return(_connection.ExecuteRequest <Action>("droplets/{dropletId}/actions", parameters, body,
                                                       "action", Method.POST));
        }