/// <summary>Snippet for InsertAsync</summary> public async Task InsertAsync() { // Snippet: InsertAsync(string, string, ResourcePolicy, CallSettings) // Additional: InsertAsync(string, string, ResourcePolicy, CancellationToken) // Create client ResourcePoliciesClient resourcePoliciesClient = await ResourcePoliciesClient.CreateAsync(); // Initialize request argument(s) string project = ""; string region = ""; ResourcePolicy resourcePolicyResource = new ResourcePolicy(); // Make the request lro::Operation <Operation, Operation> response = await resourcePoliciesClient.InsertAsync(project, region, resourcePolicyResource); // Poll until the returned long-running operation is complete lro::Operation <Operation, Operation> completedResponse = await response.PollUntilCompletedAsync(); // Retrieve the operation result Operation result = completedResponse.Result; // Or get the name of the operation string operationName = response.Name; // This name can be stored, then the long-running operation retrieved later by name lro::Operation <Operation, Operation> retrievedResponse = await resourcePoliciesClient.PollOnceInsertAsync(operationName); // Check if the retrieved long-running operation has completed if (retrievedResponse.IsCompleted) { // If it has completed, then access the result Operation retrievedResult = retrievedResponse.Result; } // End snippet }
public void GetRequestObject() { moq::Mock <ResourcePolicies.ResourcePoliciesClient> mockGrpcClient = new moq::Mock <ResourcePolicies.ResourcePoliciesClient>(moq::MockBehavior.Strict); mockGrpcClient.Setup(x => x.CreateOperationsClientForRegionOperations()).Returns(new moq::Mock <lro::Operations.OperationsClient>().Object); GetResourcePolicyRequest request = new GetResourcePolicyRequest { Region = "regionedb20d96", ResourcePolicy = "resource_policydde7e557", Project = "projectaa6ff846", }; ResourcePolicy expectedResponse = new ResourcePolicy { Id = 11672635353343658936UL, Kind = "kindf7aa39d9", Name = "name1c9368b0", GroupPlacementPolicy = new ResourcePolicyGroupPlacementPolicy(), CreationTimestamp = "creation_timestamp235e59a1", Region = "regionedb20d96", Status = "status5444cb9a", SnapshotSchedulePolicy = new ResourcePolicySnapshotSchedulePolicy(), ResourceStatus = new ResourcePolicyResourceStatus(), InstanceSchedulePolicy = new ResourcePolicyInstanceSchedulePolicy(), Description = "description2cf9da67", SelfLink = "self_link7e87f12d", }; mockGrpcClient.Setup(x => x.Get(request, moq::It.IsAny <grpccore::CallOptions>())).Returns(expectedResponse); ResourcePoliciesClient client = new ResourcePoliciesClientImpl(mockGrpcClient.Object, null); ResourcePolicy response = client.Get(request); xunit::Assert.Same(expectedResponse, response); mockGrpcClient.VerifyAll(); }
private static List <ResourcePolicy> GetResourcePoliciesForSKDTaxReport() { string policyDesc = "Eksempel på en policy"; ResourcePolicy instantiatePolicy = TestDataHelper.GetResourcePolicyModel("SKD", "TaxReport2", task: "Instansiate"); instantiatePolicy.Actions = new List <ResourceAction>(); instantiatePolicy.Actions.Add(TestDataHelper.GetResourceActionModel("read", new string[] { "REGNA", "DAGL" })); instantiatePolicy.Actions.Add(TestDataHelper.GetResourceActionModel("write", new string[] { "REGNA", "DAGL" })); instantiatePolicy.Description = policyDesc; ResourcePolicy formFillingPolicy = TestDataHelper.GetResourcePolicyModel("SKD", "TaxReport2", task: "FormFilling"); formFillingPolicy.Actions = new List <ResourceAction>(); formFillingPolicy.Actions.Add(TestDataHelper.GetResourceActionModel("read", new string[] { "REGNA", "DAGL" })); formFillingPolicy.Actions.Add(TestDataHelper.GetResourceActionModel("write", new string[] { "REGNA", "DAGL" })); formFillingPolicy.Description = policyDesc; ResourcePolicy signingPolicy = TestDataHelper.GetResourcePolicyModel("SKD", "TaxReport2", endEvent: "Signing"); signingPolicy.Actions = new List <ResourceAction>(); signingPolicy.Actions.Add(TestDataHelper.GetResourceActionModel("read", new string[] { "REGNA", "DAGL" })); signingPolicy.Actions.Add(TestDataHelper.GetResourceActionModel("write", new string[] { "REGNA", "DAGL" })); signingPolicy.Actions.Add(TestDataHelper.GetResourceActionModel("sign", new string[] { "DAGL", "PRIV", "PRIV2" })); signingPolicy.Description = policyDesc; List <ResourcePolicy> policies = new List <ResourcePolicy>(); policies.Add(instantiatePolicy); policies.Add(formFillingPolicy); policies.Add(signingPolicy); return(policies); }
public static ResourcePolicy GetResourcePolicyModel(string org, string app, string task = null, string endEvent = null) { string title = string.Empty; ResourcePolicy policy = new ResourcePolicy { Resource = new List <AttributeMatch> { new AttributeMatch { Id = XacmlRequestAttribute.OrgAttribute, Value = org }, new AttributeMatch { Id = XacmlRequestAttribute.AppAttribute, Value = app } } }; if (task != null) { policy.Resource.Add(new AttributeMatch { Id = XacmlRequestAttribute.TaskAttribute, Value = task }); title = $"{org}/{app}/{task}"; } if (endEvent != null) { policy.Resource.Add(new AttributeMatch { Id = XacmlRequestAttribute.EndEventAttribute, Value = endEvent }); title = $"{org}/{app}/{endEvent}"; } policy.Title = title; return(policy); }
public async stt::Task GetAsync() { moq::Mock <ResourcePolicies.ResourcePoliciesClient> mockGrpcClient = new moq::Mock <ResourcePolicies.ResourcePoliciesClient>(moq::MockBehavior.Strict); GetResourcePolicyRequest request = new GetResourcePolicyRequest { Region = "regionedb20d96", ResourcePolicy = "resource_policydde7e557", Project = "projectaa6ff846", }; ResourcePolicy expectedResponse = new ResourcePolicy { Id = 11672635353343658936UL, Kind = "kindf7aa39d9", Name = "name1c9368b0", GroupPlacementPolicy = new ResourcePolicyGroupPlacementPolicy(), CreationTimestamp = "creation_timestamp235e59a1", Region = "regionedb20d96", Status = ResourcePolicy.Types.Status.Deleting, SnapshotSchedulePolicy = new ResourcePolicySnapshotSchedulePolicy(), ResourceStatus = new ResourcePolicyResourceStatus(), InstanceSchedulePolicy = new ResourcePolicyInstanceSchedulePolicy(), Description = "description2cf9da67", SelfLink = "self_link7e87f12d", }; mockGrpcClient.Setup(x => x.GetAsync(request, moq::It.IsAny <grpccore::CallOptions>())).Returns(new grpccore::AsyncUnaryCall <ResourcePolicy>(stt::Task.FromResult(expectedResponse), null, null, null, null)); ResourcePoliciesClient client = new ResourcePoliciesClientImpl(mockGrpcClient.Object, null); ResourcePolicy responseCallSettings = await client.GetAsync(request.Project, request.Region, request.ResourcePolicy, gaxgrpc::CallSettings.FromCancellationToken(st::CancellationToken.None)); xunit::Assert.Same(expectedResponse, responseCallSettings); ResourcePolicy responseCancellationToken = await client.GetAsync(request.Project, request.Region, request.ResourcePolicy, st::CancellationToken.None); xunit::Assert.Same(expectedResponse, responseCancellationToken); mockGrpcClient.VerifyAll(); }
private static void AssertResourcePolicyEqual(ResourcePolicy expected, ResourcePolicy actual) { Assert.Equal(expected.Title, actual.Title); AssertCollections(expected.Actions, actual.Actions, AssertResourceActionEqual); AssertCollections(expected.Resource, actual.Resource, AssertAttributeMatchEqual); if (expected.Description != null || actual.Description != null) { Assert.Equal(expected.Description, actual.Description); } }
/// <summary>Snippet for Get</summary> public void Get() { // Snippet: Get(string, string, string, CallSettings) // Create client ResourcePoliciesClient resourcePoliciesClient = ResourcePoliciesClient.Create(); // Initialize request argument(s) string project = ""; string region = ""; string resourcePolicy = ""; // Make the request ResourcePolicy response = resourcePoliciesClient.Get(project, region, resourcePolicy); // End snippet }
/// <summary>Snippet for Insert</summary> public void Insert() { // Snippet: Insert(string, string, ResourcePolicy, CallSettings) // Create client ResourcePoliciesClient resourcePoliciesClient = ResourcePoliciesClient.Create(); // Initialize request argument(s) string project = ""; string region = ""; ResourcePolicy resourcePolicyResource = new ResourcePolicy(); // Make the request Operation response = resourcePoliciesClient.Insert(project, region, resourcePolicyResource); // End snippet }
/// <summary>Snippet for InsertAsync</summary> public async Task InsertAsync() { // Snippet: InsertAsync(string, string, ResourcePolicy, CallSettings) // Additional: InsertAsync(string, string, ResourcePolicy, CancellationToken) // Create client ResourcePoliciesClient resourcePoliciesClient = await ResourcePoliciesClient.CreateAsync(); // Initialize request argument(s) string project = ""; string region = ""; ResourcePolicy resourcePolicyResource = new ResourcePolicy(); // Make the request Operation response = await resourcePoliciesClient.InsertAsync(project, region, resourcePolicyResource); // End snippet }
/// <summary>Snippet for Get</summary> public void GetRequestObject() { // Snippet: Get(GetResourcePolicyRequest, CallSettings) // Create client ResourcePoliciesClient resourcePoliciesClient = ResourcePoliciesClient.Create(); // Initialize request argument(s) GetResourcePolicyRequest request = new GetResourcePolicyRequest { Region = "", ResourcePolicy = "", Project = "", }; // Make the request ResourcePolicy response = resourcePoliciesClient.Get(request); // End snippet }
/// <summary>Snippet for GetAsync</summary> public async Task GetAsync() { // Snippet: GetAsync(string, string, string, CallSettings) // Additional: GetAsync(string, string, string, CancellationToken) // Create client ResourcePoliciesClient resourcePoliciesClient = await ResourcePoliciesClient.CreateAsync(); // Initialize request argument(s) string project = ""; string region = ""; string resourcePolicy = ""; // Make the request ResourcePolicy response = await resourcePoliciesClient.GetAsync(project, region, resourcePolicy); // End snippet }
/// <summary> /// Creates a remote resource instance. /// </summary> /// <since_tizen> 3 </since_tizen> /// <remarks> /// <para>To use this API, you should provide all the details required to correctly contact and /// observe the object.</para> /// <para>If not, you should discover the resource object manually.</para> /// <para>The <paramref name="policy" /> can contain multiple policies like <c>ResourcePolicy.Discoverable | ResourcePolicy.Observable</c>.</para> /// </remarks> /// <param name="hostAddress">The host address of the resource.</param> /// <param name="uriPath">The URI path of the resource.</param> /// <param name="policy">The policies of the resource.</param> /// <param name="resourceTypes">The resource types of the resource.</param> /// <param name="resourceInterfaces">The resource interfaces of the resource.</param> /// <feature>http://tizen.org/feature/iot.ocf</feature> /// <exception cref="NotSupportedException">Thrown when the iotcon is not supported.</exception> /// <exception cref="OutOfMemoryException">Thrown when there is not enough memory.</exception> /// <exception cref="ArgumentException">Thrown when there is an invalid parameter.</exception> public RemoteResource(string hostAddress, string uriPath, ResourcePolicy policy, ResourceTypes resourceTypes, ResourceInterfaces resourceInterfaces) { if (hostAddress == null || uriPath == null || resourceTypes == null || resourceInterfaces == null) { Log.Error(IoTConnectivityErrorFactory.LogTag, "Invalid parameters"); throw new ArgumentException("Invalid parameter"); } HostAddress = hostAddress; UriPath = uriPath; Policy = policy; Types = new List <string>(resourceTypes); Interfaces = new List <string>(resourceInterfaces); DeviceId = null; CreateRemoteResource(resourceTypes._resourceTypeHandle, resourceInterfaces.ResourceInterfacesHandle); }
/// <summary> /// The constructor. /// </summary> /// <since_tizen> 3 </since_tizen> /// <remarks> /// <paramref name="uri" /> format would be relative URI path like '/a/light' /// and its length must be less than 128. /// </remarks> /// <privilege>http://tizen.org/privilege/internet</privilege> /// <privlevel>public</privlevel> /// <param name="uri">The URI path of the resource.</param> /// <param name="types">Resource types.</param> /// <param name="interfaces">Resource interfaces.</param> /// <param name="policy">The policies of the resoruce.</param> /// <feature>http://tizen.org/feature/iot.ocf</feature> /// <pre> /// IoTConnectivityServerManager.Initialize() should be called to initialize. /// </pre> /// <seealso cref="ResourceTypes"/> /// <seealso cref="ResourceInterfaces"/> /// <seealso cref="ResourcePolicy"/> /// <exception cref="NotSupportedException">Thrown when the iotcon is not supported.</exception> /// <exception cref="OutOfMemoryException">Thrown when there is not enough memory.</exception> /// <example><code><![CDATA[ /// // Create a class which inherits from Resource /// public class DoorResource : Resource /// { /// public DoorResource(string uri, ResourceTypes types, ResourceInterfaces interfaces, ResourcePolicy policy) /// : base(uri, types, interfaces, policy) { /// } /// protected override Response OnDelete(Request request) { /// // Do something /// } /// protected override Response OnGet(Request request) { /// // Do something /// } /// // Override other abstract methods of Resource class /// } /// /// // Use it like below /// ResourceInterfaces ifaces = new ResourceInterfaces(new List<string>(){ ResourceInterfaces.DefaultInterface }); /// ResourceTypes types = new ResourceTypes(new List<string>(){ "oic.iot.door.new" }); /// Resource resource = new DoorResource("/door/uri1", types, ifaces, ResourcePolicy.Discoverable | ResourcePolicy.Observable); /// ]]></code></example> protected Resource(string uri, ResourceTypes types, ResourceInterfaces interfaces, ResourcePolicy policy) { UriPath = uri; Types = types; Interfaces = interfaces; Policy = policy; _children.CollectionChanged += ChildrenCollectionChanged; int ret = Interop.IoTConnectivity.Server.Observers.Create(out _observerHandle); if (ret != (int)IoTConnectivityError.None) { Log.Error(IoTConnectivityErrorFactory.LogTag, "Failed to create obsever handle"); throw IoTConnectivityErrorFactory.GetException(ret); } }
private static void CreateUniqueResourcePolicy(string resourceKey, List <string> policyKeys, Dictionary <string, ResourcePolicy> resourcePolicies, List <AttributeMatch> resourceMatches) { if (!string.IsNullOrEmpty(resourceKey)) { policyKeys.Add(resourceKey); if (!resourcePolicies.ContainsKey(resourceKey)) { string title = string.Join("/", resourceMatches.Select(rm => rm.Value)); ResourcePolicy newPolicy = new ResourcePolicy { Resource = resourceMatches, Title = title }; resourcePolicies.Add(resourceKey, newPolicy); } } }
/// <summary>Snippet for GetAsync</summary> public async Task GetRequestObjectAsync() { // Snippet: GetAsync(GetResourcePolicyRequest, CallSettings) // Additional: GetAsync(GetResourcePolicyRequest, CancellationToken) // Create client ResourcePoliciesClient resourcePoliciesClient = await ResourcePoliciesClient.CreateAsync(); // Initialize request argument(s) GetResourcePolicyRequest request = new GetResourcePolicyRequest { Region = "", ResourcePolicy = "", Project = "", }; // Make the request ResourcePolicy response = await resourcePoliciesClient.GetAsync(request); // End snippet }
public PolicyResponse AddPolicy(PolicyRequest request) { var policy = new Policy() { Name = request.Name, Description = request.Description, CreatedBy = "user", CreatedDate = DateTime.UtcNow }; foreach (var resource in request.ResourceIds) { var resouce = new ResourcePolicy() { ResourceId = resource, PolicyId = policy.PolicyId }; policy.ResourcePolicies.Add(resouce); } _dbContext.Policy.Add(policy); _dbContext.SaveChanges(); return(_mapper.Map <PolicyResponse>(policy)); }
public PolicyResponse UpdatePolicy(PolicyRequest request, int policyId) { try { var policy = _dbContext.Policy.SingleOrDefault(p => p.PolicyId == policyId); if (policy == null) { throw new ArgumentException("Policy Not found."); } policy.Name = request.Name; policy.IsDeleted = request.IsDeleted; policy.Description = request.Description; policy.LastModifiedBy = "user"; policy.LastModified = DateTime.UtcNow; // remove existing resouces var resoucePolicies = _dbContext.ResourcePolicy.Where(p => p.PolicyId == policyId); _dbContext.ResourcePolicy.RemoveRange(resoucePolicies); foreach (var resource in request.ResourceIds) { var resourcePolicy = new ResourcePolicy() { ResourceId = resource, PolicyId = policy.PolicyId }; policy.ResourcePolicies.Add(resourcePolicy); } _dbContext.Attach <Policy>(policy); _dbContext.SaveChanges(); return(_mapper.Map <PolicyResponse>(policy)); } catch (Exception) { throw; } }
/// <summary> /// The LiteResource constructor. /// </summary> /// <since_tizen> 3 </since_tizen> /// <remarks> /// <para>Creates a lite resource, which can then be registered in server using <see cref="IoTConnectivityServerManager.RegisterResource(Resource)"/>.</para> /// <para>When client requests some operations, it sends a response to client automatically.</para> /// <para><paramref name="uri" /> length must be less than 128.</para> /// </remarks> /// <privilege>http://tizen.org/privilege/internet</privilege> /// <privlevel>public</privlevel> /// <param name="uri">The uri path of the lite resource.</param> /// <param name="types">The type of the resource.</param> /// <param name="policy">Policy of the resource.</param> /// <param name="attribs">Optional attributes of the resource.</param> /// <feature>http://tizen.org/feature/iot.ocf</feature> /// <pre> /// IoTConnectivityServerManager.Initialize() should be called to initialize. /// </pre> /// <seealso cref="ResourceTypes"/> /// <seealso cref="ResourcePolicy"/> /// <seealso cref="Attributes"/> /// <example><code><![CDATA[ /// List<string> list = new List<string>() { "org.tizen.light" }; /// Attributes attributes = new Attributes() { /// { "state", "ON" } /// }; /// LiteResource res = new LiteResource("/light/1", new ResourceTypes(list), ResourcePolicy.Discoverable, attributes); /// ]]></code></example> public LiteResource(string uri, ResourceTypes types, ResourcePolicy policy, Attributes attribs = null) : base(uri, types, new ResourceInterfaces(new string[] { ResourceInterfaces.DefaultInterface }), policy) { Attributes = attribs; }
private static void AddActionsToResourcePolicy(List <ResourceAction> actions, ResourcePolicy resourcePolicy) { if (resourcePolicy.Actions == null) { resourcePolicy.Actions = new List <ResourceAction>(); resourcePolicy.Actions.AddRange(actions); } else { foreach (ResourceAction resourceAction in actions) { if (!resourcePolicy.Actions.Any(action => action.Match.Value == resourceAction.Match.Value && action.Match.Id == resourceAction.Match.Id)) { resourcePolicy.Actions.Add(resourceAction); } else { ResourceAction existingAction = resourcePolicy.Actions.First(action => action.Match.Value == resourceAction.Match.Value && action.Match.Id == resourceAction.Match.Id); existingAction.RoleGrants.AddRange(resourceAction.RoleGrants.Where(roleGrant => !existingAction.RoleGrants.Any(existingRoleGrant => existingRoleGrant.RoleTypeCode == roleGrant.RoleTypeCode))); } } } }