Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions src/footprint/HISTORY.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,14 @@
Release History
===============

0.1.0
1.0.1b1
++++++
* Initial release.
* Relaxed the TLD length restriction in endpoint pattern from {2,5} to {2,} to allow for longer TLD names.

1.0.0
++++++
* Relaxed the min_length on profile name and provided short names to all parameters of commands longer than 22 characters to improve the experience.

0.1.0
++++++
Comment thread
necusjz marked this conversation as resolved.
* Initial release.
2 changes: 1 addition & 1 deletion src/footprint/azext_footprint/azext_metadata.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"azext.isExperimental": true,
"azext.isPreview": true,
"azext.minCliCoreVersion": "2.11.0"
}
2 changes: 1 addition & 1 deletion src/footprint/azext_footprint/manual/version.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@
# regenerated.
# --------------------------------------------------------------------------

VERSION = "1.0.0"
VERSION = "1.0.1b"

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
|Scenario|Result|ErrorMessage|ErrorStack|ErrorNormalized|StartDt|EndDt|
|step__profiles_put_create_or_update_a_footprint_profile_|successed||||2020-08-18 22:22:11.639664|2020-08-18 22:22:55.697462|
|step__profiles_get_get_the_details_of_a_footprint_profile_|successed||||2020-08-18 22:22:55.697462|2020-08-18 22:22:56.835470|
|step__profiles_get_list_all_footprint_profiles_under_a_resource_group_|successed||||2020-08-18 22:22:56.835470|2020-08-18 22:22:57.912519|
|step__profiles_get_list_all_footprint_profiles_under_a_subscription_|successed||||2020-08-18 22:22:57.912519|2020-08-18 22:22:59.172658|
|step__profiles_patch_update_a_footprint_profile_|successed||||2020-08-18 22:22:59.172658|2020-08-18 22:23:00.365159|
|step__experiments_put_create_or_update_an_experiment_|successed||||2020-08-18 22:23:00.365159|2020-08-18 22:23:05.881296|
|step__experiments_get_get_the_details_of_an_experiment_|successed||||2020-08-18 22:23:05.882295|2020-08-18 22:23:06.878597|
|step__experiments_get_list_all_experiments_under_a_footprint_profile_|successed||||2020-08-18 22:23:06.878597|2020-08-18 22:23:07.847313|
|step__measurementendpoints_put_create_or_update_a_measurement_endpoint_|successed||||2020-08-18 22:23:07.848309|2020-08-18 22:23:14.516788|
|step__measurementendpoints_get_get_the_details_of_a_measurement_endpoint_|successed||||2020-08-18 22:23:14.516788|2020-08-18 22:23:15.493906|
|step__measurementendpoints_get_list_all_the_measurement_endpoints_under_a_footprint_profile_|successed||||2020-08-18 22:23:15.493906|2020-08-18 22:23:16.698742|
|step__measurementendpointconditions_put_create_or_update_a_measurement_endpoint_condition_|successed||||2020-08-18 22:23:16.698742|2020-08-18 22:23:28.010368|
|step__measurementendpointconditions_get_get_the_details_of_a_measurement_endpoint_condition_|successed||||2020-08-18 22:23:28.011367|2020-08-18 22:23:29.276407|
|step__measurementendpointconditions_get_list_all_conditions_under_a_measurement_endpoint_|successed||||2020-08-18 22:23:29.276407|2020-08-18 22:23:30.574658|
|step__measurementendpointconditions_delete_delete_a_measurement_endpoint_condition_|successed||||2020-08-18 22:23:30.575663|2020-08-18 22:23:35.114155|
|step__experiments_delete_delete_an_experiment_|successed||||2020-08-18 22:23:35.114155|2020-08-18 22:23:39.818973|
|step__measurementendpoints_delete_delete_a_measurement_endpoint_|successed||||2020-08-18 22:23:39.818973|2020-08-18 22:23:46.433847|
|step__profiles_delete_delete_a_footprint_profile_|successed||||2020-08-18 22:23:46.434832|2020-08-18 22:23:53.642127|
|step__profiles_put_create_or_update_a_footprint_profile_|successed||||2025-12-05 20:58:20.964070|2025-12-05 20:58:21.295223|
|step__profiles_get_get_the_details_of_a_footprint_profile_|successed||||2025-12-05 20:58:21.295223|2025-12-05 20:58:21.439761|
|step__profiles_get_list_all_footprint_profiles_under_a_resource_group_|successed||||2025-12-05 20:58:21.439761|2025-12-05 20:58:21.624313|
|step__profiles_get_list_all_footprint_profiles_under_a_subscription_|successed||||2025-12-05 20:58:21.624313|2025-12-05 20:58:21.773844|
|step__profiles_patch_update_a_footprint_profile_|successed||||2025-12-05 20:58:21.774854|2025-12-05 20:58:21.911483|
|step__experiments_put_create_or_update_an_experiment_|successed||||2025-12-05 20:58:21.911483|2025-12-05 20:58:22.048772|
|step__experiments_get_get_the_details_of_an_experiment_|successed||||2025-12-05 20:58:22.048772|2025-12-05 20:58:22.198601|
|step__experiments_get_list_all_experiments_under_a_footprint_profile_|successed||||2025-12-05 20:58:22.199601|2025-12-05 20:58:22.337807|
|step__measurementendpoints_put_create_or_update_a_measurement_endpoint_|successed||||2025-12-05 20:58:22.337807|2025-12-05 20:58:22.489003|
|step__measurementendpoints_get_get_the_details_of_a_measurement_endpoint_|successed||||2025-12-05 20:58:22.489003|2025-12-05 20:58:22.631628|
|step__measurementendpoints_get_list_all_the_measurement_endpoints_under_a_footprint_profile_|successed||||2025-12-05 20:58:22.631628|2025-12-05 20:58:22.782326|
|step__measurementendpointconditions_put_create_or_update_a_measurement_endpoint_condition_|successed||||2025-12-05 20:58:22.782326|2025-12-05 20:58:22.949807|
|step__measurementendpointconditions_get_get_the_details_of_a_measurement_endpoint_condition_|successed||||2025-12-05 20:58:22.950690|2025-12-05 20:58:23.091858|
|step__measurementendpointconditions_get_list_all_conditions_under_a_measurement_endpoint_|successed||||2025-12-05 20:58:23.091858|2025-12-05 20:58:23.234372|
|step__measurementendpointconditions_delete_delete_a_measurement_endpoint_condition_|successed||||2025-12-05 20:58:23.234372|2025-12-05 20:58:23.382437|
|step__experiments_delete_delete_an_experiment_|successed||||2025-12-05 20:58:23.383442|2025-12-05 20:58:23.530699|
|step__measurementendpoints_delete_delete_a_measurement_endpoint_|successed||||2025-12-05 20:58:23.531599|2025-12-05 20:58:23.680833|
|step__profiles_delete_delete_a_footprint_profile_|successed||||2025-12-05 20:58:23.680833|2025-12-05 20:58:23.820734|
Coverage: 18/18
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ def __init__(

self.credential = credential
self.subscription_id = subscription_id
self.api_version = "2020-02-01-preview"
self.api_version = "2024-09-16-preview"
self.credential_scopes = ['https://management.azure.com/.default']
self.credential_scopes.extend(kwargs.pop('credential_scopes', []))
kwargs.setdefault('sdk_moniker', 'footprintmonitoringmanagementclient/{}'.format(VERSION))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@


class FootprintMonitoringManagementClient(object):
"""Microsoft Footprint active monitoring system REST API version 2020-02-01-preview.
"""Microsoft Footprint active monitoring system REST API version 2024-09-16-preview.

:ivar operation: OperationOperations operations
:vartype operation: footprint_monitoring_management_client.operations.OperationOperations
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ def __init__(

self.credential = credential
self.subscription_id = subscription_id
self.api_version = "2020-02-01-preview"
self.api_version = "2024-09-16-preview"
self.credential_scopes = ['https://management.azure.com/.default']
self.credential_scopes.extend(kwargs.pop('credential_scopes', []))
kwargs.setdefault('sdk_moniker', 'footprintmonitoringmanagementclient/{}'.format(VERSION))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@


class FootprintMonitoringManagementClient(object):
"""Microsoft Footprint active monitoring system REST API version 2020-02-01-preview.
"""Microsoft Footprint active monitoring system REST API version 2024-09-16-preview.

:ivar operation: OperationOperations operations
:vartype operation: footprint_monitoring_management_client.aio.operations_async.OperationOperations
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ def list_by_profile(
cls = kwargs.pop('cls', None) # type: ClsType["models.ExperimentList"]
error_map = {404: ResourceNotFoundError, 409: ResourceExistsError}
error_map.update(kwargs.pop('error_map', {}))
api_version = "2020-02-01-preview"
api_version = "2024-09-16-preview"

def prepare_request(next_link=None):
# Construct headers
Expand Down Expand Up @@ -140,7 +140,7 @@ async def get(
cls = kwargs.pop('cls', None) # type: ClsType["models.Experiment"]
error_map = {404: ResourceNotFoundError, 409: ResourceExistsError}
error_map.update(kwargs.pop('error_map', {}))
api_version = "2020-02-01-preview"
api_version = "2024-09-16-preview"

# Construct URL
url = self.get.metadata['url'] # type: ignore
Expand Down Expand Up @@ -207,7 +207,7 @@ async def create_or_update(
error_map.update(kwargs.pop('error_map', {}))

_parameters = models.Experiment(description=description)
api_version = "2020-02-01-preview"
api_version = "2024-09-16-preview"
content_type = kwargs.pop("content_type", "application/json")

# Construct URL
Expand Down Expand Up @@ -279,7 +279,7 @@ async def delete(
cls = kwargs.pop('cls', None) # type: ClsType[None]
error_map = {404: ResourceNotFoundError, 409: ResourceExistsError}
error_map.update(kwargs.pop('error_map', {}))
api_version = "2020-02-01-preview"
api_version = "2024-09-16-preview"

# Construct URL
url = self.delete.metadata['url'] # type: ignore
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ def list_by_measurement_endpoint(
cls = kwargs.pop('cls', None) # type: ClsType["models.MeasurementEndpointConditionList"]
error_map = {404: ResourceNotFoundError, 409: ResourceExistsError}
error_map.update(kwargs.pop('error_map', {}))
api_version = "2020-02-01-preview"
api_version = "2024-09-16-preview"

def prepare_request(next_link=None):
# Construct headers
Expand Down Expand Up @@ -149,7 +149,7 @@ async def get(
cls = kwargs.pop('cls', None) # type: ClsType["models.MeasurementEndpointCondition"]
error_map = {404: ResourceNotFoundError, 409: ResourceExistsError}
error_map.update(kwargs.pop('error_map', {}))
api_version = "2020-02-01-preview"
api_version = "2024-09-16-preview"

# Construct URL
url = self.get.metadata['url'] # type: ignore
Expand Down Expand Up @@ -230,7 +230,7 @@ async def create_or_update(
error_map.update(kwargs.pop('error_map', {}))

_parameters = models.MeasurementEndpointCondition(type_properties_type=type, variable=variable, operator=operator, constant=constant)
api_version = "2020-02-01-preview"
api_version = "2024-09-16-preview"
content_type = kwargs.pop("content_type", "application/json")

# Construct URL
Expand Down Expand Up @@ -306,7 +306,7 @@ async def delete(
cls = kwargs.pop('cls', None) # type: ClsType[None]
error_map = {404: ResourceNotFoundError, 409: ResourceExistsError}
error_map.update(kwargs.pop('error_map', {}))
api_version = "2020-02-01-preview"
api_version = "2024-09-16-preview"

# Construct URL
url = self.delete.metadata['url'] # type: ignore
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ def list_by_profile(
cls = kwargs.pop('cls', None) # type: ClsType["models.MeasurementEndpointList"]
error_map = {404: ResourceNotFoundError, 409: ResourceExistsError}
error_map.update(kwargs.pop('error_map', {}))
api_version = "2020-02-01-preview"
api_version = "2024-09-16-preview"

def prepare_request(next_link=None):
# Construct headers
Expand Down Expand Up @@ -141,7 +141,7 @@ async def get(
cls = kwargs.pop('cls', None) # type: ClsType["models.MeasurementEndpoint"]
error_map = {404: ResourceNotFoundError, 409: ResourceExistsError}
error_map.update(kwargs.pop('error_map', {}))
api_version = "2020-02-01-preview"
api_version = "2024-09-16-preview"

# Construct URL
url = self.get.metadata['url'] # type: ignore
Expand Down Expand Up @@ -245,7 +245,7 @@ async def create_or_update(
error_map.update(kwargs.pop('error_map', {}))

_parameters = models.MeasurementEndpoint(description=description, endpoint=endpoint, measurement_type=measurement_type, weight=weight, experiment_id=experiment_id, object_path=object_path, start_time_utc=start_time_utc, end_time_utc=end_time_utc, hot_path_sampling_percentage_rate=hot_path_sampling_percentage_rate, warm_path_sampling_percentage_rate=warm_path_sampling_percentage_rate, cold_path_sampling_percentage_rate_override=cold_path_sampling_percentage_rate_override, metadata=metadata)
api_version = "2020-02-01-preview"
api_version = "2024-09-16-preview"
content_type = kwargs.pop("content_type", "application/json")

# Construct URL
Expand Down Expand Up @@ -317,7 +317,7 @@ async def delete(
cls = kwargs.pop('cls', None) # type: ClsType[None]
error_map = {404: ResourceNotFoundError, 409: ResourceExistsError}
error_map.update(kwargs.pop('error_map', {}))
api_version = "2020-02-01-preview"
api_version = "2024-09-16-preview"

# Construct URL
url = self.delete.metadata['url'] # type: ignore
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ def list(
cls = kwargs.pop('cls', None) # type: ClsType["models.ResourceProviderOperationList"]
error_map = {404: ResourceNotFoundError, 409: ResourceExistsError}
error_map.update(kwargs.pop('error_map', {}))
api_version = "2020-02-01-preview"
api_version = "2024-09-16-preview"

def prepare_request(next_link=None):
# Construct headers
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ def list_by_subscription(
cls = kwargs.pop('cls', None) # type: ClsType["models.ProfileList"]
error_map = {404: ResourceNotFoundError, 409: ResourceExistsError}
error_map.update(kwargs.pop('error_map', {}))
api_version = "2020-02-01-preview"
api_version = "2024-09-16-preview"

def prepare_request(next_link=None):
# Construct headers
Expand Down Expand Up @@ -126,7 +126,7 @@ def list_by_resource_group(
cls = kwargs.pop('cls', None) # type: ClsType["models.ProfileList"]
error_map = {404: ResourceNotFoundError, 409: ResourceExistsError}
error_map.update(kwargs.pop('error_map', {}))
api_version = "2020-02-01-preview"
api_version = "2024-09-16-preview"

def prepare_request(next_link=None):
# Construct headers
Expand Down Expand Up @@ -199,7 +199,7 @@ async def get(
cls = kwargs.pop('cls', None) # type: ClsType["models.Profile"]
error_map = {404: ResourceNotFoundError, 409: ResourceExistsError}
error_map.update(kwargs.pop('error_map', {}))
api_version = "2020-02-01-preview"
api_version = "2024-09-16-preview"

# Construct URL
url = self.get.metadata['url'] # type: ignore
Expand Down Expand Up @@ -282,7 +282,7 @@ async def create_or_update(
error_map.update(kwargs.pop('error_map', {}))

_parameters = models.Profile(tags=tags, location=location, description=description, start_delay_milliseconds=start_delay_milliseconds, measurement_count=measurement_count, cold_path_sampling_percentage_rate=cold_path_sampling_percentage_rate, reporting_endpoints=reporting_endpoints)
api_version = "2020-02-01-preview"
api_version = "2024-09-16-preview"
content_type = kwargs.pop("content_type", "application/json")

# Construct URL
Expand Down Expand Up @@ -350,7 +350,7 @@ async def delete(
cls = kwargs.pop('cls', None) # type: ClsType[None]
error_map = {404: ResourceNotFoundError, 409: ResourceExistsError}
error_map.update(kwargs.pop('error_map', {}))
api_version = "2020-02-01-preview"
api_version = "2024-09-16-preview"

# Construct URL
url = self.delete.metadata['url'] # type: ignore
Expand Down Expand Up @@ -409,7 +409,7 @@ async def update(
error_map.update(kwargs.pop('error_map', {}))

_parameters = models.ProfilePatch(tags=tags)
api_version = "2020-02-01-preview"
api_version = "2024-09-16-preview"
content_type = kwargs.pop("content_type", "application/json")

# Construct URL
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@ class MeasurementEndpoint(SubResource):
'name': {'readonly': True},
'type': {'readonly': True},
'endpoint_id': {'readonly': True, 'max_length': 32, 'min_length': 32, 'pattern': r'[a-f0-9]{32}'},
'endpoint': {'required': True, 'max_length': 1024, 'min_length': 0, 'pattern': r'^[a-z0-9\*]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?$'},
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The change is applied in SDK, but not in CLI extension?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your review @jsntcy. This change needs to be done in both places. Our requests go to RPaaS whose specification can be found here https://github.com/Azure/azure-rest-api-specs-pr/blob/RPSaaSMaster/specification/footprintmonitoring/resource-manager/Microsoft.FootprintMonitoring/preview/2024-09-16-preview/footprintProfiles.json#L1375C11-L1375C87

Is there an additional path that I'm missing?

'endpoint': {'required': True, 'max_length': 1024, 'min_length': 0, 'pattern': r'^[a-z0-9\*]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,}(:[0-9]{1,5})?$'},
'measurement_type': {'required': True},
'weight': {'required': True, 'maximum': 2147483647, 'minimum': 0},
'experiment_id': {'max_length': 32, 'min_length': 32, 'pattern': r'[a-f0-9]{32}'},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ def list_by_profile(
cls = kwargs.pop('cls', None) # type: ClsType["models.ExperimentList"]
error_map = {404: ResourceNotFoundError, 409: ResourceExistsError}
error_map.update(kwargs.pop('error_map', {}))
api_version = "2020-02-01-preview"
api_version = "2024-09-16-preview"

def prepare_request(next_link=None):
# Construct headers
Expand Down Expand Up @@ -146,7 +146,7 @@ def get(
cls = kwargs.pop('cls', None) # type: ClsType["models.Experiment"]
error_map = {404: ResourceNotFoundError, 409: ResourceExistsError}
error_map.update(kwargs.pop('error_map', {}))
api_version = "2020-02-01-preview"
api_version = "2024-09-16-preview"

# Construct URL
url = self.get.metadata['url'] # type: ignore
Expand Down Expand Up @@ -214,7 +214,7 @@ def create_or_update(
error_map.update(kwargs.pop('error_map', {}))

_parameters = models.Experiment(description=description)
api_version = "2020-02-01-preview"
api_version = "2024-09-16-preview"
content_type = kwargs.pop("content_type", "application/json")

# Construct URL
Expand Down Expand Up @@ -287,7 +287,7 @@ def delete(
cls = kwargs.pop('cls', None) # type: ClsType[None]
error_map = {404: ResourceNotFoundError, 409: ResourceExistsError}
error_map.update(kwargs.pop('error_map', {}))
api_version = "2020-02-01-preview"
api_version = "2024-09-16-preview"

# Construct URL
url = self.delete.metadata['url'] # type: ignore
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ def list_by_measurement_endpoint(
cls = kwargs.pop('cls', None) # type: ClsType["models.MeasurementEndpointConditionList"]
error_map = {404: ResourceNotFoundError, 409: ResourceExistsError}
error_map.update(kwargs.pop('error_map', {}))
api_version = "2020-02-01-preview"
api_version = "2024-09-16-preview"

def prepare_request(next_link=None):
# Construct headers
Expand Down Expand Up @@ -155,7 +155,7 @@ def get(
cls = kwargs.pop('cls', None) # type: ClsType["models.MeasurementEndpointCondition"]
error_map = {404: ResourceNotFoundError, 409: ResourceExistsError}
error_map.update(kwargs.pop('error_map', {}))
api_version = "2020-02-01-preview"
api_version = "2024-09-16-preview"

# Construct URL
url = self.get.metadata['url'] # type: ignore
Expand Down Expand Up @@ -237,7 +237,7 @@ def create_or_update(
error_map.update(kwargs.pop('error_map', {}))

_parameters = models.MeasurementEndpointCondition(type_properties_type=type, variable=variable, operator=operator, constant=constant)
api_version = "2020-02-01-preview"
api_version = "2024-09-16-preview"
content_type = kwargs.pop("content_type", "application/json")

# Construct URL
Expand Down Expand Up @@ -314,7 +314,7 @@ def delete(
cls = kwargs.pop('cls', None) # type: ClsType[None]
error_map = {404: ResourceNotFoundError, 409: ResourceExistsError}
error_map.update(kwargs.pop('error_map', {}))
api_version = "2020-02-01-preview"
api_version = "2024-09-16-preview"

# Construct URL
url = self.delete.metadata['url'] # type: ignore
Expand Down
Loading
Loading