PageRenderTime 90ms CodeModel.GetById 25ms RepoModel.GetById 3ms app.codeStats 0ms

/AzureTableStorage/src/AzureServicesManagement/ServiceManagement/StorageService.cs

#
C# | 156 lines | 101 code | 27 blank | 28 comment | 0 complexity | 0aabeb78a9534fd21b9fd83b9fa79e37 MD5 | raw file
  1. //---------------------------------------------------------------------------------
  2. // Microsoft (R) Windows Azure SDK
  3. // Software Development Kit
  4. //
  5. // Copyright (c) Microsoft Corporation. All rights reserved.
  6. //
  7. // THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
  8. // EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES
  9. // OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
  10. //---------------------------------------------------------------------------------
  11. using System;
  12. using System.Collections.Generic;
  13. using System.Linq;
  14. using System.Text;
  15. using System.Runtime.Serialization;
  16. using System.ServiceModel;
  17. using System.ServiceModel.Web;
  18. namespace Microsoft.Samples.WindowsAzure.ServiceManagement
  19. {
  20. /// <summary>
  21. /// List of storage services
  22. /// </summary>
  23. [CollectionDataContract(Name = "StorageServices", ItemName = "StorageService", Namespace = Constants.ServiceManagementNS)]
  24. public class StorageServiceList : List<StorageService>
  25. {
  26. public StorageServiceList()
  27. {
  28. }
  29. public StorageServiceList(IEnumerable<StorageService> storageServices)
  30. : base(storageServices)
  31. {
  32. }
  33. }
  34. [DataContract(Namespace = Constants.ServiceManagementNS)]
  35. public class StorageService : IExtensibleDataObject
  36. {
  37. [DataMember(Order = 1)]
  38. public Uri Url { get; set; }
  39. [DataMember(Order = 2, EmitDefaultValue = false)]
  40. public string ServiceName { get; set; }
  41. [DataMember(Order = 3, EmitDefaultValue = false)]
  42. public StorageServiceProperties StorageServiceProperties { get; set; }
  43. [DataMember(Order = 4, EmitDefaultValue = false)]
  44. public StorageServiceKeys StorageServiceKeys { get; set; }
  45. public ExtensionDataObject ExtensionData { get; set; }
  46. }
  47. [DataContract(Namespace = Constants.ServiceManagementNS)]
  48. public class StorageServiceProperties : IExtensibleDataObject
  49. {
  50. [DataMember(Order = 1)]
  51. public string Description { get; set; }
  52. [DataMember(Order = 2, EmitDefaultValue = false)]
  53. public string AffinityGroup { get; set; }
  54. [DataMember(Order = 3, EmitDefaultValue = false)]
  55. public string Location { get; set; }
  56. [DataMember(Order = 4)]
  57. public string Label { get; set; }
  58. public ExtensionDataObject ExtensionData { get; set; }
  59. }
  60. [DataContract(Namespace = Constants.ServiceManagementNS)]
  61. public class StorageServiceKeys : IExtensibleDataObject
  62. {
  63. [DataMember(Order = 1)]
  64. public string Primary { get; set; }
  65. [DataMember(Order = 2)]
  66. public string Secondary { get; set; }
  67. public ExtensionDataObject ExtensionData { get; set; }
  68. }
  69. [DataContract(Namespace = Constants.ServiceManagementNS)]
  70. public class RegenerateKeys: IExtensibleDataObject
  71. {
  72. [DataMember(Order = 1)]
  73. public string KeyType { get; set; }
  74. public ExtensionDataObject ExtensionData { get; set; }
  75. }
  76. /// <summary>
  77. /// The storage service-related part of the API
  78. /// </summary>
  79. public partial interface IServiceManagement
  80. {
  81. /// <summary>
  82. /// Lists the storage services associated with a given subscription.
  83. /// </summary>
  84. [OperationContract(AsyncPattern = true)]
  85. [WebGet(UriTemplate = @"{subscriptionId}/services/storageservices")]
  86. IAsyncResult BeginListStorageServices(string subscriptionId, AsyncCallback callback, object state);
  87. StorageServiceList EndListStorageServices(IAsyncResult asyncResult);
  88. /// <summary>
  89. /// Gets a storage service.
  90. /// </summary>
  91. [OperationContract(AsyncPattern = true)]
  92. [WebGet(UriTemplate = @"{subscriptionId}/services/storageservices/{serviceName}")]
  93. IAsyncResult BeginGetStorageService(string subscriptionId, string serviceName, AsyncCallback callback, object state);
  94. StorageService EndGetStorageService(IAsyncResult asyncResult);
  95. /// <summary>
  96. /// Gets the key of a storage service.
  97. /// </summary>
  98. [OperationContract(AsyncPattern = true)]
  99. [WebGet(UriTemplate = @"{subscriptionId}/services/storageservices/{serviceName}/keys")]
  100. IAsyncResult BeginGetStorageKeys(string subscriptionId, string serviceName, AsyncCallback callback, object state);
  101. StorageService EndGetStorageKeys(IAsyncResult asyncResult);
  102. /// <summary>
  103. /// Regenerates keys associated with a storage service.
  104. /// </summary>
  105. [OperationContract(AsyncPattern = true)]
  106. [WebInvoke(Method = "POST", UriTemplate = @"{subscriptionId}/services/storageservices/{serviceName}/keys?action=regenerate")]
  107. IAsyncResult BeginRegenerateStorageServiceKeys(string subscriptionId, string serviceName, RegenerateKeys regenerateKeys, AsyncCallback callback, object state);
  108. StorageService EndRegenerateStorageServiceKeys(IAsyncResult asyncResult);
  109. }
  110. public static partial class ServiceManagementExtensionMethods
  111. {
  112. public static StorageServiceList ListStorageServices(this IServiceManagement proxy, string subscriptionId)
  113. {
  114. return proxy.EndListStorageServices(proxy.BeginListStorageServices(subscriptionId, null, null));
  115. }
  116. public static StorageService GetStorageService(this IServiceManagement proxy, string subscriptionId, string name)
  117. {
  118. return proxy.EndGetStorageService(proxy.BeginGetStorageService(subscriptionId, name, null, null));
  119. }
  120. public static StorageService GetStorageKeys(this IServiceManagement proxy, string subscriptionId, string name)
  121. {
  122. return proxy.EndGetStorageKeys(proxy.BeginGetStorageKeys(subscriptionId, name, null, null));
  123. }
  124. public static StorageService RegenerateStorageServiceKeys(this IServiceManagement proxy, string subscriptionId, string name, RegenerateKeys regenerateKeys)
  125. {
  126. return proxy.EndRegenerateStorageServiceKeys(proxy.BeginRegenerateStorageServiceKeys(subscriptionId, name, regenerateKeys, null, null));
  127. }
  128. }
  129. }