Azure Management API not returning Reserved Instances - azure-api-management

I have a couple of reserved instances that I'd like to be notified about when its close to their expiry. By default, the purchaser gets notified about expiration through an email, but I'd like to manage that notification myself, by injecting a work item in our ISMS when it gets close to that time (or 1/4/8/12 weeks beforehand).
I have:
Created a Logic App
Enabled System Assigned Managed Identity on it
Granted this MI the Reservation Reader role. If I check the Role Assignments on the Reservations, as well as the Reservation Orders, the MI is listed under Reservation Readers
As a test, the Logic App does an HTTP call to https://management.azure.com/providers/Microsoft.Capacity/reservationOrders?api-version=2019-04-01. The call passes with a 200.
However... the results are empty:
If I modify the HTTP request to return a specific Reservation (and not try and List the Reservation Orders), I do get the details of that Reservation (I get the Reservation Order ID through the Azure Portal, then call to GET https://management.azure.com/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}?api-version=2019-04-01).
I have also confirmed that the MI has the Read permissions on each Reservation Order (by clicking through to them from the Reservation).
I have also (being at wits' end) added the MI to the Reservation Administrators. No joy.
What am I doing wrong?

It seems to have been resolved in the latest version of the API. If I query Microsoft Graph using API version 2022-11-01, I get results.

Related

How to set up per-seat subscription with Stripe?

Good day!
I am trying build a per-seat subscription model for my web site.
Before, I tried use Checkout session to provide "place", to write personal data, but the max what I reached - is creating default Subscription that you could cancel for instance.
What I wanna do?
• Figure out, if possible, how to create per-seat subscription through Checkout session and after, on event "User joined" automatically replace new price of the subscription.
• If through Checkout session that is not possible, how to implement it through code?
How to get a user's card and how to upgrade later the subscription.
I read the article on Stripe, but from that I can't figure how I get client data as card.
In addition, I use Stripe Extension on firebase with cloud functions.
Hope, this problem will be solved :)
You can create a per-seat type subscription with Stripe Checkout. For that, you need to have a recurring price, just as the article suggests. Then pass the price into line_items property when creating a subscription, along with the initial quantity. For example, a customer might want to purchase 5 seats/licenses right away. You can also enable adjustable_quantity setting to allow the user to change the quantity on the Checkout Session page.
When a new user joins, use the Update Subscription API to change the quantity of the item. For example, if the new total number of users you are serving is 11, set the quantity of the price to 11. More info here.
If you don’t want to use Stripe Checkout, you can create a subscription via API, by following this guide. The upgrade step looks the same as in the other solution.
Besides that, Stripe has a Billing Customer Portal that allows users to modify their subscriptions, it’s worth taking a look.

Forge API: Get all changed items

I need to get a list of all changed items in my project in BIM 360. Can I do this using forge-api.
Ho, regarding with the latest question [If my service is not available and I will miss some webhook events, how can I get all the changes that were made after the last webhook event received] :
If your requirement is to know which items are changed in one folder of Docs, Search API with filter can be of use. e.g. the endpoint below will return all items which are updated since a certain time.
https://developer.api.autodesk.com/data/v1/projects/{{project_id_with_b}}/folders/{{one_folder_id}}/search?filter[attributes.lastModifiedTime]-ge=2019-10-15
More filters options are described at
https://forge.autodesk.com/en/docs/data/v2/developers_guide/filtering/
While if you wanted to know all updates in one call, I do not see currently the way is available. While, Activity API is on the way, it might be helpful to know all activities during a certain dates, then you could filter out what you are interested in and locate the corresponding module>>files/resources etc.. but Activities may probably be categorized with specific scopes e.g. admin activities, project actives, issue activities etc. so it is not one call knows all updates.. And these APIs may not be exposed in the same time.

How do i get meeting/appointmens for more than one resource (mailbox) with EWS java api?

I have general question regarding using Exchange Web Service.
I am using ews-java-api
https://github.com/OfficeDev/ews-java-api
and also tried using JEC - Java exhange connector.
http://elich11.freeshell.org/index.html
If a company have 100 to 500 rooms our goal is to get a total list of appointments/meetings for all of these rooms at once as fast as possible.
Using this api what is the best solution for this issue that uses the least time to get a total list of appointments from a list of already known room addresses.
List attendees = new ArrayList();
attendees.add("room1#domain.com");
attendees.add("room2#domain.com");
attendees.add("room4#domain.com");
attendees.add("User1#domain.com");
attendees.add("User2#domain.com");
attendees.add("Room5#domain.com");
attendees.add("Room6#domain.com");
attendees.add("room10#domain.com");
attendees.add("room11#domain.com");
attendees.add("room12#domain.com");
attendees.add("room13#domain.com");
attendees.add("room14#domain.com");
attendees.add("room15#domain.com");
attendees.add("room16#domain.com");
I tried running through a list of email adresses in an array using impersonation for each mailbox to gain acces to the meetings. I have also tried to grant delegation to each mailbox for one specific user, so i dont have to impersonate each mailbox for the user this user to get the appointments.
My problem is with the number of rooms companies can have, both of these methods i slow because the number of webservice calls increases with the amount of mailboxes.
Is there any suppported method og workaround for extracting appointments for more than one mailbox without having to perform a webservicecall for each resource (mailbox)?
It depends of the level of detail you need for each appointment. If you need the full Appointment object there is no other way you can do it. However you may want to consider running multiple concurrent queries (you need to consider throttling will affect you a some point if you push this too far).
Otherwise if you can deal with just having the Subject,Start,EndTime for appointments then GetUserAvailbility https://learn.microsoft.com/en-us/exchange/client-developer/web-service-reference/getuseravailability-operation should work okay in batches of 100.

Microsoft Teams - Parameters for HTTPPost in webhook

I have created a simple incoming webhook for Teams that will send information to a channel when a new high-priority ticket is generated in our ticketing system. I want to add a button to the connector card that will allow a user to directly assign the ticket to themselves from Teams via an HttpPOST request.
I have the button and everything else in place, but I am having trouble determining how, if possible, I can send the user's account ID back to our ticketing system. Our system is connected via LDAP so usernames are the same across both platforms.
Is there general info on what is sent by default with an HttpPOST request? I looked through the Teams connector reference information, but could not find what I was looking for.
You need to include that account id you referred as a parameter in your url or JSON (if you post the it).
Microsoft Teams does not know anything about actions your use will attempt to make.

Updating Woocommerce Orders Programmatically

I have an eCommerce site running Woocommerce on top of Wordpress, and the company running it has changed there shipping system to an external company who stores the products in their warehouse and ships the products when they are bought.
In terms of automation, downloading information on new orders and sending it to the shipping company is fine, but when they respond to me with an XML of the orders sent and the associated tracking numbers, I need to be able to have a system that automatically updates the orders (including sending out the emails necessary). However, the only way I currently know how to do that is to update the MySQL database. But with that method, the automated email system is overridden and ignored.
Does anyone know how I can update orders statues and other information programmatically, which would allow Woocommerce's internal functions to be executed in the same way as manually logging into the admin side and updating the order?
Found a solution to this yet?
The code below works to mark an order as complete, but does not execute other actions as you describe in the admin
// create a new checkout instance and order id
$checkout = new WC_Checkout();
$this_order_id = $checkout->create_order();
$order = new WC_Order($this_order_id);
$order->update_status('completed');